结对编程2——单元测试(38/39)
本人(38)码市地址:https://git.coding.net/cholin/Task.git
一、题目要求
1、把计算模块提取出来,单独创建一个类。 2、针对提取出来的计算类的接口函数做单元测试。
二、需求分析
1、通过单元测试代码,测试加法是否能正确工作;
2、通过单元测试代码,测试加减乘除功能;
3、通过单元测试代码,测试计算类对于各种参数的支持。
三、计算模块
封装加减乘除模块:
package random; import junit.framework.TestCase;
public class calculateTest3 extends TestCase
{ protected void setUp() throws Exception { super.setUp(); } public void testAdd() //加法测试模块
{ RandomNum a=new RandomNum(2,3); RandomNum b=new RandomNum(2,3); calculate c=new calculate(); c.Add(a, b); System.out.println(a.toString());
}
public void testSubstract() //减法测试模块
{ RandomNum a=new RandomNum(1,3); RandomNum b=new RandomNum(2,3); calculate c=new calculate(); c.Add(a, b); System.out.println(a.toString()); } public void testDeivde() //除法测试模块
{ RandomNum a=new RandomNum(2,1); RandomNum b=new RandomNum(3,1); calculate c=new calculate(); c.Add(a, b); System.out.println(a.toString()); } public void testMul() //乘法测试模块
{ RandomNum a=new RandomNum(2,3); RandomNum b=new RandomNum(2,1); calculate c=new calculate(); c.Add(a, b); System.out.println(a.toString()); } }
四、单元测试
1、测试框架图
2、首次测试结果,加减乘除皆可执行:
![](https://images2015.cnblogs.com/blog/1111452/201703/1111452-20170329133956389-778101040.png)
3、将除法模块中,分母改为0,则测试报错:
![](https://images2015.cnblogs.com/blog/1111452/201703/1111452-20170329134621920-1091390870.png)
4、测试超出范围的数相加:
![](https://images2015.cnblogs.com/blog/1111452/201703/1111452-20170329134822467-2093944158.png)
五、利用clover测试代码覆盖率
六、小结
个人:通过本次实验,我学会了如何利用JUnit进行代码模块的测试,刚开始并不懂这个有什么用,也不知道怎么测试,在队友的帮助下才掌握了方法,同时明白了这种测试的好处,它可以方便快速的找出代码中出错的地方并加以改正。在测试代码覆盖率方面也摸索了好久,有许多可以进行测试的插件,通过讨论我们选择了利用CLOVER,开始一直找不到下载的地方,后来通过百度直接在ECLIPSE的中HELP中安装成功。遗憾的是在测试最后,还是无法解决超出范围相加,导致结果溢出,却并不报错的问题。
团队:我是个有点拖延症的人,一直都觉得还有时间就一直懒,多亏队友的一直催促提醒,我们才能按时完成。因为两人水平差不多,所以一直都是一起面对问题共同讨论解决的。就像在覆盖率插件的选择上,我们一起讨论比较选择了CLOVER,因为觉得它比较方便好用。我从队友身上学习到了以后应该克服拖延症的问题。同时也为她提了小意见就是写代码要细心一些,多注意细节方面写完整。
回顾体会:
①良好的设计:结构化模块化编程中这对于管理、修改和扩展非常重要。最初设计时就应有模块化的思想,相互之间的联系尽量少,分层设计,这样容易修改和拓展,否则后续会导致一系列的问题,致使修改起来很苦恼。
②编码规范:每个人都有自己的编码风格,但一定要在遵守最基本的编码规则的基础上进行,否则会导致团队间无法协作,别人看不懂你的代码。
③必要的注释:对于关键代码及方法的注释非常重要,这能使别人快速方便的看懂你飞代码,方便交流节约时间。
七、PSP
PSP2.1 |
Personal Software Process Stages |
Time (%) Senior Student(/hour) |
Time (%)(/hour) |
Planning |
计划 |
5 |
6 |
· Estimate |
估计这个任务需要多少时间 |
5 |
6 |
Development |
开发 |
|
|
· Analysis |
需求分析 (包括学习新技术) |
0.5 |
0.3 |
· Design Spec |
生成设计文档 |
0 |
0 |
· Design Review |
设计复审 |
0 |
0 |
· Coding Standard |
代码规范 |
0.2 |
0.3 |
· Design |
具体设计 |
0 |
0 |
· Coding |
具体编码 |
0.5 |
0.5 |
· Code Review |
代码复审 |
0.5 |
0.6 |
· Test |
测试(自我测试,修改代码,提交修改) |
2 |
4 |
Reporting |
报告 |
4 |
3 |
· |
测试报告 |
|
|
· |
计算工作量 |
|
|
· |
并提出过程改进计划 |
|
|
八、协作照片
![](https://images2015.cnblogs.com/blog/1111452/201703/1111452-20170329140200217-1640176150.jpg)
===============================================【晴昼秋岚,皆入我襟怀。 只岁暮天寒 ,独对江清月白。 谢此际春风,待我慷慨。 回眸处,一川青黛。 你随缱绻烟霞而来。】================================================