文档详情

软件测试课件.pptx

发布:2022-01-18约1.02万字共55页下载文档
文本预览下载声明
第9章 软件测试学习目标:?软件测试的目的和重要性?软件测试遵循的原则?软件测试的基本步骤?软件测试的基本方法?软件测试的基本策略?排错技术?面向对象的测试方法?几种比较:渐增式与非渐增式; 自顶而下增值与自底而上增值?课后习题二(10)定义G.Myers 给出了关于软件测试的一些规则,也可以把它看作是软件测试的定义。这些规则是:(1) 测试是为了发现程序中的错误而执行的过程。(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。(3) 成功的测试是发现了迄今为止尚未发现的错误的测试。从上述规则可以看出,测试的定义是“为了发现程序中的错误而执行程序的过程”,而非“测试是为了表明程序是正确的” 。 测试术语 错误(error)如果在系统中有一个错误,失效必然出现,如果失效出现了,系统中必然有一个故障。但是,如果在系统中有一个故障,系统仅仅是有可能出现失效。失效的条件必须恰好是吻合的。这个事实充分说明了为什么测试是一项困难的任务。如果一个系统在我们的测试过程中没有失效,我们仍不能保证系统中不存在故障。测试仅能说明故障的存在,而不能说明没有故障。 根本原因故障(fault)导致(并非全部)源于失效(failure)继续错误(error)返回有两种不同的使用方式:错误是指一个实际测量值与理论预期值之间的分歧。错误是指一些人的行为引起的软件中的某种失效或故障。故障(fault)返回故障(fault)是导致软件失败的一个条件。软件出错的基本原因是故障。实际上,一提到软件,我们常常没有区分错误和故障。失效(failure)返回失效(failure)是指不能按软件规格说明要求执行一个软件片段。失效源于故障,尽管并不是所有故障都会导致失效。一个软件片段已失效,然而其实际行为不同于其规格说明中设计的期望行为。有这样的失效,它出现了但探测不到,注意到这个事实很重要。这样的不可见失效仍然是失效。测试术语 测试计划(test plan)规定了我们将如何说明软件没有故障,其行为满足需求规格说明。测试喻示(test oracle)是一个测试集合的预期结果集。目的发现错误并不是最终目的。软件工程的根本目标是开发出高质量的完全符合用户需要的软件,因此,通过测试发现错误之后还必须诊断并改正错误,这就是调试的目的。重要性(1) 一个糟糕的测试程序可能导致测试任务的失败,更严重的可能影响操作的性能和可靠性,并且可能会导致在维护阶段花费巨大的成本。(2) 一个好的测试程序是项目的主要成本,复杂的项目需要花费超过项目一半以上的成本在软件测试和验证上。为了使测试有效,在计划和组织测试上必须体现花费适当的时间。(3) 一个好的测试程序可以极大地帮助你定义需求和设计。这有助于项目在一开始就步入正轨,并且对整个项目的成功都有重要影响。(4) 一个好的测试可以迫使你在工作时必须去面对和处理问题,并且会使重新工作或修改缺陷的成本变得很低。(5) 一个好的测试不能弥补一个糟糕的项目,但是的确有助于发现许多问题并且至少使得你尽早知道你处在问题当中。由此可知,软件测试对于完成一个项目有很重要的影响,针对某一个具体项目而言,一个好的测试过程是非常有意义的。应该清楚:软件测试并非只担当“挑错”的角色,其重要性不亚于软件的开发环节。返回软件测试遵循的原则(1) 尽早测试原则。应当把“尽早地和不断地进行软件测试”作为软件开发者的信条。(2) “第三方”测试原则。为了达到测试更有效,应该由第三方来构造测试。(3) 测试用例应当包括测试输入数据和对应的预期输出结果两部分。(4) 测试用例的设计应该既包括合理的输入条件也包括不合理的输入条件。(5) 注意测试中的群集现象。测试过程中不要认为找到了一些错误就认为问题解决了,实际上还有很多的错误没有被发现,软件测试中有个Pareto 原则,它暗示了测试中发现的错误中的80%很可能起源于程序模块中的20%,根据这个规律,应当对错误比较集中的程序段进行重点测试,从而提高测试的效率。(6) 测试必须有计划、有控制、并且提供资源和时间,要严格执行。(7) 穷尽测试是不可能的。测试是为了使软件的缺陷数量降到可接受的范围,而且测试的资源和时间都有限,所以需要找出很好的测试用例来代替穷尽测试。(8) 在整个测试过程中,应当对每一步、每一个部分的测试结果做全面检查和记录,而且要求保存测试计划,测试的中间结果,测试用例,出错统计和最终分析报告。返回软件测试过程一般按以下几个步骤进行。1. 单元测试单元测试又称为模块测试,可以认为是最早开始的测试。单元测试是对软件的每个模块进行的测试,一般要求一个模块独立完成一定的功能,而且各模块之间相互联系较少,单元测试中往往发现的是编码错误,详细设计错误等,测试的目的是保证每个模块能作为一个独立的单元正确运行。2. 组装测试组
显示全部
相似文档