白盒测试三角形测试用例
时间: 2023-10-27 07:42:08 浏览: 289
白盒测试是一种测试策略,其中测试人员了解被测试系统的内部结构和实现。在三角形测试用例中,我们测试一个程序是否正确地识别三角形的类型。以下是一些可能的三角形测试用例:
1. 边长为正数的等边三角形,预期输出结果为“等边三角形”。
2. 边长为正数的等腰三角形,预期输出结果为“等腰三角形”。
3. 边长为正数的一般三角形,预期输出结果为“一般三角形”。
4. 边长为0或负数的三角形,预期输出结果为“不是三角形”。
5. 边长为正数但无法构成三角形的三条边,预期输出结果为“不是三角形”。
这些测试用例确保程序正确地识别三角形类型,并在输入不正确时给出正确的错误消息。
相关问题
Java白盒测试三角形函数_根据下面三角形程序,结合白盒测试用例设计技术,在Junit工具中编写对应的单元测试脚本。...
好的,我们可以先来看一下这个三角形函数的实现:
```java
public class Triangle {
public static String classify(int a, int b, int c) {
if (a <= 0 || b <= 0 || c <= 0) {
return "NotATriangle";
}
if (a + b <= c || a + c <= b || b + c <= a) {
return "NotATriangle";
}
if (a == b && b == c) {
return "Equilateral";
}
if (a == b || b == c || a == c) {
return "Isosceles";
}
return "Scalene";
}
}
```
这个函数的作用是判断一个三角形的类型,返回值有四种:不是三角形(NotATriangle)、等边三角形(Equilateral)、等腰三角形(Isosceles)和普通三角形(Scalene)。接下来我们就可以根据这个函数实现相应的测试用例了。
首先,我们需要考虑一下哪些输入对于这个函数来说是无效的。根据函数的实现,当 a、b、c 中有一个小于等于 0 时,或者其中两个数之和小于等于第三个数时,函数会返回 NotATriangle。因此,我们可以设计以下测试用例:
```java
@Test
public void testNotATriangle() {
assertEquals("NotATriangle", Triangle.classify(0, 1, 2));
assertEquals("NotATriangle", Triangle.classify(1, -1, 2));
assertEquals("NotATriangle", Triangle.classify(1, 2, 3));
assertEquals("NotATriangle", Triangle.classify(1, 2, 4));
}
```
接下来,我们需要测试等边三角形、等腰三角形和普通三角形。对于等边三角形,a、b、c 三个参数的值都应该相等。因此,我们可以设计以下测试用例:
```java
@Test
public void testEquilateral() {
assertEquals("Equilateral", Triangle.classify(1, 1, 1));
assertEquals("Equilateral", Triangle.classify(5, 5, 5));
}
```
对于等腰三角形,a、b、c 中有两个数相等。因此,我们可以设计以下测试用例:
```java
@Test
public void testIsosceles() {
assertEquals("Isosceles", Triangle.classify(2, 2, 3));
assertEquals("Isosceles", Triangle.classify(2, 3, 2));
assertEquals("Isosceles", Triangle.classify(3, 2, 2));
}
```
对于普通三角形,a、b、c 三个参数的值都不相等。因此,我们可以设计以下测试用例:
```java
@Test
public void testScalene() {
assertEquals("Scalene", Triangle.classify(3, 4, 5));
assertEquals("Scalene", Triangle.classify(5, 4, 3));
assertEquals("Scalene", Triangle.classify(4, 3, 5));
}
```
这样,我们就完成了对于 Triangle 类的单元测试设计。
用白盒测试三角形问题,得出判定覆盖测试用例
判定覆盖是一种基于程序中条件语句的白盒测试覆盖方法,它要求测试用例至少覆盖每个条件表达式的每个可能取值。以下是一个求解三角形类型的示例程序:
```
1 public static String getTriangleType(int a, int b, int c) {
2 if (a <= 0 || b <= 0 || c <= 0) {
3 return "非法三角形";
4 }
5
6 if (a + b <= c || a + c <= b || b + c <= a) {
7 return "非法三角形";
8 }
9
10 if (a == b && b == c) {
11 return "等边三角形";
12 } else if (a == b || a == c || b == c) {
13 return "等腰三角形";
14 } else {
15 return "一般三角形";
16 }
17 }
```
根据上述程序,可以构造出以下判定覆盖的测试用例:
1. 输入:`a=3, b=4, c=5`,期望输出:`一般三角形`,测试结果:`一般三角形`。
2. 输入:`a=0, b=1, c=1`,期望输出:`非法三角形`,测试结果:`非法三角形`。
3. 输入:`a=1, b=2, c=3`,期望输出:`非法三角形`,测试结果:`非法三角形`。
4. 输入:`a=2, b=2, c=2`,期望输出:`等边三角形`,测试结果:`等边三角形`。
5. 输入:`a=2, b=2, c=3`,期望输出:`等腰三角形`,测试结果:`等腰三角形`。
6. 输入:`a=3, b=4, c=6`,期望输出:`一般三角形`,测试结果:`一般三角形`。
在上述测试用例中,用例1、2、3覆盖了第一个条件语句中的所有可能取值,用例1、2、3、4、5、6覆盖了第二个条件语句中的所有可能取值,因此这些测试用例可以实现判定覆盖。当然,还可以根据其他白盒测试覆盖方法,如条件覆盖、路径覆盖等,构造出更加严谨的测试用例。
阅读全文