软件测试三角形问题(覆盖测试)分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
真
真
真
等边三角形
5
5
5
6
T1,T2,T3,-T4,-T5
真
假
(2)如果三条边相等,则程序输出为“等边三角形”;
(3)如果恰好有两条边相等,则程序输出为等腰三角形;
(4)如果三条边都不相等,则程序输出为普通三角形。
3.根据以上分析及流程图得出测试用例,如表2。
表2判定覆盖测试用例
测试
用例
a
b
c
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
实验
分析
一.实验步骤
1.打开c与c++程序系统平台,编写有关三角形问题的相关程序。
2.对程序进行语句覆盖测试。
3.对程序进行判定覆盖测试。
4.对程序进行分支条件测试。
5.对程序进行分支条件组合测试。
6.进行用例设计。选择分支覆盖测试的方法进行测试。
二.程序分析
1.程序代码
1)#include<stdio.h>
成绩
辽宁工程技术大学上机实验报告
课程名称
软件测试与评估
实验题目
基于覆盖测试技术
院系
软件学院
专业
软件工程
班级
软件13-9班
姓名
王朝晖
学号
1320010920
实验日期
2016.5.13
实验
目的
1.了解软件覆盖测试的相关知识。
2.能根据三角形案例分析问题。
3.掌握软件覆盖测试的基本方法。
4.针对案例,能够运用覆盖测试技术中的具体方法进行测试用例的设计。
20)return main();
21)}
22)}
2.程序流程图
根据代码绘制程序流程图,各边编号为a,b,c,d,e,f。如图1。
图1程序流程图
3.分析
程序主要是根据三个整数a,b,c,构成一个三角形判定三角形的类型为等边三角形、等腰三角形、普通三角形还是构成不了三角形。
要求输入的三个整数都是正数,三边都是大于等于1,小于等于100,且a+b>c,a+c>b,b+c>a,才能进行以后的判断。否则输出“ERROR!”,返回主程序。重新输入三个整数a,b,c。然后判断三角形的类型。如果a=b且a=c,输出“该三角形是等边三角形!”。如果a=b,b不等于c,或b=c,b不等于a,或a=c,a不等于b,输出“该三角形是等腰三角形!”。如果不是以上这两种情况,输出“该三角形是普通三角形!”。
实验
准备
1.计算机一台,有c与c++程序设计学习与实验系统的软件。
2.了解至少一门程序设计语言,并能熟练应用。能够编写并运行有关实验的相关代码。
3.了解覆盖测试的基本方法。主要是判定覆盖。
4.了解测试用例的方法,并进行适当的测试用例。
实验
进度
本次共有1个练习,完成1个。
实验
内容
1.根据三角形问题进行编程,分为等腰三角形,等边三角形,普通三角形以及不能构成三角形。
2)main()
3){
4)int A,B,C;
5)printf("请输入三角形的三条边:");
6)scanf("%d %d %d",&A,&B,&C);
7)if((A>0&&B>0&&C>0)&&((A+B)>C&&(A+C)>B&&(B+C)>A))
8){
9)if(A==B&&A==C)
10)printf("该三角形是等边三角形!\n");
11)else
12)if((A==B&&B!=C)||(B==C&&B!=A)||(A==C&&A!=B))
13)printf("该三角形是等腰三角形!\n");
14)else
15)printf("该三角形是普通三角形!\n");
16)}
17)else
18){
19)printf("ERROR!\n");
2.对程序进行语句覆盖测试。
3.对程序进行判定覆盖测试。绘制出程序流程图,分支覆盖要求测试每个判定的结果。使得程序中的每个判定至少都获得一次真值和假值。即要使程序中的每个取真分支和取假分支至少均经历一次。
4.对程序进行分支条件测试
5.对程序进行分支条件组合测试
6.选用基于覆盖测试的方法对三角形问题设计测试用例。
根据流程图得出测试用例,如表3。
表3分支条件测试用例
测试
用例
a
b
c
覆盖条件
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
预期
结果
1
1
2
1
T1,T2,-T3
假
-
-
ERROR
2
2
1
1
T1,-T2,T3
假
-
-
ERROR
3
1
1
2
-T1,T2,T3
假
-
-
ERROR
4
5
5
5
T1,T2,T3,T4,T5,T6
表4分支条件组合测试分析
测试
用例
a
b
c
覆盖条件
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
预期
结果
1
1
2
1
T1,T2,-T3
假
-
-
ERROR
2
2
1
1
T1,-T2,T3
假
-
-
ERROR
3
1
1
2
-T1,T2,T3
假
-
-
ERROR
4
6
6
6
T1,T2,T3,T4,T5,T6
预期
结果
1
3
4
7
假
-
-
ERROR
2
5
5
5
真
真
真
等边三角形
3
5
5
6
真
假
-
等腰三角形
4
5
6
7
真
真
假
普通三角形
五.分支条件测试分析
设计足够的测试用例,运行被测程序,使程序中的每个判定的每个条件的所有可能值至少执行一次,并且每个可能的判定结果也至少执行一次,即要求各个判定的所有可能的条件取值组合至少执行一次。
3.语句覆盖测试分析
运行若干测试用例,使被测试的程序的每一条可执行语句至少执行一次。根据控制流图得出测试用例。如表1。
表1语句覆盖测试用例
测试用例
a
b
c
执行路径
预期结果
1
5
6
7
acf普通三角形2556ad
等腰三角形
3
5
5
5
ace
等边三角形
4
3
4
7
b
ERROR
四.判定测试覆盖分析
执行足够的测试用例,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都经历一次。
真
真
真
等边三角形
5
5
5
6
T1,T2,T3,-T4,-T5
真
假
-
等腰三角形
6
5
6
7
T1,T2,T3,T4,T5,-T6
真
真
假
普通三角形
六.分支条件组合测试分析
设计的测试用例,需要将原子条件的所有true-false组合至少执行一遍。并且满足分支条件组合测试包括语句覆盖和分支覆盖。
根据流程图得出测试用例,如表4。
1.条件
条件1 1=a=100
条件2 1=b=100
条件3 1=c=100
条件4 a<b+ c
条件5 b<a+ c
条件6 c<a+ b
2.分析
如果输入值a、b、c不满足条件1、条件2和条件3,输出ERROR。
如果输入值a、b、c满足条件1、条件2和条件3:
(1)如果不满足条件4、条件5和条件6中的一个,则程序输出为ERROR;
真
真
等边三角形
5
5
5
6
T1,T2,T3,-T4,-T5
真
假
(2)如果三条边相等,则程序输出为“等边三角形”;
(3)如果恰好有两条边相等,则程序输出为等腰三角形;
(4)如果三条边都不相等,则程序输出为普通三角形。
3.根据以上分析及流程图得出测试用例,如表2。
表2判定覆盖测试用例
测试
用例
a
b
c
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
实验
分析
一.实验步骤
1.打开c与c++程序系统平台,编写有关三角形问题的相关程序。
2.对程序进行语句覆盖测试。
3.对程序进行判定覆盖测试。
4.对程序进行分支条件测试。
5.对程序进行分支条件组合测试。
6.进行用例设计。选择分支覆盖测试的方法进行测试。
二.程序分析
1.程序代码
1)#include<stdio.h>
成绩
辽宁工程技术大学上机实验报告
课程名称
软件测试与评估
实验题目
基于覆盖测试技术
院系
软件学院
专业
软件工程
班级
软件13-9班
姓名
王朝晖
学号
1320010920
实验日期
2016.5.13
实验
目的
1.了解软件覆盖测试的相关知识。
2.能根据三角形案例分析问题。
3.掌握软件覆盖测试的基本方法。
4.针对案例,能够运用覆盖测试技术中的具体方法进行测试用例的设计。
20)return main();
21)}
22)}
2.程序流程图
根据代码绘制程序流程图,各边编号为a,b,c,d,e,f。如图1。
图1程序流程图
3.分析
程序主要是根据三个整数a,b,c,构成一个三角形判定三角形的类型为等边三角形、等腰三角形、普通三角形还是构成不了三角形。
要求输入的三个整数都是正数,三边都是大于等于1,小于等于100,且a+b>c,a+c>b,b+c>a,才能进行以后的判断。否则输出“ERROR!”,返回主程序。重新输入三个整数a,b,c。然后判断三角形的类型。如果a=b且a=c,输出“该三角形是等边三角形!”。如果a=b,b不等于c,或b=c,b不等于a,或a=c,a不等于b,输出“该三角形是等腰三角形!”。如果不是以上这两种情况,输出“该三角形是普通三角形!”。
实验
准备
1.计算机一台,有c与c++程序设计学习与实验系统的软件。
2.了解至少一门程序设计语言,并能熟练应用。能够编写并运行有关实验的相关代码。
3.了解覆盖测试的基本方法。主要是判定覆盖。
4.了解测试用例的方法,并进行适当的测试用例。
实验
进度
本次共有1个练习,完成1个。
实验
内容
1.根据三角形问题进行编程,分为等腰三角形,等边三角形,普通三角形以及不能构成三角形。
2)main()
3){
4)int A,B,C;
5)printf("请输入三角形的三条边:");
6)scanf("%d %d %d",&A,&B,&C);
7)if((A>0&&B>0&&C>0)&&((A+B)>C&&(A+C)>B&&(B+C)>A))
8){
9)if(A==B&&A==C)
10)printf("该三角形是等边三角形!\n");
11)else
12)if((A==B&&B!=C)||(B==C&&B!=A)||(A==C&&A!=B))
13)printf("该三角形是等腰三角形!\n");
14)else
15)printf("该三角形是普通三角形!\n");
16)}
17)else
18){
19)printf("ERROR!\n");
2.对程序进行语句覆盖测试。
3.对程序进行判定覆盖测试。绘制出程序流程图,分支覆盖要求测试每个判定的结果。使得程序中的每个判定至少都获得一次真值和假值。即要使程序中的每个取真分支和取假分支至少均经历一次。
4.对程序进行分支条件测试
5.对程序进行分支条件组合测试
6.选用基于覆盖测试的方法对三角形问题设计测试用例。
根据流程图得出测试用例,如表3。
表3分支条件测试用例
测试
用例
a
b
c
覆盖条件
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
预期
结果
1
1
2
1
T1,T2,-T3
假
-
-
ERROR
2
2
1
1
T1,-T2,T3
假
-
-
ERROR
3
1
1
2
-T1,T2,T3
假
-
-
ERROR
4
5
5
5
T1,T2,T3,T4,T5,T6
表4分支条件组合测试分析
测试
用例
a
b
c
覆盖条件
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
预期
结果
1
1
2
1
T1,T2,-T3
假
-
-
ERROR
2
2
1
1
T1,-T2,T3
假
-
-
ERROR
3
1
1
2
-T1,T2,T3
假
-
-
ERROR
4
6
6
6
T1,T2,T3,T4,T5,T6
预期
结果
1
3
4
7
假
-
-
ERROR
2
5
5
5
真
真
真
等边三角形
3
5
5
6
真
假
-
等腰三角形
4
5
6
7
真
真
假
普通三角形
五.分支条件测试分析
设计足够的测试用例,运行被测程序,使程序中的每个判定的每个条件的所有可能值至少执行一次,并且每个可能的判定结果也至少执行一次,即要求各个判定的所有可能的条件取值组合至少执行一次。
3.语句覆盖测试分析
运行若干测试用例,使被测试的程序的每一条可执行语句至少执行一次。根据控制流图得出测试用例。如表1。
表1语句覆盖测试用例
测试用例
a
b
c
执行路径
预期结果
1
5
6
7
acf普通三角形2556ad
等腰三角形
3
5
5
5
ace
等边三角形
4
3
4
7
b
ERROR
四.判定测试覆盖分析
执行足够的测试用例,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都经历一次。
真
真
真
等边三角形
5
5
5
6
T1,T2,T3,-T4,-T5
真
假
-
等腰三角形
6
5
6
7
T1,T2,T3,T4,T5,-T6
真
真
假
普通三角形
六.分支条件组合测试分析
设计的测试用例,需要将原子条件的所有true-false组合至少执行一遍。并且满足分支条件组合测试包括语句覆盖和分支覆盖。
根据流程图得出测试用例,如表4。
1.条件
条件1 1=a=100
条件2 1=b=100
条件3 1=c=100
条件4 a<b+ c
条件5 b<a+ c
条件6 c<a+ b
2.分析
如果输入值a、b、c不满足条件1、条件2和条件3,输出ERROR。
如果输入值a、b、c满足条件1、条件2和条件3:
(1)如果不满足条件4、条件5和条件6中的一个,则程序输出为ERROR;