基本路径测试法习题

合集下载

《软件测试基础》期末试卷及参考答案

《软件测试基础》期末试卷及参考答案

1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支_至少被执行一次。

2、黑盒测试的具体技术方法 ____________、 __________、 __________、____________。

等价类划分法,边界值分析法,决策表法,因果图法3、黑盒测试又称之为___________测试。

功能4、等价类划分有两种不同的情况:____________和____________。

有效等价类,无效等价类5、根据覆盖目标的不同,逻辑覆盖又可分为:________________,_____________,_______________,__________________,条件组合覆盖,判断/条件覆盖。

语句覆盖,判定覆盖,条件覆盖,路径覆盖6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类____________,____________和____________。

白盒测试工具、黑盒测试工具、测试管理工具7、软件测试是为发现程序中的______________而执行程序的______________。

错误,过程8、测试用例是由______________和预期的______________两部分组成。

测试输入数据,输出数据9、白盒测试又称为______________,可以分为______________和______________两大类。

结构测试,静态测试,动态测试10、软件是包括____________﹑____________﹑____________的完整集合。

程序,数据,相关文档11、边界值分析法属于____________。

黑盒测试12、单元测试是以____________说明书为指导,测试源程序代码。

详细设计13、集成测试以____________说明书指导,测试软件结构。

概要设计14、确认测试以____________说明书为指导。

需求分析15、软件开发的基本过程____________,_____________,_______________,_____________,_____________,______________。

软件测试复习题

软件测试复习题

2005 年1. 在系统验收测试中, __(23)A_ _是在一个模拟的环境下使用模拟数据运行系统;__(24)A是在一个实际环境中使用真实数据运行系统。

B. 审计测试C.确认测试D.模块测试 B.审计测试 C.确认测试 D.模块测试B 为了申报某科技奖项,希望机构 A 能先出具一份证实其软件质量优秀的测试报告,并且口头承诺测试会继续进行,并且测试过程中发现的问题 都会得到改正。

如果你是机构A 的负责人,对于评测师甲的请求,你将_(38)_A ___。

对于公司B 提出的要求,机构 A 的评测师甲、乙分别给出了如下的建议:甲认为可以出质量优秀报告,但是需要公司B 出具改正所有测试问题的书面承诺书和自己QA 部门认可;乙认为由于测试还没有结束,很多问题海没有得到改正,因此不能出质量优秀的 报告,但可以根据已经测试过的模块的情况,出具一个质量基本合格的报告。

对于以上 建议你认为 __(39)_D ___ 。

测试结束后,评测师乙提出要保留公司 B 的被测试软件的样品,对于评测师乙的要求你认为 _______ (40)_D ___ 。

(38) A.不批准甲的请求B. 批准甲的请求,但是要求甲不能透露公司C. 不批准甲的请求,但是建议甲可以到公司D. 批准甲的请求,并要求甲尽快提高自己在 献(39) A.应该听从甲的建议C. 应该综合甲乙的建议(40) A.不合理,这样侵犯了 B 的知识产权C. 不合理,仅保留文档就行了3. 关于软件测试对软件质量的意义,有以下观点:①度量与评估软件的质量;②保证软件质量;③改进软件开发过程;④发现软件错误。

其中正确的是__(41)_C__。

(41) A.①、②、③ B .①、②、④C.①、③、④D.①、②、③、④4. 某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证:① 经过自己测试的软件今后不会再出现问题;② 在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问 题多,就重点审查该程序,以免不利于团结;③ 承诺不需要其他人员,自己就可以独立进行测试工作;④ 发扬咬定青山不放松的精神, 不把所有问题都找出来, 决不罢休; 你认为应聘者 甲的保证__(43)D __。

白盒测试-基本路径测试习题

白盒测试-基本路径测试习题
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int i,max=0; int arr[]=new int[5];//设数组大小为5 System.out.println("请输入数组元素:"); for(i=0;i<=arr.length-1;i++) {
(1)void bubbleSort(int a[]){
(2)
for (int i = a.length; --i>=0; ) { //2.1 int i = a.length
(3)
boolean flipped = false; //2.2.1 –-i=0
(4)
for (int j = 0; j<i; j++) { //2.2.2 –-i>0
3.独立路径集 路径 1:2.1-2.2.1-2.2.2-15-16 路径 2:2.1-2.2.1-3-3.1-4.1-4.2-12-13-16 路径 3:2.1-2.2.1-2.2.2-3-3.1-4.1-4.2-5-10-4.3-4.2-12-13-16 路径 4:2.1-2.2.1-2.2.2-3-3.1-4.1-4.2-5-10-4.3-4.2-12-13-2.2.1-2.2.2-15-16 路径 5:2.1-2.2.1-2.2.2-3-3.1-4.1-4.2-5-6,7,8,9-10-4.3-4.2-12-13-2.2.1-2.2.2-15-16 路径 6:2.1-2.2.1-2.2.2-3-3.1-4.1-4.2-5-6,7,8,9-10-4.3-4.2-12-13-16
for (int j = 0; j<i; j++) { if (a[j] > a[j+1]) {

基本路径测试法

基本路径测试法

画出程序控制流程图 计算程序环路复杂性 确定独立路径集合
准备测试用例
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

软件测试复习题

软件测试复习题

一、选择题。

1.软件测试的目的是()。

A)表明软件的正确性B) 评价软件质量C) 尽可能发现软件中的错误D) 判定软件是否合格2、导致软件缺陷的最大原因是:()A.软件需求说明书B.设计方案C.编码D.维护3.关于白盒测试与黑盒测试的最主要区别,正确的是()。

A) 白盒测试侧重于程序结构,黑盒测试侧重于功能B) 白盒测试可以使用测试工具,黑盒测试不能使用工具C) 白盒测试需要程序参与,黑盒测试不需要D) 黑盒测试比白盒测试应用更广泛4、()是一种关注变量定义赋值点(语句)和引用或使用这些值的点(语句)的结构性测试,主要用作路径测试的真实性检查。

A、基本路径测试B、逻辑覆盖C、决策表D、数据流测试5.软件测试类型按开发阶段划分( ) 。

A)需要测试﹑单元测试﹑集成测试B)单元测试﹑集成测试﹑确认测试﹑系统测试﹑验收测试C)单元测试﹑集成测试﹑确认测试D)调试﹑单元测试﹑功能测试6.测试的关键问题是()。

A)如何组织软件评审B)如何选择测试用例C)如何验证程序的正确性D)如何采用综合策略7.下列几种逻辑覆盖标准中,查错能力最强的是()。

A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖8.软件测试用例主要由输入数据和()两部分组成。

A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析9. 单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。

A) 系统功能B) 局部数据结构C) 重要的执行路径D) 错误处理10. 增量式集成测试有3种方式:自顶向下增量测试方法,()和混合增量测试方式。

A)自中向下增量测试方法B)自底向上增量测试方法C)多次性测试D)维护11.不属于白盒测试的技术是( )A) 路径覆盖B) 判定覆盖C)边界值分析D) 条件覆盖12.下列模型哪个是软件测试过程模型( )A) W模型B) 漠布模型C) L模型D) G模型13.下面( ) 方法能够有效地检测输入条件的各种组合可能引起的错误。

软件测试习题课

软件测试习题课

3、针对以下 C 语言程序,请按要求回答问题
以下是一个用来求解一元二次方程的 C 语言程序:
1 main()
2{
3
float a,b,c,x1,x2,delta;
4
scanf("%f%f%f",&a,&b,&c);
5
if (a!=0)
6
{
7
delta=b*b-4*a*c;
8
if (delta>0)
9
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;
4、一个系统的登录操作规格说明如下: 登录对话框有两个数据输入:用户名和密码。登录操作对两个输入数据进行检查,要求用户
名中只能包含字母和数字(字母不区分大小写),密码可以包含任何字符。用户名和密码都 不能为空且长度不限。当用户名或密码为空时,则登录失败并提示对应的出错信息;当用户 名不正确或用户名不存在或密码错误时,则登录失败并提示以下三种相应的出错信息:用户 名不合法(即包含有非字母、非数字字符),或用户名不存在,或密码错误;当用户名和密 码都正确时,则显示登录成功信息,完成登录。 假设正确的用户名是 abcd123,密码是123456 试用等价类方法为上述规格说明设计等价类表和测试用例。

习题课(软件工件-信息系统分析)

习题课(软件工件-信息系统分析)
9
解:(1)系统的数据源点、终点、处理功能及存储

源点:
病人:提供生理信号信息; 系统随时接收每个病人的生理信号(脉搏、体温、血 压、心电图等) 护士:要求病情报告信息; 护士可以要求系统印出某个指定病人的病情报告。 时钟:提供日期和时间信息的“时钟”。 系统应“定时记录病人情况以形成患者日志” 。




画出下列伪码程序的程序流程图和盒图: START 解:(1)程序流程图 IF p THEN 开始 WHILE q DO F T f p END DO q循环 g ELSE WHILEq BLOCK n f g n q循环 END BLOCK END IF 停止 STOP
24
本节练习
1
p
4 2
q
3
模块p、t、 u更新同一 个数据库
表1 模块接口描述
接口编号 1 2 3 4 输入 飞机类型 飞机零件清单 功能代码 飞机零件清单 控制 输出 状态标志 耦合类型 数据
r
5
s
6
5 6
零件编号 零件编号
零件制造商 零件名称
数据 数据
22
t
u
图1 一个程序的模块互连图
模块p、t、u之间为公共环境耦合


终点:

护士:接收警告信息和病情报告。
10
解:(1)系统的数据源点、终点、处理功能及存储

处理:
接收信号; 分析信号; 产生警告信息信息; 定时取样生理信号; 更新日志; 产生病情报告。


存储:

患者安全范围:医生规定的病人的生理信号安全范围; 患者日志:定时记录病人情况以形成患者日志。

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

白盒测试技术(基本路径测试法)
输入数据 预期结果
控制流图的组成: 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

实验04.使用基本路径测试法求解“自动售货机”问题

实验04.使用基本路径测试法求解“自动售货机”问题

实验04:使用基本路径测试法求解“自动售货机”问题实验学时:2实验类型:设计实验要求:必修一、实验目的●理解并掌握基本路径覆盖测试法,能够实际运用;●使用Eclipse+JUnit+EclEmma进行单元测试。

二、实验要求●开发环境:Eclipse v3.7及以上版本;JUnit v4.10及以上版本;文本编辑软件。

●硬件要求:CPU PIV 以上,256M 内存,1G 硬盘空间。

●系统要求:Windows98/Me/XP/NT/2000,IE 5 以上。

三、实验内容1.下载并安装Eclipse+JUnit+EclEmma实验环境;2.通读自动售货机程序,并在Eclipse环境下运行该程序;3.使用基本路径测试法设计测试用例;⏹绘制程序控制流图;⏹计算环路复杂度;⏹确定基本路径;⏹设计测试用例。

4.完整填写以下表格:5.编写JUnit测试用例,并运行程序,保证所有测试用例通过测试;6.使用EclEmma检测测试用例覆盖率,保证覆盖率达到100%。

四、实验结果检查与评定●提交时间:2013年4月24日之前/2013年5月1日22:00之前●提交地址:学习委员邮箱●文档命名方式:12软件专升本X班_0907052XXX_张三_实验04.doc实验报告实验序号:实验项目名称:附录问题描述自动售货机程序:●若投入5角钱或1元钱的硬币,按下“橙汁”或“啤酒”按钮,则相应的饮料就送出来;●若售货机没有零钱找,则显示“零钱找完”的红灯亮,这是再投入一元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;●若有零钱找,则显示“零钱找完”的红灯灭,在送出饮料的同时退还5角硬币。

程序流程图实验源代码(有缺陷的源代码)public class Sale Mac hine {priv ate in t c ount OfB eer, c o untO fOr ang eJu ice, co unt OfF i veCe nts, c oun tOfO neD oll ar;priv ate St rin g[] typ eOf Goo d s = {"B eer", "Ora nge Jui ce"};priv ate St rin g re sul tOf Dea l;publ ic Sal eMa chin e(){init ial();}publ ic voi d i niti al(){coun tOfBee r = 6;coun tOfOra nge Juic e = 6;coun tOfFiv eCe nts= 6;coun tOfOne Dol lar = 6;}publ ic Sal eMa chin e(i nt fiv e Cent s, int on eDol lar, i nt n umOf Bee r, int num OfO ran ge) //便于测试的初始化函数{coun tOfFiv eCe nts= f ive Cen t s;coun tOfOne Dol lar = o neD oll a r;countOf Bee r = num OfB eer;coun tOfOra nge Juic e = nu mOf O rang e;}publ ic Str ing cur ren tSt ate(){Stri ng sta te = "C urr ent St a te\n" +"Be er: "+ c oun tOf Bee r +"\n"+"Or ang e J uic e: " +co unt Of Oran geJ uic e +"\n" +"5 Cen ts: "+ c oun tOf Fiv eC ents + "\n" +"1 Dol lar: " + cou ntO fOn eD olla r;retu rn sta te;}publ ic Str ing ope rat ion(St r ing typ e, Str ing mon ey)//ty pe是用户选择的产品,m one y是用户投币种类{if(m oney.e qua lsIg nor eCa se("5C")) //如果用户投入5角钱{if(t ype.eq ual s(ty peO fGo ods[0]))//如果用户选择啤酒{if(c oun tOf Bee r>0)//如果还有啤酒{coun tOf Bee r--;coun tOf Fiv eCe nts++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"Ty pe: Be er; Mo ney: 5 Ce nt s; C han ge: 0\n\n" + currentSta te();retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "B eer Sh ort a ge";retu rn res ult OfDe al;}}else if (t ype.equ als(ty peO f Good s[1]))//用户选择橙汁{if(c oun tOf Ora ngeJ uic e > 0){coun tOf Ora nge Juic e--;coun tOf Fiv eCe nts++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"Ty pe: Or ang eJu ice; M one y: 5 C ent s; Cha nge: 0\n\n" + currentSta te();retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}else if(mo ney.equ als Ign ore C ase("1D"))//如果用户投入一元钱{if(c oun tOf Fiv eCen ts>0) //如果用户投入一元钱{if(c oun tOf Fiv eCen ts> 0) //如果用户有零钱{if(t ype.eq ual s(ty peO fGo ods[0])&&co unt OfB eer>0)//如果用户选择啤酒而且还有啤酒{coun tOf Bee r--;coun tOf Fiv eCe nts--;coun tOf One Dol lar++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"yp e: Bee r; M one y: 1 Do lla r; Ch ang e: 5 Ce nts\n\n"+ currentSta te();retu rn res ult OfDe al;}else if (t ype.equ als(ty peO f Good s[1]))//如果用户选择橙汁而且还有橙汁{coun tOf Ora nge Juic e --;coun tOf Fiv eCe nts--;coun tOf One Dol lar ++;resu ltO fDe al= "I npu t I nfo r mati on: \n" +"Ty pe: Or ang eJu ice; M one y: 1 D oll ar; Ch ange: 5 Cents\n\n" + curr ent Sta te();retu rn res ult OfDe al;}else{if(t ype.eq ual s(ty peO fGo ods[0])&&co unt OfO rang eJu ice<=0){resu ltO fDe al= "F ail ue Inf o rmat ion \n" +"Be er Sho rta g e";retu rn res ult OfDe al;}else if(ty pe.equa ls(typ eOf G oods[1])&&cou ntOf Ora nge Jui c e<=0){resu ltO fDe al= "Fai lur e Info r mati on \n"+"O ran geJ uice S hor tage";retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "C han ge Sho r tage";retu rn res ult OfDe al;}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "M one y E rro r";retu rn res ult OfDe al;}}resu ltOfDe al = "F ail ure In f orma tio n \n"+ "M one y E rro r";retu rn res ult OfDe al;}}测试用例示例代码:import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class SaleMachineTest {SaleMachine saleMachine = new SaleMachine();@Beforepublic void setUp() throws Exception {}@Testpublic void testOperation1() {String expectedResult = "Input Information \n" +"Type: OrangeJuice; Money: 5 Cents; Change: 0\n\n" +"Current State\n" +"Beer: 6\n" +"Orange Juice: 5\n" +"5 Cents: 7\n" +"1 Dollar: 6";assertEquals(expectedResult,saleMachine.operation("OrangeJuice", "5C"));}}。

习题解答1_v2.0

习题解答1_v2.0

习题解答第三章黑盒测试及其用例1、NextDate函数(P28)请使用等价类划分法为NextDate函数列出输入域等价类表,并设计相应的测试用例。

解答:NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一天的日期。

要求输入变量month、day和year均为整数值,并且满足下列条件:条件1 1≤month ≤12条件2 1≤day ≤31条件3 1912≤year ≤2050分析程序规格说明中给出和隐含的对输入条件的要求。

列出等价类表*年份:闰年、非闰年(1912≤year ≤2050)*月份:1-12月*天数:1、3、5、7、8、10、12(31天),4、6、9、11(30天),2(28或29)等价类表2、找零钱最佳组合(P47)假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。

假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。

请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。

解答:根据等价类划分法和边界值分析法的基本定义,得到下列基本认识:Step1.输入:商品价格R和顾客付款P有以下情况:R > 100 0 < R < = 100 R <= 0 P > 100 R<= P <= 100 P < RStep2.输出:N50 = 1 N50 = 0 4 > N10 >= 1 N10 = 0 N5 = 1 N5 = 0 4 > N1 >= 1 N1 = 0 Step3.分析规格中每一决策点之情形,以RR1, RR2, RR3 表示计算要找50, 10, 5 元货币数时之剩余金额。

R > 100R <= 0 P > 100 P < R RR1 >= 50 RR2 >= 10 RR3 >= 5Step4. 由上述之输入/ 输出条件组合出可能的情形。

基本路径法

基本路径法

控制流图
McCabe的导出强连接图
五个线性独立路径
P1:A,B,C,G

P2:A,B,C,B,C,G P3:A,B,E,F,G
P4:A,D,E,F,G
第5页/共23P页5:A,D,F,G
圈数计算
•令 • e是G中的边数。 • n是G中的节点数。 • p是G中的连通分量个数。
• 不增加从汇节点到源节点的边 • V(G)=e-n+2p
}
第16页/共23页
10.2.1 白盒测试技术
Step1 根据程序的逻辑结构画出流程图
11
1
2 模块流程图
3
6
4
7
8
5
9
10
第17页/共23页
Step2 根据流程图画出流图
10.2.1 白盒测试技术
流 图 刻 画 了 程 序 的 控 制 结 构 , 但 不 涉 及 程 序 的 过 程 性 细节
• 节点:过程块,结合点,判定点
2. {
3. if ( temp == ">=")
4.
m_oper.Set CurSe l(0);
5. else if (temp == ">")
6.
m_oper.Set CurSe l(1);
7. else if ( temp == "==")
8.
m_oper.Set CurSe l(2);
第10页/共23页
10.2.1 白盒测试技术
第21页/共23页
Step4 对每条基本路径设计测试用例
10.2.1 白盒测试技术
对于路径1 – 11
✓ nPosX 取-1, nPosY取任意值

4(2)第4章 白盒测试用例2-基本路径法

4(2)第4章 白盒测试用例2-基本路径法

TC3
TC4
练习题
Logo
• 根据左图给出的程序流程 图,完成以下要求:
(1)画出相应的控制流 图。
(2)计算环形复杂度。
(3)给出相应的图矩阵。 (4)找出程序的独立 路径集合。
f b

3

4

5
• 在控制流图中只 有两种图形符号, 它们是: 1. 节点:以标有编 号的圆圈表示。 2. 控制流线或弧: 以箭头表示。
1. 程序的控制流图
Logo
节点
1、标有编号的圆圈 2、程序流程图中矩形框所表示的处 理 3、菱形表示的两个甚至多个出口判 断 4、多条流线相交的汇合点
1. 程序的控制流图
设计测试用例
Logo
• 根据上一步得出的独立路径,涉及测试用例, 如下: 输入数据 预期输出 TC1 TC2 irecordnum=0 itype=0 irecordnum=1 itype=0 irecordnum=1 itype=1 irecordnum=1 itype=2 x=0 y=0 x=0 y=0 x=10 y=0 x=0 y=20
Logo
X=X/A
2
3
( a ) 流程图
1
A>1
B=0
2
X=X/A
4 (d ) 流程图 c 对应的流图
3
( c ) 详细流程图
1. 程序的控制流图
Logo
1. 程序的控制流图
Logo
2. 程序环路复杂性
Logo
• 环路复杂性即McCabe复杂性度量,在 进行程序的基本路径测试时,从程序 的环路复杂性可导出程序基本路径集 合中的独立路径条数。
• 程序的环路复杂性给出了程序基本 路径集中的独立路径条数,这是确 保程序中每个可执行语句至少执行 一次所必需的测试用例数目的上界。

第08课--白盒测试(2)—路径分析测试(基本路径测试)

第08课--白盒测试(2)—路径分析测试(基本路径测试)



上述测试用例覆盖了4个条件产生的8种情况。

3. V(G) = 边的数目-节点的数目 + 2
环复杂度
环复杂度
闭合区域的数目 = 5 二值判定节点个数 + 1 =4+1=5 边的数目-节点的数目 + 2 = 16-13+2=5
基本路径
实用的定义 一条路径是基本路径如果: 1. 是一条从起始节点到终止节点的路径. 2. 至少包含一条其它基本路径没有包含的边. (至 少引入一个新处理语句或一个新判断的程序通 路.) 注意:对于循环而言,基本路径应包含不执行循 环和执行一次循环体。
SWPU
案例分析3
——已知程序代码,根据基本路径测试法, 导出测试用例
SWPU
PROCEDURE averagy; * This procedure computes the averagy of 100 or fewer numbers that liebounding values; it also computes the total input and the total valid. INTERFACE RETURNS averagy, total.input, total.valid; INTERFACE ACCEPTS value, minimum, maximum; TYPE value[1:100] IS SCALAR ARRAY; TYPE averagy, total.input, total.valid, minimum, maximum, sum IS SCALAR; TYPE i IS INTEGER;
使用基本路径设计测试用例方法推导三角形问题的测试用例

基本路径测试方法

基本路径测试方法

2)路径2(1-2-9-11-12)的测试用例: score[ 1 ]= – 1 ; 期望的结果:average = – 1 ,其他量保持初值。
3)路径3(1-2-3-9-10-12)的测试用例: 输入多于50个有效分数,即试图处理51个有效分数, 期望结果:n1=50,算出前50个分数的总分和平均分。 因为该路径要求n2>=50,无法独立测试,所以必须作为 路径4或5或6的一部分来测试。
圆圈代表结点,代表 一条或多条语句
箭头线称为边,代表 控制流
由边和结点围成的面积称为区域,当 计算区域数时应该包括图外部未被围 起的部分,如图有R1-R6,共6块区域。
1.程序流程图中的一个顺序的处 理框序列和一个菱形判定框,可 以映射成流图中的一个结点。 2.在选择或多分支结构中,分支 的汇聚处应有一个汇聚结点。 3.如果判断中的条件表达式是由 一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达 式,则需要改为一系列只有单条 件的嵌套的判断。 4.流图中一条边必须终止于一个 结点,即使这个结点不代表任何 语句。(实际相当于一个空语句)
程序流程图
流图

为了突出表示程序的控制流,人 们通常使用流图(也称为程序 图)。所谓流图实际上是“退化 了的”程序流程图,它仅仅描绘 程序的控制流程,完全不表现对 数据的具体操作以及分支或循环 的具体条件。 用任何方法表示的过程设计结果 都可以翻译成流图。
下面这一程序流程图描述了最多输入50个学生成绩 存在Score中(以–1作为输入结束标志),计算其中有 效的学生分数(0-100分)的个数、总分数和平均值。
流图中线性无关的区域等于环形复杂度 R1-R6共6个区域,环形复杂度为6

白盒测试技术3-基本路径法

白盒测试技术3-基本路径法
void Do (int X,int A,int B) { 1-2 if ( (A>1)&&(B=0) ) 3 X = X/A; 4-5 if ( (A=2)||(X>1) ) 6 X = X+1; 7}
将复合条件分解为单个 条件: 1:A>1 2:B=0 3:X=X/A 4:A=2 5:X>1 6:X=X+1 7:}
入口
if ( (A>1)&&(B=0) ) X = X/A; if ( (A=2)||(X>1) ) X = X+1;
}
a
(A>1) &&
T x=x/A c
(B==0)
F
(A==2)
T
b
||
x = x +1 e
(x>1)
F
d
返回
基本路径测试案例2(续)
使用基本路径测试方法,为以下 程序段设计测试用例。
路径覆盖遇到的问题
• 这个流程图,其中包括了一 • 个执行达20次的循环。那么 • 它所包含的不同执行路径数 • 高达520条,若要对它进行穷 • 举测试,覆盖所有的路径。 • 假使测试程序对每一条路径 • 进行测试需要1毫秒,同样 • 假定一天工作24小时,一年 • 工作365 天, 那么要想把如 • 图所示的小程序的所有路径 • 测试完,则需要3170年。
程序中的控制流。
常见结构的流程图与控制流图
控制流图实例
1
2
3
6
7
8
9
10 11
节点 边
4,5
区域
其中,包含条件的节点被称 为判定节点(也叫谓词节点 ),由判定节点发出的边必 须终止于某一个节点,由边 和节点所限定的范围被称为 区域。

软件测试习题参考答案

软件测试习题参考答案

本书习题参考答案第1章软件测试概述1. 软件具有几个特点,请详细说明。

软件具有8个特点:(1) 软件是一种逻辑实体,而不是具体的物理实体。

因而它具有抽象性。

(2) 软件的生产与硬件不同,它没有明显的制造过程。

对软件的质量控制,必须着重在软件开发方面下功夫。

(3) 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。

然而它存在退化问题,必须要对其进行多次的修改与维护。

(4) 软件的开发和运行常常受到计算机系统的制约,对计算机系统有着不同程度的依赖性。

为了解除这种依赖性,在软件开发中提出了软件移植的问题。

(5) 软件的开发至今尚未完全摆脱人工艺的开发方式。

(6) 软件本身是复杂的。

软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。

(7) 软件成本相当昂贵。

软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本是比较高的。

(8) 相当多的软件工作涉及到社会因素。

许多软件的开发和运行涉及机构、体制及管理方式等问题,它直接影响到项目的成败。

2.软件的分类方法都有哪些?软件的分类方法有如下 4种:(1)按软件的功能分类(系统软件,支撑软件,应用软件)(2)按软件服务对象的范围分类(项目软件,市场软件)(3)按开发软件所需要的人力、时间以及完成的源程序行数分类。

(大型,小型,中型,微型)(4)按软件工作方式分类按软件的工作方式分为:实时处理软件、分时软件、交互式软件、批处理软件。

3. 软件测试的概念软件测试是软件工程中的一个环节,是开发项目整体的一部分。

软件测试是有计划有组织的,是保证软件质量的一种手段,它是软件工程中一个非常重要的环节。

因此,可以认为它是伴随软件工程的诞生而诞生的,伴随着软件复杂程度的增加、规模的增大,软件测试作为一种能够保证软件质量的有效手段,越来越受到人们的重视,软件测试最终目的是使产品达到完美。

4. 软件测试的方法有哪些?软件的测试方法有3种,即用试题测试、用新旧两个系统作平行处理测试和软件测试自动化工具测试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档