zoukankan      html  css  js  c++  java
  • 结对编程2——单元测试

    项目代码地址

    合作伙伴:庞伊凡(201421123011)、赵娅汀(201421123012)

    需求分析

    把计算模块提取出来,单独创建一个类。针对提取出来的计算类的接口函数做单元测试。
    测试内容:

    • 加减乘除功能测试
    • 输入非法字符测试
    • 除0错误测试

    测试框架设计&模拟测试数据

    • 加减乘数功能测试
        def test_add(self):				#测试加法
            que=[[2,'+',4],[3.0,'+',5.0],[10,'+',4],[10,'+',2.0],[25,'+',2.0]]
            ans=['6','8.0','14','12.0','27.0']
            for i in range(len(que)):
            	test=calc.operate(que[i][0],que[i][1],que[i][2])
            	self.assertEqual(test, ans[i])
            	
        def test_sub(self):				#测试减法
            que=[[2,'-',4],[3.0,'-',5.0],[10,'-',4],[10,'-',2.0],[25,'-',2.0]]
            ans=['-2','-2.0','6','8.0','23.0']
            for i in range(len(que)):
            	test=calc.operate(que[i][0],que[i][1],que[i][2])
            	self.assertEqual(test, ans[i])
            	
        def test_mult(self):			#测试乘法
            que=[[2,'*',4],[3.0,'*',5.0],[10,'*',4],[10,'*',2.0],[25,'*',2.0]]
            ans=['8','15.0','40','20.0','50.0']
            for i in range(len(que)):
            	test=calc.operate(que[i][0],que[i][1],que[i][2])
            	self.assertEqual(test, ans[i])
            	
        def test_div(self):				#测试除法
            que=[[2,'/',4],[3.0,'/',5.0],[10,'/',4],[10,'/',2.0],[25,'/',2.0]]
            ans=['0','0.6','2','5.0','12.5']
            for i in range(len(que)):
            	test=calc.operate(que[i][0],que[i][1],que[i][2])
            	self.assertEqual(test, ans[i])
    

    将加减乘除分别写在add、sub、mult、div四个函数里,每个函数内的que列表为测试数据,ans列表为应有的测试结果。
    若测试加减乘除功能后得出的结果等于ans列表中的结果,则通过测试,反之则不通过。

    • 输入非法字符测试
        def test_oper_more_one(self):			#测试非法输入
        	que=[[2,'++',4],[3.0,'---',5.0],[10,'**',4],[10,'////',2.0],[25,'//',2.0]]
            ans='syntax_error'
            for i in range(len(que)):
            	test=calc.operate(que[i][0],que[i][1],que[i][2])
            	self.assertEqual(test, ans)
    

    输入非法字符,若反馈为'syntax_error',则通过测试。

    • 除0错误测试
        def test_zero(self):			#测试除数为0情况
            que=[[2,'/',0],[3.0,'/',0],[10,'/',0]]
            ans='zero_error'
            for i in range(len(que)):
            	test=calc.operate(que[i][0],que[i][1],que[i][2])
            	self.assertEqual(test, ans)
    

    进行除法计算时,若除数为0,则反馈为'zero_error',通过测试。

    • 单元测试展示

    结对过程

    • 测试过程遇到的问题以及解决方案
      1.在获取两个数值和符号的过程中,一直在报错TypeError: operate() takes exactly 3 arguments (1 given),后来更换了函数调用方法 完成了结果。
      2.比较的过程中,需要保持数据类型相同。以前吃过类似的亏,所以解决起来相对比较快速。

    • 合作照片

    小结&感受

    此次单元测试是基于先前的四则运算的程序,在和庞伊凡同学的合作中,我们使用的是她的个人四则运算程序。因为我的编程基础较弱,她一直在教我一些新的东西,让我对Python、HTML也有了一些了解,现在又尝试做测试,真的觉得在学习在进步,希望一直保持这个状态!

    PSP表格

  • 相关阅读:
    [NOI2014]动物园
    [NOI2014]起床困难综合症
    bzoj2688 Green Hackenbush
    luogu P2575 高手过招
    [NOI2015]荷马史诗
    win10系统U盘读取不了怎么解决 三种方法快速解决"文件或目录损坏且无法读取& 发布时间:2020-06-05 09:19:46 作者:佚名 我要评论
    在 Linux 中,最直观、最可见的部分就是 文件系统(file system)
    GB 18030-2000《信息技术信息交换用汉字编码字符集基本集的扩充
    docker 分层 隔离
    DNS和BIND
  • 原文地址:https://www.cnblogs.com/zyt77/p/6637521.html
Copyright © 2011-2022 走看看