【应用题】三角形问题:程序接受3个整数 a、b、c作为输入,作为三角形的三条边,程序输出由这三条边确定的三角形的类型:等边三角形、等腰三角形、不等边三角形、非三角形。请用等价类划分法来设计测试此程序的测试用例。
时间: 2023-12-02 22:06:09 浏览: 130
首先,我们可以将所有可能的输入分成以下等价类:
1. 等边三角形:三条边长度都相等。
2. 等腰三角形:两条边长度相等,第三条边长度不相等。
3. 不等边三角形:三条边长度都不相等。
4. 非三角形:任意两条边之和小于第三条边,或者存在边长为0或负数的情况。
然后,我们需要为每个等价类选择合适的测试用例来进行测试:
1. 等边三角形:(3, 3, 3), (10, 10, 10), (20, 20, 20)
2. 等腰三角形:(5, 5, 7), (10, 10, 15), (20, 20, 30)
3. 不等边三角形:(3, 4, 5), (7, 8, 9), (10, 12, 15)
4. 非三角形:(1, 2, 3), (0, 0, 0), (-1, -2, -3)
注意,对于等腰三角形,我们需要确保两条边的长度不相等,因此在选择测试用例时需要注意。
另外,我们还可以选择一些边界测试用例,如最小值、最大值和中间值等,来进一步验证程序的正确性。
相关问题
输入三个整数,如果这三个数为边长,判断是否构成三角形;若构成三角形,则进一步判断它们构成的是:锐角三角形、直角三角形或钝角三角形。分别输出"ruijiao"、"zhijiao"、"dunjiao"。如果不构成三角形,输出"no"。这题怎么写
这道题可以通过应用三角形的性质和勾股定理来判断三角形的类型。下面是一个简单的 Python 代码示例:
```python
a, b, c = map(int, input().split())
if a + b > c and a + c > b and b + c > a:
if a*a + b*b == c*c or a*a + c*c == b*b or b*b + c*c == a*a:
print("zhijiao")
elif a*a + b*b < c*c or a*a + c*c < b*b or b*b + c*c < a*a:
print("dunjiao")
else:
print("ruijiao")
else:
print("no")
```
首先,我们将输入的三个整数 a、b、c 分别赋值给变量。然后,我们用三角形的性质判断它们是否能够构成三角形,如果能够构成三角形,就使用勾股定理判断三角形的类型。最后,我们根据判断结果输出相应的字符串。如果不能构成三角形,输出"no"。
如何运用等价类划分法,针对三角形的输入条件,设计一套测试用例确保程序能够正确识别等腰三角形和等边三角形?
等价类划分法是一种黑盒测试方法,通过对输入数据的等价类划分来减少测试用例的数量,同时保证测试的全面性。针对三角形的输入条件,我们可以设计以下等价类和测试用例:
参考资源链接:[软件测试面试题:三角形判定与等价类设计](https://wenku.csdn.net/doc/3ufez813jf?spm=1055.2569.3001.10343)
1. 等价类划分:
- EC1: 三边长度均为正整数(有效等价类)
- EC2: 至少有一边长度为非正整数(无效等价类)
- EC3: 任意两边之和小于等于第三边(无效等价类)
- EC4: 三边相等(有效等价类,等边三角形)
- EC5: 仅有两边相等(有效等价类,等腰三角形)
- EC6: 三边长度各不相等(有效等价类,一般三角形)
2. 测试用例设计:
- TC1: (3, 4, 5),一般三角形,属于EC6
- TC2: (4, 4, 4),等边三角形,属于EC4
- TC3: (5, 5, 8),等腰三角形,属于EC5
- TC4: (1, -2, 3),包含非法值,属于EC2
- TC5: (0, 2, 3),包含非正整数,属于EC2
- TC6: (1, 1, 3),任意两边之和小于等于第三边,属于EC3
在设计测试用例时,要注意包括所有有效等价类至少一次,以及无效等价类至少一次以覆盖边界情况。例如,TC4和TC5用于测试输入的合法性,确保程序能够拒绝非法输入。TC6则用于测试当输入不符合三角形构成条件时,程序应能正确识别。
通过这样的测试用例设计,我们可以确保程序在面对各种输入条件时的健壮性,并且验证程序是否能够准确地对三角形类型进行判定。对于准备参加软件测试面试的应聘者来说,掌握等价类划分法以及如何将其应用于实际问题中,将是一大加分项。
参考资源链接:[软件测试面试题:三角形判定与等价类设计](https://wenku.csdn.net/doc/3ufez813jf?spm=1055.2569.3001.10343)
阅读全文