第1部分软件测试概述本部分课程目标软件缺陷的定义软件缺陷产生的原因软件测试的目标软件测试的特征软件的生命周期需求规格说明概要设计详细设计系统测试集成测试单元测试编码“臭虫”的由来人们将软件错误称为“臭虫”,这是因为第一个有记载的电脑故障是由线路上的臭虫造成的。就是我们通常称的“BUG”。软件失败的术语描述缺点(defect)偏差(variance)谬误(fault)失败(failure)问题(problem)矛盾(inconsistency)错误(error)特殊(feature)毛病(incident)缺陷(bug)异常(anomaly)软件失败的几个定义错误:人类会犯错误。缺陷:缺陷是错误的结果。失效:当缺陷执行时会发生失效。事故:当出现失效时,可能会也可能不会呈现给用户。软件缺陷软件未达到产品描述表明的功能。软件出现了产品描述指明不会出现的错误。软件功能超出产品描述指明范围。软件未达到产品描述虽未指出但应达到的目标。软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。软件缺陷的分类以出现相应错误的开发阶段来划分;以相应失效产生的后果来划分;以解决难度来划分;以不解决会产生的风险来划分;根据异常出现的频率来划分。软件缺陷产生的原因其他编写产品描述设计编写代码软件缺陷产生的原因有很多,但最主要的原因要归咎于产品描述软件测试员的目标发现软件缺陷软件测试的生命周期需求规格说明设计缺陷分类缺陷解决缺陷隔离测试编码错误错误错误错误修复事故缺陷缺陷缺陷软件测试的理解规格说明(预期的)程序(观察的)SP软件测试用例的理解7规格说明(预期的)程序(观察的)SPT8215643测试用例(已检验)功能性测试规格说明(预期的)程序(观察的)SP测试用例结构性测试规格说明(预期的)程序(观察的)SP测试用例软件测试的特征软件测试具有一定的风险软件缺陷的寄生虫性软件测试的杀虫剂现象软件测试的不修复原则Pareto原则完全测试程序是不可能的原因:输入量太大输出结果太多软件实现途径太多软件说明书没有客观标准软件测试是有风险的行为如果决定不去测试所有的情况,那就是选择了风险。软件缺陷的寄生虫性找到的软件缺陷越多,就说明软件缺陷越多原因:•程序员的疲倦•程序员往往犯同样的错误•某些软件的缺陷其实是大灾难的征兆软件测试的杀虫剂现象软件测试越多,其免疫力越强的现象克服方法:•不断编写不同的新的测试程序•对程序的不同部分进行测试软件测试的不修复原则并非所有软件缺陷都能修复不需要修复软件缺陷的原因:•没有足够的时间•不算真正的软件缺陷•修复的风险太大•不值得修复Pareto原则Pareto原则暗示着测试发现的错误中的80%很可能起源于程序模块中的20%。小结软件及软件生命周期软件缺陷及产生原因软件缺陷的生命周期软件测试的目的软件测试的特征