软件测试培训
美国上市软件测试培训机构

400-111-8989

热门课程

白盒技术--软件测试概念(十)

  • 时间:2016-07-13
  • 发布:软件测试培训
  • 来源:软件测试教程

术语

代码覆盖(codecoverage)、判定覆盖(decision coverage)、语句覆盖(statement coverage)、基于结构的测试(structure-basedtesting)。

背景

基于结构的测试/白盒测试是根据识别软件或系统的结构,可以从以下内容得到进一步的理解:

l 组件级别:软件组件的结构,比如:语句、判定、分支或每个不同的路径;

l 集成级别:结构可能是调用树(模块调用关系图);

l 系统级别:结构可能是菜单结构、业务过程或web页面结构。

基于语句、分支和判定,本节将讨论三种与代码相关的结构化测试设计技术的代码覆盖。对于判定覆盖,可以使用控制流图来形象表示每个判定之间的转换。

1. 语句覆盖和覆盖率

在组件测试中,语句覆盖是指评价一个测试用例套件中已经执行的可执行语句的百分比。语句测试的测试用例用来执行专门的语句,通常用来增加语句的覆盖率。

语句覆盖率取决于被(设计或执行)测试用例覆盖的可执行语句数量除以被测代码中所有可执行语句数量。

2. 判定覆盖和覆盖率

判定覆盖,和分支测试相关,是指评价在一个测试用例套中已经执行的判定(例如if语句的true和false选项)输出的百分比。判定测试的测试用例用来执行专门的判定输出。分支起始于代码中的判定点,并表明了在代码中不同位置的控制转移。

判定覆盖率取决于被(设计或执行)的测试用例覆盖的所有判定出口数目除以被测代码中所有可能的判定出口数目。

判定测试是控制流测试技术的一种方式,它在判定点产生一个专门的控制流。判定覆盖比语句覆盖更全面,100%的判定覆盖可以保证100%的语句覆盖,反之则不行。

3. 其他的基于结构的技术

除了判定覆盖,还有程度更高的基于结构的覆盖,如条件覆盖。

案例:

If(A and B){Action1}

if(C or D){Action2}

语句覆盖:最弱,只需要让程序中的语句都执行一遍即可。

用例:

A=true,B=true,C=true。

分支覆盖:又称判定覆盖,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。

用例:

A=true,B=true,C=true,D=false

A=true,B=false,C=false,D=false。

条件覆盖:要使得每个判断中的每个条件的可能取值至少满足一次。

用例:

A=true,B=true,C=true,D=true

A=false,B=false,C=false,D=false。

路径覆盖:要求覆盖程序中所有可能的路径。

用例:

A=true,B=true,C=true,D=true

A=false,B=false,C=false,D=false

A=true,B=true,C=false,D=false

A=false,B=false,C=true,D=true。

因此,可以看出完整性排序:路径覆盖>=条件覆盖>=分支覆盖>=语句覆盖

摘自:《ISTQB测试人员认证初级(基础级)大纲》

上一篇:黑盒测试技术(3)--软件测试概念(九)
下一篇:基于经验的技术--软件测试概念(十一)

白盒技术--软件测试概念(十)

黑盒测试技术(3)--软件测试概念(九)

黑盒测试技术(2)--软件测试概念(八)

黑盒测试技术(1)--软件测试概念(七)

选择城市和中心
贵州省

广西省

海南省

台湾