软件工程 教学课件 作者 郑人杰 马素霞 麻志毅 第6章 软件测试.pptVIP

软件工程 教学课件 作者 郑人杰 马素霞 麻志毅 第6章 软件测试.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2部分 结构化软件开发方法 第6章 软件测试 6.1 软件测试的基本概念 什么是软件测试 软件测试是在软件投入生产性运行之前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量控制的关键步骤。 如果给软件测试下定义的话,可以这样讲:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 6.1 软件测试的基本概念 软件测试的目的和原则 基于不同的立场,存在着两种完全不同的测试目的。 从用户的角度出发,普遍希望通过软件测试检验软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。 6.1 软件测试的基本概念 6.1 软件测试的基本概念 根据以上测试目的,软件测试的原则如下: (1)应当把“尽早地和不断地进行软件测试”作 为软件开发者的座右铭。 (2)测试用例应由测试输入数据和与之对应的预 期输出结果这两部分组成。 (3)程序员应避免检查自己的程序。 (4)在设计测试用例时,应当包括合理的输入条 件和不合理的输入条件。 6.1 软件测试的基本概念 测试信息流如下图所示。 现在假设一个程序P有输入量X和Y及输出 量Z,如右图所示。在字长为32位的计算 机上运行,如果X,Y只取整数,考虑把所 有的X,Y值都作为测试数据,按黑盒方法 进行穷举测试,力图全面、无遗漏地“挖掘”出程序中的所 有错误。这样作可能采用的测试数据组(Xi,Yi),不同测 试数据组合的最大可能数目为232×232=264。 如果程序P测试一组X,Y数据需要1毫秒,而且假定一天工 作24小时,一年工作365天,要完成264组测试,需要5亿 年。 6.1 软件测试的基本概念 6.1 软件测试的基本概念 通过以上两个例子表明,实行穷举测试,由于工作量过 大,需用的时间过长,实施起来是不现实的。既然穷举测 试不可行,就必须精心设计测试用例,从数量极大的可用 测试用例中精心地挑选少量的测试数据,使得采用这些测 试数据能够达到最佳的测试效果,或者说它们能够高效率 地把隐藏的错误尽可能多地揭露出来。 以上事实说明,软件测试有一个致命的缺陷,即测试的 不完全、不彻底性。由于任何程序只能进行少量(相对于 穷举的巨大数量而言)的有限的测试,在发现错误时能说 明程序有问题;但在未发现错误时,不能说明程序中没有 错误,不能说明程序中没有问题。 6.2 白盒测试的测试用例设计 逻辑覆盖 6.2 白盒测试的测试用例设计 图中所示的程序段有4条不同的路径。 为了清楚起见,分别对第1个判断的 取假分支、取真分支及第2个判断的 取假分支、取真分支命名为b、c、 d、e。这样所有4条路径可表示为: L1(a→c→e),L2(a→b→d), L3(a→b→e)和L4(a→c→d), 或简写为ace、abd、abe和acd。 6.2 白盒测试的测试用例设计 语句覆盖 6.2 白盒测试的测试用例设计 注意,前一组测试用例不但覆盖了所有判断的取真分支和取 假分支,而且覆盖了判断中所有条件的可能取值。后一组测 试用例虽满足了条件覆盖,但只覆盖了第1个判断的取假分 支和第2个判断的取真分支,不满足判定覆盖的要求。为解 决这一矛盾,需要对条件和分支兼顾,有必要考虑以下的判 定—条件覆盖。 6.2 白盒测试的测试用例设计 所谓判定-条件覆盖就是设计足够的测试用例,使得判断中 每个条件的所有可能取值至少执行一次,同时每个判断本身 的所有可能判断结果至少执行一次。例如,对于图中的各判 断,若T1,T2,T3,T4及 的含义如前所述,则 只需设计以下两个测试用例便可覆盖图中的8个条件取值以 及4个判断分支。 6.2 白盒测试的测试用例设计 判定--条件覆盖也有缺陷。从表面上来看,它测试了所有条 件的取值,但是事实并非如此,因为往往某些条件掩盖了另 一些条件。对于条件表达式(A>1)and(B=0)来说,若 (A>1)的测试结果为真,则还要测试(B=0),才能决定 表达式的值;而若(A>1)的测试结果为假,可以立刻确 定表达式的结果为假,这时,往往就不再测试(B=0)的取 值了,因此,条件(B=0)就没有检查。同样,对于条件表 达式(A=2)or(X>1)来说,若(A=2)的测试结果为 真,就可以立即确定表达式的结果为真,这时,条件(X> 1)就没有检查,因此,采用判定--条件覆盖,逻辑表达式 中的错误不一定能够查得出来。 6

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档