白盒测试判断三角形的程序流程图
时间: 2024-02-01 11:09:04 浏览: 260
```flow
st=>start: 开始
op1=>operation: 输入三角形的三边边长a, b, c
op2=>operation: 判断是否为三角形
cond1=>condition: 是或否?
op3=>operation: 判断是否为等边三角形
cond2=>condition: 是或否?
op4=>operation: 判断是否为等腰三角形
cond3=>condition: 是或否?
op5=>operation: 判断为一般三角形
e=>end: 结束
st->op1->op2
op2(yes)->cond1
cond1(yes)->op3
cond1(no)->cond2
op3(yes)->op4
op3(no)->cond3
op4(yes)->op5
op4(no)->op5
cond2(yes)->op4
cond2(no)->op5
cond3(yes)->op5
cond3(no)->op5
op5->e
```
--相关问题--:
1. 什么是白盒测试?
2. 如何判断一个三角形是等边三
相关问题
三角形白盒测试程序流程图
以下是一个基本的三角形白盒测试程序的流程图,它展示了输入三角形三边长的过程,以及程序如何根据这些输入来判断三角形类型的过程:
![三角形白盒测试程序流程图](https://i.imgur.com/A9GJJJ4.png)
该程序首先接收三条边长作为输入,然后进行一系列的检查,以确定这些边长是否可以构成一个三角形。如果这些边长不能构成一个三角形,程序将返回 "Not a valid triangle"。否则,程序将继续检查三角形的类型,然后返回相应的类型。
值得注意的是,该程序使用了一些边界值来检查三角形的类型,例如等边三角形的三个边长都相等,等腰三角形的两个边长相等,不等边三角形的三个边长都不相等。这些边界值是根据三角形的性质来确定的,因此在编写测试用例时需要注意这些值。
编写一个判断三角形形状的程序:(1)对编写的三角形程序,画出其程序流程图;分析程序流程图,确定程序分支;(2)设计测试用例进行白盒测试,使其分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖以及路径覆盖。(3)使用基本路径法设计测试用例
以下是判断三角形形状的程序:
```
#include <stdio.h>
int main()
{
int a, b, c;
printf("请输入三角形的三边长:");
scanf("%d %d %d", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a)
{
if (a == b && b == c)
{
printf("这是一个等边三角形\n");
}
else if (a == b || b == c || a == c)
{
printf("这是一个等腰三角形\n");
}
else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a)
{
printf("这是一个直角三角形\n");
}
else
{
printf("这是一个普通三角形\n");
}
}
else
{
printf("这不是一个三角形\n");
}
return 0;
}
```
以下是程序流程图:
![判断三角形形状程序流程图](https://i.imgur.com/Nh4shMm.png)
根据程序流程图,可以确定以下程序分支:
1. 输入的三边长能否构成三角形
2. 三角形的形状
下面进行测试用例的设计:
1. 语句覆盖
输入:1 1 1
期望输出:这是一个等边三角形
输入:3 4 5
期望输出:这是一个直角三角形
输入:6 8 10
期望输出:这是一个直角三角形
2. 判定覆盖
输入:1 1 1
期望输出:这是一个等边三角形
输入:3 4 5
期望输出:这是一个直角三角形
输入:6 8 10
期望输出:这是一个直角三角形
输入:2 2 5
期望输出:这不是一个三角形
3. 条件覆盖
输入:1 1 1
期望输出:这是一个等边三角形
输入:3 4 5
期望输出:这是一个直角三角形
输入:6 8 10
期望输出:这是一个直角三角形
输入:2 2 5
期望输出:这不是一个三角形
输入:1 2 3
期望输出:这不是一个三角形
4. 判定/条件覆盖
输入:1 1 1
期望输出:这是一个等边三角形
输入:3 4 5
期望输出:这是一个直角三角形
输入:6 8 10
期望输出:这是一个直角三角形
输入:2 2 5
期望输出:这不是一个三角形
输入:1 2 3
期望输出:这不是一个三角形
5. 组合覆盖
输入:1 1 1
期望输出:这是一个等边三角形
输入:3 4 5
期望输出:这是一个直角三角形
输入:6 8 10
期望输出:这是一个直角三角形
输入:2 2 5
期望输出:这不是一个三角形
输入:1 2 3
期望输出:这不是一个三角形
6. 路径覆盖
根据程序流程图,可以得到以下基本路径:
1 → 2 → 3 → 4 → 5 → 6 → 9
1 → 2 → 3 → 4 → 5 → 7 → 9
1 → 2 → 3 → 4 → 8 → 9
1 → 2 → 3 → 4 → 10
1 → 2 → 11
其中,第一个基本路径覆盖了所有语句,第二个基本路径覆盖了所有判定,第三个基本路径覆盖了所有条件,第四个基本路径覆盖了所有判定/条件,第五个基本路径覆盖了所有组合,第六个基本路径覆盖了所有路径。
因此,设计以下测试用例:
输入:1 1 1
期望输出:这是一个等边三角形
输入:3 4 5
期望输出:这是一个直角三角形
输入:6 8 10
期望输出:这是一个直角三角形
输入:2 2 5
期望输出:这不是一个三角形
输入:1 2 3
期望输出:这不是一个三角形
阅读全文