测试报告
项目名称
三角形类型判断
测试日期
2024年6月12日
测试概述
本次测试针对 Triangle
类的功能进行单元测试,验证其是否能够正确判断三角形的类型,并处理无效的边长组合。使用的单元测试框架为 unittest
。
测试环境
- 操作系统:Windows 10
- 编程语言:Python 3.8
- 测试框架:unittest
- 测试文件:
test_triangle.py
- 被测文件:
triangle.py
测试用例
-
等边三角形
- 输入:
(10, 10, 10)
- 预期输出:
等边三角形
- 结果:通过
- 输入:
-
等腰三角形
- 输入:
(10, 10, 5)
- 预期输出:
等腰三角形
- 结果:通过
- 输入:
-
直角三角形
- 输入:
(3, 4, 5)
- 预期输出:
直角三角形
- 结果:通过
- 输入:
-
一般三角形
- 输入:
(7, 10, 5)
- 预期输出:
一般三角形
- 结果:通过
- 输入:
-
无效三角形(边长组合)
- 输入:
(1, 2, 3)
- 预期输出:抛出
InvalidTriangleError
- 结果:通过
- 输入:
-
无效三角形(边长不在1到100之间)
- 输入:
(101, 101, 101)
- 预期输出:抛出
InvalidTriangleError
- 结果:通过
- 输入:
-
边界条件测试
- 输入:
(0, 10, 10)
,预期输出:抛出InvalidTriangleError
,结果:通过 - 输入:
(10, 10, -1)
,预期输出:抛出InvalidTriangleError
,结果:通过 - 输入:
(1, 1, 1)
,预期输出:等边三角形
,结果:通过 - 输入:
(100, 99, 99)
,预期输出:等腰三角形
,结果:通过
- 输入:
测试结果
所有测试用例均通过,Triangle
类的功能正常,能够正确判断不同类型的三角形,并能够处理无效的边长组合。
测试结论
本次测试验证了 Triangle
类的功能及其健壮性,所有测试用例均通过,表明 Triangle
类能够正确判断三角形的类型并处理边长的边界条件。系统符合预期的功能需求。
建议与改进
- 当前测试用例覆盖了常见的三角形类型及边界条件,建议在后续开发中持续增加更多复杂的测试用例,以进一步验证系统的健壮性。
- 建议将异常信息进一步细化,例如区分边长超出范围和无法构成三角形的具体原因,以便更好地调试和维护。
附录:测试代码
from unittest import TestCase
from triangle import Triangle, InvalidTriangleError
class TestTriangle(TestCase):
def test_equilateral_triangle(self):
triangle = Triangle(10, 10, 10)
self.assertEqual(triangle.get_type(), "等边三角形")
def test_isosceles_triangle(self):
triangle = Triangle(10, 10, 5)
self.assertEqual(triangle.get_type(), "等腰三角形")
def test_right_angle_triangle(self):
triangle = Triangle(3, 4, 5)
self.assertEqual(triangle.get_type(), "直角三角形")
def test_scalene_triangle(self):
triangle = Triangle(7, 10, 5)
self.assertEqual(triangle.get_type(), "一般三角形")
def test_invalid_triangle_by_sides(self):
with self.assertRaises(InvalidTriangleError):
Triangle(1, 2, 3)
def test_invalid_triangle_by_length(self):
with self.assertRaises(InvalidTriangleError):
Triangle(101, 101, 101)
def test_boundary_conditions(self):
# Edge cases for boundary values
with self.assertRaises(InvalidTriangleError):
Triangle(0, 10, 10) # one side is 0
with self.assertRaises(InvalidTriangleError):
Triangle(10, 10, -1) # one side is negative
triangle = Triangle(1, 1, 1) # smallest valid triangle
self.assertEqual(triangle.get_type(), "等边三角形")
triangle = Triangle(100, 99, 99) # largest valid triangle
self.assertEqual(triangle.get_type(), "等腰三角形")