文档介绍:第7章测试 软件测试基础 ?理解测试的目的?理解软件可靠性?掌握测试技术?设计测试用例 软件测试的目的 1963 年, 美国,飞往火星的火箭爆炸,损失$ 10 million 。原因: FORTRAN 循环: DO 5 I = 1, 3 误写为 DO 5 I = 软件测试的工作量约占整个项目工作量的 40%左右,对于要求极高的系统测试工作量还要成倍增加。微软 Exchange 2000 和 Windows 2000 中的人员结构 Exchange 2000 Exchange 2000 Windows 2000 Windows 2000 项目经理 25 人约 250 人开发人员 140 人约 1700 人测试人员 350 人约 3200 人测试人员/开发人员 2: 5 1: 9 软件测试基础为什么需要这么多人、花这么多代价进行测试?目的何在? “证明程序正确! ”对吗? Myers 对软件测试目的提出以下观点: (1)软件测试是为了发现错误而执行程序的过程。(2)一个好的测试用例能够发现至今尚未发现的错误。(3)一个成功的测试是发现了至今尚未发现的错误的测试。 5 ?在测试阶段测试人员努力设计出一系列测试方案,目的却是为了“破坏”已经建造好的软件系统—竭力证明程序中有错误不能按照预定要求正确工作。?暴露问题并不是软件测试的最终目的,发现问题是为了解决问题, 测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。 6 ?通常想象的“测试是为了表明程序是正确的”,“成功的测试是没有发现错误的测试”是不正确的。?测试的目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。测试决不能证明软件是正确的,也不能证明错误的不存在,它只能证明错误的存在。 7 软件测试的问题?软件缺陷是什么? ?谁执行测试? ?开发者? ?单独的测试人员? ?两方面人员? ?测试什么? ?每个部分都测试? ?测试软件中高风险部分? ?什么时候测试? ?怎样测试? ?测试应进行到什么程度? 8 软件缺陷是什么--- 描述软件失败的术语?缺点(defect) ?谬误(fault) ?问题(problem) ?错误(error) ?异常(anomaly) ?偏差(variance) ?失败(failure) ?缺陷(bug) 9 测试工具软件开发工程师( Software Development Engineer in Test ,简称 SDE/T ) 软件测试人员软件测试人员软件测试工程师( Software Test Engineer ,简称 STE ) 10 SDE/T 负责写测试工具代码, 并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。负责理解产品的功能要求, 然后对其进行测试,检查软件有没有错误( Bug Bug ),决定软件是否具有稳定性,并写出相应的测试规范和测试案例 STE