azure011328

导航

 

     

 

 

     
   

            

 

实验项目名称:实验三          

一、 实验目的

掌握单元测试技术,并按单元测试的要求设计测试用例

掌握一种单元测试工具的使用

 

二、 实验内容

自行学习C#python或C++的其中一种单元测试工具的使用,自选一段单元代码(不少于15行),进行测试,完成实验报告。

三、 实验步骤及结果

源代码不用写在报告中,源代码上传学习通,在报告中可写:源程序见学习通平台。

1. 被测代码

选择了一个简单的计算器类作为被测代码,包含加法、减法、乘法和除法四种基本运算,代码如下:

class Calculator:

    """简单的计算器类"""

    

    def add(self, a, b):

        """加法"""

        return a + b

    

    def subtract(self, a, b):

        """减法"""

        return a - b

    

    def multiply(self, a, b):

        """乘法"""

        return a * b

    

    def divide(self, a, b):

        """除法"""

        if b == 0:

            raise ValueError("除数不能为零")

        return a / b

 

2. 测试代码

使用Pythonunittest框架编写测试用例:

import unittest

from calculator import Calculator

 

class TestCalculator(unittest.TestCase):

    """Calculator类的单元测试"""

    

    def setUp(self):

        """在每个测试方法前执行"""

        self.calc = Calculator()

    

    def test_add(self):

        """测试加法"""

        self.assertEqual(self.calc.add(2, 3), 5)

        self.assertEqual(self.calc.add(-1, 1), 0)

        self.assertEqual(self.calc.add(0, 0), 0)

    

    def test_subtract(self):

        """测试减法"""

        self.assertEqual(self.calc.subtract(5, 3), 2)

        self.assertEqual(self.calc.subtract(-1, -1), 0)

        self.assertEqual(self.calc.subtract(0, 0), 0)

    

    def test_multiply(self):

        """测试乘法"""

        self.assertEqual(self.calc.multiply(2, 3), 6)

        self.assertEqual(self.calc.multiply(-1, 1), -1)

        self.assertEqual(self.calc.multiply(0, 5), 0)

    

    def test_divide(self):

        """测试除法"""

        self.assertEqual(self.calc.divide(6, 3), 2)

        self.assertEqual(self.calc.divide(-4, 2), -2)

        self.assertEqual(self.calc.divide(0, 5), 0)

        

        # 测试除数为零的情况

        with self.assertRaises(ValueError):

            self.calc.divide(5, 0)

 

if __name__ == '__main__':

unittest.main()

 

3. 测试用例设计

针对每个方法设计了多个测试用例,包括:

 

正常情况下的运算

 

边界值测试

 

异常情况测试(如除数为零)

4. 测试结果

 

1. 加法测试 (test_add)

测试用例

输入参数

预期结果

实际结果

状态

正数相加

(2, 3)

5

5

Ok

负数相加

(-1, 1)

0

0

Ok

零值相加

(0, 0)

0

0

Ok

2. 减法测试 (test_subtract)

测试用例

输入参数

预期结果

实际结果

状态

正数相减

(5, 3)

2

2

Ok

负数相减

(-1, -1)

0

0

Ok

零值相减

(0, 0)

0

0

Ok

3. 乘法测试 (test_multiply)

测试用例

输入参数

预期结果

实际结果

状态

正数相乘

(2, 3)

6

6

Ok

正负相乘

(-1, 1)

-1

-1

Ok

零值相乘

(0, 5)

0

0

Ok

4. 除法测试 (test_divide)

测试用例

输入参数

预期结果

实际结果

状态

正常除法

(6, 3)

2

2

Ok

负数除法

(-4, 2)

-2

-2

Ok

零被除数

(0, 5)

0

0

Ok

除数为零

(5, 0)

ValueError

ValueError

Ok

 

四、 个人体会

通过本次实验,掌握了单元测试的基本概念和技术,学会了如何为代码设计有效的测试用例。

熟悉了Python的unittest框架的使用方法,包括测试类的编写、断言方法的使用等。

理解了单元测试在软件开发中的重要性,它可以帮助开发者尽早发现代码中的问题,提高代码质量。

在测试过程中,特别需要注意边界条件和异常情况的测试,这是发现潜在错误的关键。

posted on 2025-06-11 08:53  淮竹i  阅读(17)  评论(0)    收藏  举报