将以下程序利用等价类划分的方法给出足够的测试用例,列出等价类表,并利用Junit框架编写测试程序,执行这些测试用例。import java.util.Scanner; public class Triangle { public static void main(String[] args) { Scanner input = new Scanner(System.in); int a = input.nextInt(); int b = input.nextInt(); int c = input.nextInt(); if (a < 0 || a > 200 || b < 0 || b > 300 || c < 0 || c > 200) { System.out.println("数据输入有错,不满足0<a、b、c≤200"); } else if (a + b <= c || b + c <= a || a + c <= b) { System.out.println("不构成三角形"); } else if (a == b && b == c) { System.out.println("等边三角形"); } else if (a == b || b == c || c == a) { System.out.println("等腰三角形"); } else { System.out.println("普通三角形"); } } }
时间: 2024-03-27 11:39:08 浏览: 45
根据代码,我们可以得到以下的等价类划分:
1. a、b、c都在0-200之间的整数范围内
2. a、b、c不满足0<a、b、c≤200
3. 无法构成三角形
4. 等边三角形
5. 等腰三角形
6. 普通三角形
接下来,我们可以列出等价类表:
|等价类|输入值范围|代表值|
|---|---|---|
|1|a, b, c∈[1, 200]|3, 4, 5, 50, 100, 200|
|2|a, b, c<=0或a, b, c>200|0, -1, 201, 250|
|3|a+b<=c或b+c<=a或a+c<=b|1, 2, 3, 199, 200, 201|
|4|a=b=c|1, 2, 3, 5, 200|
|5|a=b≠c或a=c≠b或b=c≠a|1, 2, 3, 5, 50, 100, 200|
|6|a≠b≠c|1, 2, 3, 5, 50, 100, 200|
接下来,我们可以利用Junit框架编写测试程序,执行这些测试用例。以下是测试程序的代码:
```
import org.junit.Assert;
import org.junit.Test;
public class TriangleTest {
@Test
public void test1() {
String result = TriangleClassifier.classify(3, 4, 5);
Assert.assertEquals("普通三角形", result);
}
@Test
public void test2() {
String result = TriangleClassifier.classify(50, 50, 50);
Assert.assertEquals("等边三角形", result);
}
@Test
public void test3() {
String result = TriangleClassifier.classify(50, 50, 100);
Assert.assertEquals("等腰三角形", result);
}
@Test
public void test4() {
String result = TriangleClassifier.classify(1, 2, 3);
Assert.assertEquals("不构成三角形", result);
}
@Test
public void test5() {
String result = TriangleClassifier.classify(0, 50, 100);
Assert.assertEquals("数据输入有错,不满足0<a、b、c≤200", result);
}
@Test
public void test6() {
String result = TriangleClassifier.classify(-1, 50, 100);
Assert.assertEquals("数据输入有错,不满足0<a、b、c≤200", result);
}
@Test
public void test7() {
String result = TriangleClassifier.classify(201, 50, 100);
Assert.assertEquals("数据输入有错,不满足0<a、b、c≤200", result);
}
@Test
public void test8() {
String result = TriangleClassifier.classify(50, 100, 200);
Assert.assertEquals("不构成三角形", result);
}
@Test
public void test9() {
String result = TriangleClassifier.classify(1, 2, 2);
Assert.assertEquals("等腰三角形", result);
}
@Test
public void test10() {
String result = TriangleClassifier.classify(1, 2, 200);
Assert.assertEquals("不构成三角形", result);
}
}
```
测试程序中包含了10个测试用例,覆盖了以上的等价类。我们可以执行测试程序,验证输出结果是否与预期相同。
阅读全文