©2009BUPTTSEG软件工程模型与方法Models&MethodsofSoftwareEngineering第十二章软件测试修佳鹏media@bupt.edu.cn©2009BUPTTSEG北京邮电大学通信软件工程中心2本章内容12.1软件测试基础12.2软件测试方法与技术12.3软件测试过程12.4面向对象的测试方法12.5程序的静态分析方法12.6软件调试方法12.7软件测试工具12.8软件的可靠性©2009BUPTTSEG北京邮电大学通信软件工程中心312.1软件测试基础本节内容12.1.1软件测试概述12.1.2软件的可测试性12.1.3软件测试的对象12.1.4软件测试信息流12.1.5软件测试步骤12.1.6软件测试流程12.1.7软件测试与软件开发各阶段的关系12.1.8程序错误的分类©2009BUPTTSEG北京邮电大学通信软件工程中心412.1.1软件测试概述软件测试是为了发现错误而执行程序的过程。软件测试在软件生存期中横跨两个阶段:单元测试集成测试软件测试的目的:测试是程序的执行过程,目的在于发现错误,而不是证明软件的正确一个好的测试用例在于能发现至今未发现的错误一个成功的测试是发现了至今未发现的错误的测试。©2009BUPTTSEG北京邮电大学通信软件工程中心512.1.1软件测试概述软件测试的原则:应当尽早地和不断地进行软件测试测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成程序员应避免测试自己的程序在设计测试用例时,应当包括合理的输入条件和不合理的输入条件充分注意测试中的群集现象严格执行测试计划,排除测试的随意性应当对每一个测试结果做全面检查妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。©2009BUPTTSEG北京邮电大学通信软件工程中心612.1.2软件的可测试性影响软件可测试性的因素:可操作性:运行的越好,被测试的效率越高可观察性:所看见的就是所测试的可控制性:对软件的控制越好,测试越能被自动执行与优化可分解性:通过控制测试范围,能够更快地分解问题,执行更灵巧的再测试简单性:需要测试的内容越少,测试的速度越快稳定性:改变越小,对测试的破坏越小易理解性:得到的信息越多,进行的测试越灵巧©2009BUPTTSEG北京邮电大学通信软件工程中心712.1.3软件测试的对象软件测试并不等于程序测试,应该贯穿于软件开发的整个期间。需求分析、概要设计、详细设计以及程序编码等各个阶段所得到的文档,都应该成为测试的对象。为了把握各个环节的正确性,人们需要进行各种确认...