【三角形问题分析】
输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形及等
边三角形时,分别说明。
【单元分解图】
【程序流程图】
【代码编写】
#include
using namespace std;
void denyao(int a,int b,int c){
if(a==b||b==c||a==c) cout<<"这是等腰三角形"<z=b+c;
if(x<=c||y<=b||z<=a) cout<<"这不是三角形"<>a;
cin>>b;
cin>>c;
shu(a,b,c);
}
【白盒测试计划】
判定覆盖测试用例
测试用例
1
0
4
1
1
2
2
2
3
2
3
4
2
3
5
判定分支
含有负数或零
不含负数或零
不构成三角形
构成三角形
构成等边三角形
不构成等边三角形
构成等腰三角形
不构成等腰三角形
预期输出
输出“输入的数中含有负数或零”
输出“这三个数不能构成三角形”
输出“这是等边三角形”
输出“这是等腰三角形”
输出“这是一般三角形”
条件覆盖测试用例
在本次试验中,输入的 a,b,c 三个数可互相替换,并无本质区别,故在条件覆盖测试中
将其视为同一个数
测试用例
-1
1
2
2
3
5
6
6
6
条件分支
预期输出
a<=0
a>0
a+b<=c
a+b>c
a=b=c
输出“输入的数中含有负数或零”
输出“这三个数不能构成三角形”
输出“这是等边三角形”
4
7
6
8
6
9
a≠b
b=c
a≠b≠c
输出“这是等腰三角形”
输出“这是一般三角形”
路径覆盖
路径图
环形复杂度为 5
基本路径集如下:
路径 1:1——2——7
路径 2:1——2——3——8
路径 3:1——2——3——4——9
路径 4:1——2——3——4——5——10
路径 5:1——2——3——4——5——6
测试用例
测试用例
路径分支
预期输出
-3
1
2
1——2——7
输出“输入的数中含有负数或零”
1
7
9
1——2——3——8
输出“这三个数不能构成三角形”
8
7
4
8
8
8
8
8
9
1——2——3——4——9
输出“这是等边三角形”
1——2——3——4——5——10 输出“这是等腰三角形”
1——2——3——4——5——6
输出“这是一般三角形”
【测试结果】
测试用例
实际输出
0
1
2
2
3
1
2
2
3
4
1
4
2
3
5
-1
2
3
1
6
4
7
2
6
6
8
5
6
6
9
-3
1
2
1
8
7
4
7
8
8
8
9
8
8
9
输出“输入的数中含有负数或零”
输出“这三个数不能构成三角形”
输出“这是等边三角形”
输出“这是等腰三角形”
输出“这是一般三角形”
输出“输入的数中含有负数或零”
输出“这三个数不能构成三角形”
输出“这是等边三角形”
输出“这是等腰三角形”
输出“这是一般三角形”
输出“输入的数中含有负数或零”
输出“这三个数不能构成三角形”
输出“这是等边三角形”
输出“这是等腰三角形”
输出“这是一般三角形”
典型测试截图: