四则运算单元测试
我(201421123010 申悦)和我的小伙伴(201421123009 徐璨)结合了前两次的实验内容,根据助教的空壳和自己的代码,把运算模块提取出来做了单元测试
代码地址 请戳这里
a.测试需求分析
- 算式输入错误,例如1++1这样
- 数值溢出错误,例如10000 + 32768这样
- 除零错误,例如248 / 0这样
- 对错误的处理,如何提醒用户出了哪种类型的错误
针对以上我们把计算模块提取出来单独创建一个类,对于各种参数进行了加减乘除的测试
b.测试框架
java语言进行开发,使用junit4进行测试
测试用例:
1.对于正常整数和分数的四则运算:
2.对于算式错误的:
3.对于数值溢出的:
4.除零错误:
5.代码覆盖率
c.小结与感受
对于计算模块化之前做的还是不够好,程序之间的关系千丝万缕,动一点儿就要修改很多东西,更别说做测试了,这次是为了测试而专门把计算部分模块化,刚做的单元测试是最简单的那种正常整数和分数之间的四则运算,当考虑到一点儿算式错误,除零错误,溢出错误时程序就会崩溃,做了测试才知道之前写的程序好脆弱啊,哈哈哈。然后就是在代码上进行修修补补,这时代码的注释和代码规范真的好重要啊,有的地方命名时就是毫无概念意义的命名,看的真是心好痛,这次也更加注重代码规范化,最后把基本常见错误抛出了。
d.体会
(1)良好的设计
在设计程序之前一定要想好自己要设计什么,功能有哪些,可能会出现的错误,不考虑这些的话最后只能是想到一点儿改一点儿,别人提出建议改一点儿,又浪费时间又费事。
(2)编码规范
这次这么费劲儿的修改,我们知道以后写程序的时候模块化,函数独立的好处了,就不会修改一点儿就要大幅度改动了,写程序的时候变量名称最好有意义,才能方便以后的读改。
(3)必要的注释
这个是早有体会,以后会一直这样做的。
结对照片
PSP
PSP2.1 | Personal Software Process Stages | Estimated time(h) | actual time(h) |
Planning | 计划 | 8 | 10 |
· Estimate | 估计这个任务需要多少时间 | 8 | 10 |
Development | 开发 | 8 | 13.5 |
· Analysis | 需求分析 (包括学习新技术) | 1 | 0.5 |
· Design Spec | 生成设计文档 | 0 | 0 |
· Design Review | 设计复审 | 0 | 0 |
· Coding Standard | 代码规范 | 0.5 | 0.5 |
· Design | 具体设计 | 0.5 | 1 |
· Coding | 具体编码 | 4 | 5 |
· Code Review | 代码复审 | 1 | 1.5 |
· Test | 测试(自我测试,修改代码,提交修改) | 2 | 3 |
Reporting | 报告 | 1 | 2 |
· | 测试报告 | ||
· | 计算工作量 | ||
· | 并提出过程改进计划 |