结对编程2-单元测试
卢少锐 201421123027、刘存 201421033023
a. 需求分析:
1.通过单元测试,测试加减乘除功能。
2.通过单元测试代码,测试计算类对于各种参数的支持:
a. 输入是有错误的,例如 “1 ++ 2”,
b. 在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,
c. 或者是 “ 248 / 0” 怎么办?
d. 怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?
e. 那么如果真的计算结果是 “-1” 又怎么处理呢?
b. 设计测试框架, 模拟测试数据:
(1) 请给出计算模块的测试用例及运行结果
加法测试用例:"3/4"+"1/2" 运行结果:"5/4"
减法测试用例:"3/4"-"1/2" 运行结果:"1/2"
乘法测试用例:"3/4"*"1/2" 运行结果:"3/8"
除法测试用例:"3/4"/"1/2" 运行结果:"3/2"
约分测试用例:77/88 运行结果:"7/8"
负数计算测试用例:"-3/4"-"1/2" 运行结果:"5/4"
输入错误运算符测试用例:"3/4"+-"1/2" 运行结果:"请输入正确运算符!"
将输入整数转换为分数形式测试用例:"5" 运行结果:"5/1"
(2) 描述测试过程中遇到的问题以及解决的方案。
单元测试要求将四则运算算法单独抽出来写成一个类,但之前四则运算gui实现就已经将四则运算算法单独写成了一个类,因此就没有怎么改直接进行的单元测试,在测试过程中遇到了一些字符转换方面的问题,还有就是compute()方法只能识别分数,输入整数时不能识别,后来写了一个方法将输入的整数转化为分数,再进行运算。测试算法时只能识别四种运算符——"+-*/",改了一下之后,在输入错误运算符时会进行报错,输出"请输入正确运算符!"。
(3) 请展示上面描述的单元测试的每个环节。
c. 小结与感受:由于之前写的四则运算类有许多不完善的地方 ,所以测试的过程出的错比较多,不过后来慢慢也都找到问题所在,都改了过来,通过这个测试,我感受到了代码规范的重要性,这样在出错的时候才能更快的处理,不至于理不出头绪。
评价下伙伴:
先来一片面包:写代码的能力很好,全程基本都是他在写,而我在旁边给建议。
再把肉放上:做事喜欢托到最后才做,而且不够专心,别一边写代码,一边跟女票聊天。
再来一片面包:做事要积极,而且要专心。
d. 在隔了一周之后再看之前的代码,是否更能体会到下面这些东西
1) 良好的设计
虽然基本功能都实现了,但逻辑不清晰。
2) 编码规范
规范性有点差,代码看起来比较乱。
3) 必要的注释
大致的注释都有,各个函数的用处开头也都有注释,还可以。
e.编程时图片
f.psp
PSP2.1
Personal Software Process Stages | Time (%) Senior Student | Time (%) | |
Planning | 计划 | 1 | 1 |
· Estimate | 估计这个任务需要多少时间 | 3 | 2 |
Development | 开发 | 4 | 5 |
· Analysis | 需求分析 (包括学习新技术) | 1 | 2 |
· Design Spec | 生成设计文档 | 0 | 1 |
· Design Review | 设计复审 | 2 | 1 |
· Coding Standard | 代码规范 | 1 | 1 |
· Design | 具体设计 | 3 | 1 |
· Coding | 具体编码 | 2 | 4 |
· Code Review | 代码复审 | 1 | 2 |
· Test | 测试(自我测试,修改代码,提交修改) | 2 | 3 |
Reporting | 报告 | 1 | 1 |
· | 测试报告 | 1 | 1 |
· | 计算工作量 | 2 | 2 |
· | 并提出过程改进计划 | 3 | 2 |