- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件测试(第2版)课件
第3章 白盒测试方法;学习目标/Target;学习目标/Target;章节概述/ Summary;目录/Contents;基本路径法; ;基本路径法是一种将程序的流程图转化为程序控制流图,并在程序控制流图的基础上,分析被测程序控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。使用基本路径法设计的测试用例需要确保被测程序中的每个可执行语句至少被执行一次。;3.1.1 基本路径法概述;3.1.1 基本路径法概述;3.1.1 基本路径法概述;3.1.1 基本路径法概述;;上一页中的待测试的程序流程图中,序号0表示开始,在转化为控制流图时可以忽略。将待测试的程序流程图转化为控制流图后,控制流图如下图所示。
; ;在白盒测试中,经常使用基本路径法测试程序的代码。为了让读者更好地掌握基本路径法的使用,下面以判断闰年问题的C语言程序代码为例,讲解如何通过基本路径法设计测试用例。;当年份能够被4但不能被100整除时为闰年,或者年份能够被400整除时为闰年,据此可以设计判断输入的年份是否为闰年的C语言程序代码,具体代码如下。
通过分析上述代码画出程序的流程图,如下图所示。;画出程序的控制流图,如右图所示。
右图中,一共有10条边,8个节点,4个区域,其中判定节点有3个,分别是1、3、4,程序的圈复杂度为4。
根据圈复杂度可以得到4条独立的路径,具体如下。
路径1:1→2→8。
路径2:1→3→4→6→8。
路径3:1→3→4→7→8。
路径4:1→3→5→8。
;根据上一页中的4条独立路径即可设计测试用例。判断闰年问题的测试用例如下表所示。;逻辑覆盖法; ;语句覆盖(Statement Coverage)又称行覆盖、段覆盖、基本块覆盖,它是最常见的覆盖方式之一。语句覆盖的目的是测试程序中的代码是否被执行,它只测试代码中的执行语句,这里的执行语句不包括头文件、注释、空行等。语句覆盖在多分支的程序中只能覆盖某一条路径,使得该路径中的每一个语句至少被执行一次,不会考虑各种分支组合的情况。;下面结合一段小程序介绍语句覆盖中方法的执行,程序伪代码如下。;根据程序伪代码可以画出流程图,程序执行的流程图如右图所示。
根据程序执行流程图中标示的语句执行??径设计测试用例,具体如下。
; ;判定覆盖(Decision Coverage)又称为分支覆盖,其原则是设计足够多的测试用例,在测试过程中保证每个判定条件至少有一次为真值,有一次为假值。判定覆盖的作用是使真假分支均被执行,虽然判定覆盖比语句覆盖测试能力强,但仍然具有和语句覆盖一样的单一性。;判定覆盖测试用例如下表所示。; ;条件覆盖(Condition Coverage)是指设计足够多的测试用例,使判定语句中的每个逻辑条件取真值与取假值至少出现一次。
例如,对于判定语句if(a1 or c0)中存在a1和c0这2个逻辑条件,设计条件覆盖测试用例时,要保证a1、c0的真值、假值至少出现一次。下面以程序执行的流程图及其程序为例,设计条件覆盖测试用例,在该程序中,有2个判定语句,每个判定语句有2个逻辑条件,共有4个逻辑条件,使用标识符标记各个逻辑条件取真值与取假值的情况,条件覆盖判定条件如下表所示。;以程序执行的流程图为例,使用条件覆盖则可以设计3条测试用例,条件覆盖测试用例如下表所示。; ;判定-条件覆盖(Condition/Decision Coverage)要求设计较多的测试用例,使得判定语句中所有条件的可能取值至少出现一次,同时,所有判定语句的可能结果也至少出现一次。例如,对于判定语句if(a1 and c1),该判定语句有a1、c1这2个条件,则在设计测试用例时,要保证a1和c1这2个条件取真值、假值至少一次,同时,判定语句if(a1 and c1)取真值、假值也至少出现一次。判定-条件覆盖弥补了判定覆盖和条件覆盖的不足之处。;根据判定-条件覆盖原则,以3.2.2小节中的程序执行的流程图对应的程序为例设计判定-条件覆盖测试用例。判定-条件覆盖测试用例如下表所示。; ;条件组合覆盖(Multiple Condition Coverage)是指设计足够多的测试用例,使判定语句中每个条件的所有可能情况至少出现一次,并且每个判定语句本身的判定结果也至少出现一次。它与判定-条件覆盖的区别是,它不是简单地要求每个条件都出现真与假2种结果,而是要求让这些结果的所有可能组合都至少出现一次。;以3.2.2小节中的程序执行的流程图及其程序为例,该程序中共有4个条件:x0、y0、x2、z0。下面继续使用S1、S2、S3、S4标记这4个条件成立,用-S1、-S2、-S3、-S4标记这4个条件不成立。S1与S2属于一个判定语句,两两组合有4种情况,如下所示。
S1,S2
S1,-S2
-S1,S2
-S1,-S
文档评论(0)