• 软件工程(2019)第二次作业


    (一)选择开发工具

      本次团队编程经过讨论我准备使用Eclipse作为开发工具,由于本机已经安装了Eclipse所以下面将Eclipse的界面截图如下:
    Eclipse主界面截图

    (二)练习自动单元测试技术

      由于本机中已经安装了Python环境并已经安装好了Python的单元测试Unittest,所以这次自动单元测试技术练习使用了Python完成。以下就是练习代码以及测试结果:
      Unittest是基于流行的Java测试框架JUnit的一种Python测试框架,相比于Python之前的单元测试框架Doctest来讲,Unittest更灵活,更强大;可以以结构化方式编写庞大而详尽的测试集。
      下面是一个程序模块my_math的测试实例,我们使用Unittest中的TestCase类编写y一个测试。(my_math模块中包含了一个计算乘积的函数product)

    import unittest, my_math
    
    class ProductTestCase(unittest.TestCase):
        def test_integers(self):
            for x in range(-10, 10):
                for y in range(-10, 10):
                    p = my_math.product(x, y)
                    self.assertEqual(p, x * y, 'Integer multiplication failed')
    
        def test_floats(self):
            for x in range(-10, 10):
                for y in range(-10, 10):
                    x = x / 10
                    y = y / 10
                    p = my_math.product(x, y)
                    self.assertEqual(p, x * y, 'Float multiplication failed')
    
    if __name__=='__main__': unittest.main()
    
    

      函数unittest.main负责运行测试,实例化所有的TestCase子类,并运行所有名称以test打头的方法。
      my_math内部的代码如下:

    def product(x, y):
        return x * y
    

      则输出如下:
    成功1
      当然,完全正确的结果显然没有什么趣味性,下面我对product函数进行一些修改:

    def product(x, y):
        if x == 3 and y == 7:
            return 'An insidious bug has surfaced!'
        else:
            return x * y
    

      则输出如下,可以看到两个测试结果只有一个通过了:
    成功2

  • 相关阅读:
    《构建之法》阅读笔记二
    《构建之法》阅读笔记一
    软件工程个人课程总结
    纯随机数生成器
    递归方法
    素数的输出
    字母统计|英语的26 个字母在一本小说中是如何分布的
    类的声明
    FileInputStream类与FileOutputStream类
    验证码|程序登录界面
  • 原文地址:https://www.cnblogs.com/ulyssesgao/p/10692644.html
Copyright © 2020-2023  润新知