第5章软件测试 软件测试的概念 软件测试技术 软件测试策略 测试的管理 软件调试 软件的可靠性和可用性 西安交通大学刘海
西安交通大学 刘海岩 1 第5章 软件测试 ⚫ 软件测试的概念 ⚫ 软件测试技术 ⚫ 软件测试策略 ⚫ 测试的管理 ⚫ 软件调试 ⚫ 软件的可靠性和可用性
51软件测试的概念 1、软件测试的目的 1963年,美国,飞往火星的火窬爆炸,损失$10 million 原因: FORTRAN循环: Do 5 I 3误写为D05I=1.3 软件测试的工作量约占整个项目工作量的40%左右, 对于要求极高的系统测试工作量还要成倍增加。 微软 Exchange2000和 Windows2000中的人员结构 Exchange 2000 Windows 2000 项目经理 25人 约250人 开发人员 140人 约1700人 测试人员 350人 约3200人 测试人员/开发人员2.5 1.9 西安交通大学刘海
西安交通大学 刘海岩 2 5.1 软件测试的概念 1、软件测试的目的 1963年, 美国, 飞往火星的火箭爆炸, 损失$ 10 million。 原因: FORTRAN循环: DO 5 I = 1, 3 误写为 DO 5 I = 1.3 软件测试的工作量约占整个项目工作量的40%左右, 对于要求极高的系统测试工作量还要成倍增加。 微软Exchange 2000和Windows 2000中的人员结构 Exchange 2000 Windows 2000 项目经理 25人 约 250人 开发人员 140人 约 1700人 测试人员 350人 约 3200人 测试人员/开发人员 2.5 1.9
为什么需要这么多人、花这么多代价进行测试?目的何 在 “证明程序正确!”对吗? Myers)对软件测试目的提出以下观点: (1)软件测试是为了发现错误而执行程序的过程。 (2)一个好的测试用例能够发现至今尚未发现的错误。 (3)一个成功的测试是发现了至今尚未发现的错误的测试。 因此,测试阶段的基本任务应该是根据软件开发各阶段 的文档资料和软件的结构,精心设计一组“高产”的测试用 例,利用这些用例执行程序,找出软件中潜在的各种错误 (Bug)和缺陷( Defect)。 西安交通大学刘海
西安交通大学 刘海岩 3 为什么需要这么多人、花这么多代价进行测试?目的何 在? “证明程序正确!” 对吗? Myers对软件测试目的提出以下观点: (1)软件测试是为了发现错误而执行程序的过程。 (2)一个好的测试用例能够发现至今尚未发现的错误。 (3)一个成功的测试是发现了至今尚未发现的错误的测试。 因此,测试阶段的基本任务应该是根据软件开发各阶段 的文档资料和软件的结构,精心设计一组“高产”的测试用 例,利用这些用例执行程序,找出软件中潜在的各种错误 (Bug)和缺陷(Defect)
2、软件测试的原则 1)测试用例不但应有输入数据,还应有预期的输 出数据。这样便于对照检查,做到“有的放矢” (2)测试用例不仅选用合理的输入数据,还要选择 不合理的输入数据。这样能更多地发现错误,提高程 序的可靠性。对于不合理的输入数据,要将反馈信息 提供给用户。 (3)除了检查程序是否做了它应该做的事,还可检 查程序是否做了它不应该做的事。例如程序正确地打 印出用户所需信息的同时还是否打印出用户并不需要 的多余信息。 (4)应制定测试计划并严格执行,排除随意性, 5)长期保留测试用例,为以后进行的回归测试和 维护提供方便 西安交通大学刘海
西安交通大学 刘海岩 4 2、软件测试的原则 (1)测试用例不但应有输入数据,还应有预期的输 出数据。这样便于对照检查,做到“有的放矢”。 (2)测试用例不仅选用合理的输入数据,还要选择 不合理的输入数据。这样能更多地发现错误,提高程 序的可靠性。对于不合理的输入数据,要将反馈信息 提供给用户。 (3)除了检查程序是否做了它应该做的事,还可检 查程序是否做了它不应该做的事。例如程序正确地打 印出用户所需信息的同时还是否打印出用户并不需要 的多余信息。 (4)应制定测试计划并严格执行,排除随意性。 (5)长期保留测试用例,为以后进行的回归测试和 维护提供方便
(6)对发现错误较多的程序段,应进行更深入的测试 因为在修改错误过程中容易引入新的错误。 (7)为了达到最有效的测试效果,程序员避免测试自 己的程序 3、测试阶段的信息流程 预完善 软件配置 测试结果 错误 可提交 评价 调试 测试 句靠 分析结果 分析 西安交通大学刘海
西安交通大学 刘海岩 5 (6)对发现错误较多的程序段,应进行更深入的测试。 因为在修改错误过程中容易引入新的错误。 (7)为了达到最有效的测试效果,程序员避免测试自 己的程序。 3、测试阶段的信息流程 测试 评价 调试 可靠性 分析 分析结果 错 误 可提交 预完善