第六章软件测试软件开发过程必须伴有质量保证活动。软件测试是软件质量保证的关键元素,代表了规约、设计和编码的最终检查。§6.1基本概念有关测试的思考题•软件测试是一门非常重要的学科,主要研究内容是什么?•软件测试需要什么样的专业基础•软件质量到底是什么?•测试的目标是什么?•开发一个测试系统之前你是否明白:•可以测试什么?•应该测试什么?•最终能够测试什么?软件产品最大的成本是检测软件错误、修正软件错误的成本。在整个软件开发中,测试工作量一般占30%~40%,甚至≥50%。在人命关天的软件(如飞机控制、核反应堆等)测试所花费的时间往往是其它软件工程活动时间之和的三到五倍。软件测试的认识的发展人们对软件测试认识的五个阶段:阶段1—测试=调试阶段2—测试是证明软件正确阶段3—测试是发现软件中错误阶段4—测试是减小软件不工作的风险(是度量软件质量要素的过程)阶段5—测试可产生低风险的软件的一种认识上的训练三个盲人和一头大象:你能够为质量下定义吗?质量管理领域权威人物J.M.Juran将质量定义为“决定产品性能和‘满意程度’的特征”,测试注重于产品的满意度。测试应针对这样一种情况:软件产品在一些特定的范围内不能满足客户的合理要求。通过测试过程可以评定质量风险(可能的错误),了解被测试系统中存在的错误模式(观察到的错误症状)。质量控制技术开发方法学配置管理验证技术评审正确性验证性能调试组件测试集成测试系统测试原子事务模块冗余性检错质量控制避免错误容错调试测试软件质量问题以软件测试为中心的软件质量保障技术软件静态测试技术质量软件度量技术控制动态测试技术技术配置管理技术修改控制与管理技术软件测试是保证软件质量,提高软件可靠性的关键软件测试的目标(1)预防错误(2)发现错误G.J.Myers在<软件测试技巧>中认为:1.测试是为了寻找错误而运行程序的过程。2.一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。3.一个成功的测试是揭示了迄今为止尚未发现的错误的测试。6.1.1测试的目的与地位E.W.Dijkstra指出:“程序测试能证明错误的存在,但不能证明错误不存在。”测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。把证明程序无错当作测试目的不仅是不正确的,完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的。软件测试要设法使软件发生故障,暴露软件错误。测试的“成功”与“失败”能够发现错误的测试是成功的测试,否则是失败...