实验2 基本路径测试法

合集下载

基本路径测试

基本路径测试

步骤:
1.绘制程序的控制流图 2.由环路复杂性得到基本路径集 3. 导出测试用例
2
基本路径测试(续1) 1.绘制程序的控制流程图(复习)
1
2
3
6
7 9 8
4 5
10
11
1
2,3 6 4,5 78 9
10 11
3
基本路径测试(续2) 2. 程序环路复杂性、基本路径集
程序的环路复杂性给出了程序基本路径集中的独立路径条数。 从控制流程图来看,一条独立路径是至少包含有一条在其它独
(或1-2-4-5-6-8-5-9-11-2-3)
7
10
8
11
10
举例:基本路径测试(4)
测试用例 Path1:1-2-3
取n=1
Path2 : 1-2-4-5-9 -10-11 -2-3
取n=2 预期结果:路径5-9-10-11-2-3不可达
Path3 : 1-2-4-5-9 -11 -2-3
取n=2,预期结果:路径5-9-11 Swap(list.V[i], list.V[k]);
j=j+1; 8
i=i+1; 11
13
举例:基本路径测试(7)
Path5:
路径A: 1-2-4-5-6-8-5-9-10-11-2-3
1 i=0;
取n=2,V[0]=1,V[1]=2
2 i<n-1
预期结果 路径 不 :k=0,
被测试到 — 用逻辑覆盖方法。 每个测试用例执行之后,与预期结果进行比较。
7
举例:基本路径测试(1)
从小到大排序:
Void SelectSort( datalist &list) {

基本路径测试法

基本路径测试法

画出程序控制流程图 计算程序环路复杂性 确定独立路径集合
准备测试用例
4

例:下面是一个程序段,试设计基本路径测试的测试用
例,设计出的测试用例要保证每一个基本独立路径至少要执 行一次
22 24
I
H
1. int Test(int i_count, int i_flag) 2. { 3. int i_temp = 0; 4. while (i_count > 0) 5. { 6. if (0 == i_flag) 7. { 8. i_temp = i_count + 100; 9. break; 10. } 11. else 12. { 13. if (1 == i_flag) 14. { 15. i_temp = i_temp + 10; 16. } 17. else 18. { 19. i_temp = i_temp + 20; 20. } 21. } 22. i_count- -; 23. } 24. return i_temp; 25. }
1
控制流程图的图形符号

程序控制流程图
1 边 1
3
结点 区域
2 6 3 6 7 8 4 5 7 R3 8 R1 R2
4
9 10 R4
11 (a)程序流程图 )
11 (b)控制流图
2

程序控制流程图 a b x y y
if a and b then x else y
复合逻辑下的控制流程图
3

基本路径测试的步骤

画出程序控制流程图
4
C
6
A
D
E
13
F
G
8 19

第4章白盒测试方法2-基本路径法

第4章白盒测试方法2-基本路径法
根据左图给出的程序流程图,完成以下 要求:
(1)画出相应的控制流 图。 (2)计算环形复杂度。
(3)给出相应的图矩阵 。(4)找出程序的独 立路径集合。
基本路径测试
(1)画出程序的控制流图。
(2)计算程序的环形复杂度,导出程序 基本路径集中的独立路径条数,这是 确定程序中每个可执行语句至少执行 一次所必须的测试用例数目的上界。
基本路径测试
(3)导出基本路径集,确定程序的独立 路径。
(4)根据(3)中的独立路径,设计测试 用例的输入数据和预期输出。
1. 程序的控制流图
1. 程序的控制流图
在选择或多分支结构中,分支的汇 聚处应有一个汇聚节点。 边和结点圈定的区域叫做区域,当 对区域计数时,图形外的区域也应 记为一个区域。
1. 程序的控制流图
1. 程序的控制流图
区域
1. 程序的控制流图
复合条件的控制流图 如果判断中的条件表达式是由一 个或多个逻辑运算符 (OR, AND, ...) 连接的复合条件表达式,则 需改为 一系列只有单个条件的嵌 套的判断。
程序的环路复杂性给出了程序基本 路径集中的独立路径条数,这是确 保程序中每个可执行语句至少执行
2. 程序环路复杂性
独立路径:指包括一组以前没有处理 的语句或条件的一条路径。
从控制流图来看,一条独立路径是 至少包含有一条在其它独立路径中 从未有过的边的路径。 一条路径这里指一条“程序通路”。
路径 path1,path2,path3,path4组
2. 程序环路复杂性
程序环路复杂性计算方法(三种):
(1)流图中区域的数量对应于环形 复杂度 (2)给定流图G的环形复杂度V(G), 定义为V(G)=E-N+2, E是流图中边 的数量,N是流图中节点的数量。 (3) V(G)=P+1, P是流图G中的判 定节点数。

软件测试 实验2 基本路径测试法

软件测试   实验2 基本路径测试法
5、列表分别给出执行每条基本路径的测试用例。
布置作业
实验后记
1、画出给定实验题目的程序流程图;
Y
N
N
Y
Y
N
2、以程序流程图为基础,画出相应的控制流图;
1:开始2:X++<10 3:A>1 4:C=C/A 5:B=0 6:C<0 7:X>1 8:X=X+1 9:A=B+C 10:
3、分别用三种方法计算该程序的环形复杂性V(G);
使用基本路径测试方法为以下程序段设计测试用例
实验2基本路径测试法
重点:掌握环形复杂性的概念及基本路径测试法。
难点:掌握基本路径测试法的步骤及测试用例的编写。
主要内容:
使用基本路径测试方法,为以下程序段设计测试用例。
void Do (int X,int A,int B, int C)
{
while (X++<10)
(1):V(G)=区域数目=6
(2):V(G)=边界数目-节点数目+2=14-10+2=6
(3):V(G)=判断节点数目+1=5+1=6
4、测试用例:
测试用例
覆盖路径
X=11,A=1,B=1,C=1
1-----2-----10
X=1,A=2,B=1,C=1
1-----2-----3-----4-----9-----2
X=2,A=1,B=1,C=2
1-----2-----3-----5-----6-----9-----2
X=1,A=1,B=1,C=-1
1-----2-----3-----5-----6-----7-----9-----2

基本路径测试法的步骤

基本路径测试法的步骤

基本路径测试法的步骤嘿,朋友们!今天咱来聊聊基本路径测试法。

这就好比你要去一个陌生的地方探险,得有个靠谱的路线图才行呀!基本路径测试法呢,就是帮你找到软件里那些关键的路径。

你想想看,软件就像一个大大的迷宫,里面有好多好多的路,你要是随便乱走,那可就晕头转向啦!但有了基本路径测试法,就像有了指南针一样。

咱先得把软件的各个模块呀、功能呀都搞清楚,这就像你得知道迷宫里都有哪些房间一样。

然后呢,找出那些最重要的流程,这就是你要走的主要道路啦。

比如说,一个购物软件,从挑选商品到下单付款,这就是一条关键路径呀。

接下来,可不能马虎,得仔细地沿着这些路径走一走,看看会不会有什么问题。

就像你走在路上,得留意有没有坑洼呀,有没有绊脚石呀。

如果有,那可得赶紧标记出来,让开发人员去修好。

有时候啊,你还得变着法儿地走。

比如故意走一些不太正常的路,看看软件能不能应对。

这就好像你在迷宫里突然想绕个弯,看看会不会有新发现。

要是软件在这些奇怪的情况下也能正常工作,那才叫厉害呢!再说说这测试的过程,可不能马马虎虎。

要像侦探一样,不放过任何一个小细节。

一个小按钮没反应,那可不行;一个页面显示不正常,那也不行。

这都得找出来解决掉呀!不然用户用起来得多别扭呀。

而且呀,基本路径测试法可不是一次性的事儿。

就像你家的东西时不时要检查检查一样,软件也得经常用这个方法来测一测。

万一有新的功能加进去了,那可得重新找找新的路径,再好好测试一番。

你说,要是没有基本路径测试法,那软件不就乱套啦?用户用着用着就出错,那多糟糕呀!所以呀,这个方法可太重要啦!咱可得好好重视,让软件变得稳稳当当的,让用户用得开开心心的,对不对?总之呢,基本路径测试法就像是软件的保护神,有了它,软件才能更好地为我们服务呀!咱可不能小瞧了它哟!。

基本路径法_软件测试技术

基本路径法_软件测试技术

If语句
Case语句

包含条件的节点被称为判断节点(也叫 谓词节点),由判断节点发出的边必须 终止于某一个节点,由边和节点所限定 的范围被称为区域。



这里我们假定在流程图中用菱形框表 示的判定条件内没有复合条件,而一 组顺序处理框可以映射为一个单一的 结点。 控制流图中的箭头(边)表示了控制 流的方向,类似于流程图中的流线, 一条边必须终止于一个结点。 在选择或者是多分支结构中分支的汇 聚处,即使汇聚处没有执行语句也应 该添加一个汇聚结点。
4
6 7 4 1 10 2 8
3
11
13 14
3、图矩阵

图矩阵-即流图的矩阵表示。其维数等于流 图的节点数。每列和每行都对应于标识的节 点,矩阵元素对应于节点的边。
1 a 2 d b 3 c 4 一个简单的流图
节点 1 2 3
1
2 a
3 b
4
c
4
d
流图对应的矩阵图
说明
复合条件分解控制流图
1
A>1 AND B =0
2
X=X/A
3
( a ) 流程图
流程图
1
A>1
B=0
2
X=X/A
4
( c ) 详细流程图
3 ( d ) 流程图 c 对应的流图
程序设计中遇到复合条件 时,生成的流图变得更为复 杂。当条件语句中用到一个 或多个布尔运算符(逻辑OR, AND,NAND,NOR)时,就出现 了复合条件。下图为语句IF a OR b中的每一个a和b创建 了一个独立的结点,包含条 件的结点被称为判定结点, 从每一个判定结点发出两条 2 或多条边。例如: 1 if a or b 2 x 3 else 4 y 对应的逻辑为:

白盒测试技术(基本路径测试法)

白盒测试技术(基本路径测试法)
输入数据 预期结果
控制流图的组成: 1. 节点:以标有编号的圆圈表示。可代表一个或多个语句、一
个处理框序列和一个条件判定框(假设不包含复合条件)。包 含条件的节点被称为判断节点,分支的汇聚处应该有一个汇 点。, 2. 控制流线或弧:以箭头表示,又称为边。 3. 边和结点圈定的区域叫做区域,当对区域计数时,图形外的 区域也应记为一个区域。

1
▪ 1.白盒测试技术概念以及方

▪ 2.基本路径测试法
重点
▪ 步骤
▪ 实现
黑盒
X=2
?
y=4
白盒
X=2 y=2x
y=4
白盒测试以源代码为基本对象,是对软件的过 程性细节做细致的检查,允许测试人员利用程序内 部的逻辑结构及有关信息,设计或选择测试用例, 对程序所有逻辑路径进行测试,通过在不同点检查 程序状态,确定实际状态是否与预期的状态一致。
2.计算环路复杂度,又称为圈复杂度
❖ 案例分析
3.列出程序中形成的基本路径集合
路径1:4-14 路径2:4-6-7-14 路径3:4-6-8-10-13-414 路径4:4-6-8-11-13-414
❖ 案例分析
4.推导出可以确保集合中每条独立路径都被执行的 测试用例。
2
1
4
3
分析控制流图:
1. 节点数: 9 2. 判断节点数: 3 3. 边数: 11 4. 区域数: 4
程 序 流 程
控 制 流 图

程序的环路复杂性给出了程序基本路径集中的 独立路径条数,这是确保程序中每个可执行语句至 少执行一次所必需的测试用例数目的上界。
程序环路复杂性计算方法(三种):
(1)流图中区域的数量对应于环形复杂度; 4. (2)给定流图G的环形复杂度V(G),定义 为V(G)=E-N+2, E是流图中边的数量, N是流图中节点的数量。 V(G)=11-9+ 2. (3) V(G)=P+1, P是流图G中的判定节 点数。 V(G)=3+1

软件测试之基本路径测试

软件测试之基本路径测试

软件测试之基本路径测试基本路径测试是Tom McCabe[MCC76]首先提出的一种白盒测试技术,基本路径测试方法上”。

允许测试用例设计者导出一个过程设计的逻辑复杂性测度,并使用该测度作为指南来定义执行路径的基本集。

从该基本集导出的测试用例保证对程序中的每一条语句至少执行一次。

1 流图符号在介绍基本路径方法之前,必须先介绍一种简单的控制流表示方法,即流图或程序图①。

流图使用图1-1中的符号描述逻辑控制流,每一种结构化构成元素有一个相应的流图符号。

为了说明流图的用法,我们采用图1-2中的过程设计表示法,此处,流程图用来描述程序控制结构。

图 1-2b将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。

在图1-2b中,每一个圆,称为流图的节点,代表一个或多个语句。

一个处理方框序列和一个菱形决测框可被映射为一个节点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。

一条边必须终止于一个节点,即使该节点并不代表任何语句(例如:参见if-else-then结构的符号)。

由边和节点限定的范围称为区域。

计算区域时应包括图外部的范围①。

任何过程设计表示法都可被翻译成流图,图 1-3显示了一个程序设计语言(PDL,ProgramDesign Language)片段及其对应的流图,注意,对PDL语句进行了编号,并将相应的编号用于流图中。

程序设计中遇到复合条件时,生成的流图变得更为复杂。

当条件语句中用到一个或多个布尔运算符(逻辑OR,AND,NAND,NOR)时,就出现了复合条件。

图1-4中,将一个PDL片段翻译为流图,注意,为语句IF a OR b中的每一个a 和b创建了一个独立的节点,包含条件的节点被称为判定节点,从每一个判定节点发出两条或多条边。

2 环形复杂性环形复杂性是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于基本路径方法,计算所得的值定义了程序基本集的独立路径数量,并为我们提供了确保所有语句至少执行一次的测试数量的上界。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1-----2-----3-----5-----6-----7-----8-----9-----2
X=2,A=1,B=0,C=2
1-----2-----3-----5-----4-----9-----2
本次课主体实验方式、方法:
上机指导基本路径测试法测试用例的编写。
布置作业
实验后记
提交方式:以“学号姓名”命名的word文档。
1、画出给定实验题目的程序流程图;
Y
N
N
Y
Y
N
2、以程序流程图为基础,画出相应的控制流图;
1:开始2:X++<10 3:A>1 4:C=C/A 5:B=0 6:C<0 7:X>1 8:X=X+1 9:A=B+C 10:结束
实验2基本路径测试法
实验重点:掌握环形复杂性的概念及基本路径测试法。
实验难点:掌握基本路径测试法的步骤及测试用例的编写。
讲授主要内容:
使用基本路径测试方法,为以下程序段设计测试用例。
void Do (int X, int A, int B, int C)
{
while (X++ < 10)
{
if ( (A>1) || (B==0) )
Y
NN
Y
Y
Yห้องสมุดไป่ตู้
N
Y
3、分别用三种方法计算该程序的环形复杂性V(G);
(1):V(G)=区域数目=6
(2):V(G)=边界数目-节点数目+2=14-10+2=6
(3):V(G)=判断节点数目+1=5+1=6
4、测试用例:
测试用例
覆盖路径
X=11,A=1,B=1,C=1
1-----2-----10
X=1,A=2,B=1,C=1
1-----2-----3-----4-----9-----2
X=2,A=1,B=1,C=2
1-----2-----3-----5-----6-----9-----2
X=1,A=1,B=1,C=-1
1-----2-----3-----5-----6-----7-----9-----2
X=2,A=1,B=1,C=-1
C = C/A;
else
if ( (C<0) && (X>1) )
X = X+1;
A=B+C;
}
}
要求:
1、画出给定实验题目的程序流程图;
2、以程序流程图为基础,画出相应的控制流图;
3、分别用三种方法计算该程序的环形复杂性V(G);
4、根据环形复杂性V(G),找出该程序的基本路径集;
5、列表分别给出执行每条基本路径的测试用例。
相关文档
最新文档