三角形问题是了解等价类划分方法的典型问题。认真阅读下面关于黑盒测试中等价类划分方法的介绍,完成对一个三角形问题的等价类划分,并设计测试用例进行测试,测试发现问题则继续改进代码,直到测试通过,具体要求是:设计一个程序,其功能是能读入代表三角形边长的三个整数 a、b、c,并判断它们是否能构成三角形,如果不能,给出判断提示;如果能,则输出边长为 a、b、c 所构成的三角形是属于等边、等腰还是普通三角形的判断。
时间: 2024-02-03 21:12:30 浏览: 74
等价类划分是黑盒测试中的一种测试方法,将输入和输出的可能值划分为若干个等价类,从每个等价类中选择一些典型值作为测试用例进行测试,可以大大减少测试用例的数量,提高测试效率。
对于一个三角形问题,可以将输入值划分为以下三个等价类:
- 边长为正整数的三元组,可以构成三角形
- 边长为正整数的三元组,不能构成三角形,但至少有一个边长为0
- 边长为正整数的三元组,不能构成三角形,且三个边长都不为0
对于第一个等价类,可以选择以下测试用例:
- (3,4,5),期望输出结果为普通三角形
- (4,4,4),期望输出结果为等边三角形
- (4,4,5),期望输出结果为等腰三角形
对于第二个等价类,可以选择以下测试用例:
- (0,4,5),期望输出提示信息为“不能构成三角形”
- (3,0,5),期望输出提示信息为“不能构成三角形”
- (3,4,0),期望输出提示信息为“不能构成三角形”
对于第三个等价类,可以选择以下测试用例:
- (1,2,3),期望输出提示信息为“不能构成三角形”
- (2,3,5),期望输出提示信息为“不能构成三角形”
- (3,4,8),期望输出提示信息为“不能构成三角形”
下面是一个可能的实现:
```python
def judge_triangle(a, b, c):
if a <= 0 or b <= 0 or c <= 0 or a + b <= c or a + c <= b or b + c <= a:
print("不能构成三角形")
elif a == b and b == c:
print("等边三角形")
elif a == b or b == c or a == c:
print("等腰三角形")
else:
print("普通三角形")
```
你可以使用上述测试用例进行测试,如果测试发现问题,则需要根据测试结果改进代码,直到所有测试用例都通过为止。
阅读全文