测试-控制流测试

参考:ysu老师课件(测试老师和软件工程老师的结合了一下)

本文章总结了控制流测试的知识点和习题练习,没有总结如何画控制流图,很简单,跟着思路走就行,但是要注意一定要画合并结点。


目录

路径覆盖

语句覆盖原则

判定覆盖(分支覆盖原则)

条件覆盖

谓词覆盖原则(条件组合覆盖)

生成测试输入


路径覆盖

路径覆盖的含义是,选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。

路径覆盖要求设计足够多的测试用例,在白盒测试法中,覆盖程度最高的就是路径覆盖,因为其覆盖程序中所有可能的路径。

对于比较简单的小程序来说,实现路径覆盖是可能的,但是如果程序中出现了多个判断和多个循环,可能的路径数目将会急剧增长,以致实现路径覆盖是几乎不可能的。

总结:选取程序中所有可能(可执行)的路径。

测试-控制流测试_第1张图片

比如上述图的部分输入与路径:

输入:

路径:1-2-3(F)-8-9(F)-14-15(F)-9-21

输入:

路径:1-2-3(T)-4(F)-6-8-9(F)-14-15(F)-9-21

语句覆盖原则

选取路径,是的程序单元中所有的语句至少被执行一次(覆盖CFG中的所有结点)。

在程序测试中的完全语句覆盖是最弱的覆盖标准。

任何测试套件,如果对新程序的测试没有达到语句覆盖,则认为是不可接受的。

总结:选择测试数据,使被测程序中每个语句至少执行一次

测试-控制流测试_第2张图片

分析:

取A=2,B=0,X=3,则 通过路径 acbed ,符合语句覆盖

所以测试用例取(2,0,3)

判定覆盖(分支覆盖原则)

每个语句至少执行一次,每个判定的真假分支至少执行一次。

每个条件取true和false各一次。

比语句覆盖强,但只覆盖一半路径

测试-控制流测试_第3张图片

1.a 真 b也真 acbed (2,0,3)

2.a 假 b 也假 abd(3,1,1)

另外一组:

1.a 真 b假 acbd (3,0,1)

2.a 假 b真 abed (2,0,3)

条件覆盖

每个语句至少执行一次,判定表达式每个条件取各种可能结果。

测试-控制流测试_第4张图片

为了做到条件覆盖,应该选取测试数据使得:

在a点有下述各种结果出现:

A>1,A<=1,B=0,B!=0;

在b点有下述各种结果出现:

A=2,A!=2,X>1,X<=1。

使用下面两组测试数据就可以达到上述覆盖标准:

A=2,B=0,X=4 (满足A>1,B=0,A=2,X>1)

A=1,B=1,X=1 (满足A<=1,B!=0,A!=2,X<=1)

谓词覆盖原则(条件组合覆盖)

使每个判定表达式中条件的各种组合都至少执行一次。

测试-控制流测试_第5张图片

测试-控制流测试_第6张图片

测试-控制流测试_第7张图片

生成测试输入

1.输入向量

是所有读入例程的数据实体的集合,数据的值在进入例程前必须固定。

例程输入向量的一些不同的形式:

程序的输入参数、全局变量和常量、文件;汇编语言编程中寄存器内容;网络连接;定时器。

2.谓词

决策点的逻辑函数。

3.路径谓词

与一条路径相关的谓词集(包含谓词的真值)。

4.谓词解释

用输入向量和常量来表达谓词。

5.路径谓词表达式

由输入向量及可能的常量向量构成的约束集。

6.从路径谓词表达式生成输入数据

字面意思,从路径谓词表达式生成输入数据

笔记:

测试-控制流测试_第8张图片

测试-控制流测试_第9张图片

你可能感兴趣的:(学校考试,测试)