| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 详解软件测试中基本路径测试法 -> 正文阅读 |
|
[开发测试]详解软件测试中基本路径测试法 |
定义????????基本路径测试法又称独立路径测试,是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计出相应的测试用例的方法。设计出的测试用例要保证在测试中程序的语句覆盖100%,条件覆盖100%。 测试步骤基本路径测试法包括以下4个步骤: ????????(1) 画出程序的控制流图:描述程序控制流的一种图示方法; ????????(2) 计算程序的环形复杂性:McCabe复杂性度量;从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界; ????????(3) 导出测试用例;根据圈复杂度和程序结构设计用例数据输入和预期结果; ????????(4) 准备测试用例,确保基本路径集中的每一条路径的执行; 第一步:画出控制流图????????流程图用来描述程序控制结构。可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。在流图中,每一个圆,称为流图的结点,表示一个或多个无分支的语句或源程序语句。一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句。由边和结点限定的范围称为区域,计算区域时应包括图外部的范围。 在控制流图中的两种图形符号:
常见结构的控制流图 在将程序流程图简化成控制流图时,应注意:
🌰举个栗子: 根据下面的java程序画出流程图和对应的控制流图
程序流程图和对应的控制流图如下: 第二步:计算圈复杂度????????圈复杂度用来衡量一个模块判定结构的复杂程度,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路,通俗的来说就是该路径要比其他路径至少多一个新的路径,并且该路径应该是从头至尾的,不可间断。 有以下几种方法计算圈复杂度:
根据圈复杂度计算,上面例3的复杂度计算如下:
第三步:导出测试用例根据上面的计算方法,可得出四个独立的路径,V(G)值正好等于该程序的独立路径的条数。 ????????路径1:4-14 ????????路径2:4-6-7-14 ????????路径3:4-6-9-10-13-4-14 ????????路径4:4-6-9-12-13-4-14 根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。 第四步:准备测试用例为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是: 路径1:4-14: ????????① 结点4代码while(iRecordNum-->0),取值False; ????????② 输入数据:iRecordNum≤0的任何一个值。 路径2:4-6-7-14: ????????① 结点4代码while(iRecordNum-->0),取值True; ????????② 结点6代码iType= =0,取值True; ????????③ 输入数据:iRecordNum=1,iType=0。 路径3:4-6-9-10-13-4-14: ????????① 结点4代码while(iRecordNum-->0),取值True; ????????② 结点6代码iType= =0,取值False; ????????③ 结点9代码iType= =1,取值True; ????????④ 结点10代码x=y+10; ????????⑤ 输入数据:iRecordNum=1,iType=1。 路径4:4-6-9-12-13-4-14 ????????① 结点4代码while(iRecordNum-->0),取值True; ????????② 结点6代码iType= =0,取值False; ????????③ 结点9代码iType= =1,取值False; ????????④ 结点12代码x=y+20; ????????⑤ 输入数据:iRecordNum=1,iType=2。
案例分析案例一分析下面的代码段,设计一组满足基本路径覆盖的测试用例。 案例步骤
代码段
流程图 ? 步骤1:导出过程的控制流图:根据流程图分析结点: (1)结点1:开始; (2) (3)结点4: (4) (5)结点7: (6)结点8: (7)结点9:结束。 步骤2:确定环形复杂性度量V(G): (1)V(G)= 5 (个区域)[区域1:2-3-5;区域2:3-4-5;区域3:5-6-7;区域4:6-7-8;区域5:外部]; (2)V(G)=E–N+2=12–9+2=5;其中E为流图中的边数,N为结点数; (3)V(G)=P+1=4+1=5;其中P为判定结点的个数。在流图中,结点2、3、5、6是判定结点。 步骤3:确定基本路径集合(即独立路径集合)。于是可确定5条独立的路径: ????????路径1:1-2-5-6-8-9 ????????路径2:1-2-5-7-8-9 ????????路径3:1-2-5-6-7-8-9 ????????路径4:1-2-3-5-6-8-9 ????????路径5:1-2-3-4-5-6-8-9 步骤4:为每一条独立路径各设计一组测试用例,以便强迫程序沿着该路径至少执行一次。 (1)路径1(1-2-5-6-8-9)的测试条件:
(2)路径2(1-2-5-7-8-9)的测试条件:
(3)路径3(1-2-5-6-7-8-9)的测试条件:
(4)路径4(1-2-3-5-6-8-9)的测试条件:
(5)路径5(1-2-3-4-5-6-8-9)的测试条件:
用例设计 基本路径覆盖法用例如下:
案例二分析下面的代码段,设计一组满足基本路径覆盖的测试用例。 案例步骤
代码段
流程图 ? 步骤1:导出过程的控制流图:根据流程图分析结点: (1)结点1:开始 (2)结点2: (3) (4)结点5: (5) (6)结点8: (7)结点9: (8)结点10: (9)结点11: (10)结点12: (11)结点13:结束 步骤2:确定环形复杂性度量V(G): (1)V(G)= 6 (个区域)[区域1:3-4-10;区域2:10-11-12-13;区域3:6-7-9;区域4:7-8-9;区域5:3-4-5-6-9;区域6:外部]; (2)V(G)=E–N+2=17–13+2=6;其中E为流图中的边数,N为结点数; (3)V(G)=P+1=5+1=6;其中P为判定结点的个数。在流图中,结点3、4、6、7、10是判定结点。 步骤3:确定基本路径集合(即独立路径集合)。于是可确定6条独立的路径: ????????路径1:1-2-3-10-11-13 ? ? ? ? 路径2:1-2-3-10-12-13 ????????路径3:1-2-3-4-10-12-13 ????????路径4:1-2-3-4-5-6-9-3… ????????路径5:1-2-3-4-5-6-7-9-3… ????????路径6:1-2-3-4-5-6-7-8-9-3…
步骤4:为每一条独立路径各设计一组测试用例,以便强迫程序沿着该路径至少执行一次。 (1)路径1(1-2-3-10-11-13)的测试条件:
(2)路径2(1-2-3-10-12-13)的测试条件:
(3)路径3(1-2-3-4-10-12-13)的测试条件:
(4)路径4(1-2-3-4-5-6-9-3…)的测试条件:
(5)路径5(1-2-3-4-5-6-7-9-3…)的测试条件:
(6)路径6(1-2-3-4-5-6-7-8-9-3…)的测试条件:
用例设计 基本路径覆盖法用例如下:
|
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 7:45:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |