结对编程2——单元测试
2017-03-29 21:25 周迪89 阅读(174) 评论(1) 编辑 收藏 举报周迪 201421123089 黄睿 201421123069
coding.net 地址:http://git.oschina.net/hr2324/SoftEngHW
1.我们的代码要使它的利用率大大提高,所以我们要通过单元测试进一步完善代码,发现细小的错误。于是这次就用JUnit进行了简单四则运算的单元测试。
a.需求分析:(1)在上次的基础上将计算模块单独创建一个类;
(2)针对计算类做单元测试;
(3)主要做整数和真分数的加减乘除;
(4) 增量式开发,用git命令提交到coding.net地址。
b. 设计测试框架, 模拟测试数据
(1)整数的加减乘除测试:
@Test public void testAdd() { number a=new number(156,78); number b=new number(19, 32); calculate c=new calculate(a,b); c.add(); number a1=new number(100,78); number b1=new number(10, 32); calculate c1=new calculate(a1,b1); c1.add(); } @Test public void testSub() { number a=new number(1,3); number b=new number(2,3); calculate c=new calculate(a,b); c.sub(); number a1=new number(29,47); number b1=new number(55,67); calculate c1=new calculate(a1,b1); c1.sub(); number a2=new number(66,7); number b2=new number(53,27); calculate c2=new calculate(a2,b2); c2.sub(); } @Test public void testMuti() { number a=new number(1,3); number b=new number(2,3); calculate c=new calculate(a,b); c.muti(); number a1=new number(27,43); number b1=new number(5,6); calculate c1=new calculate(a1,b1); c1.muti(); number a2=new number(66,7); number b2=new number(53,27); calculate c2=new calculate(a2,b2); c2.muti(); } @Test public void testDiv() { number a=new number(89,39); number b=new number(27,39); calculate c=new calculate(a,b); c.div(); number a1=new number(26,24); number b1=new number(5,6); calculate c1=new calculate(a1,b1); c1.div(); } }
利用JUnit看出成功与否和耗时:
(2)分数的加减乘除测试:
@Test public void testAdd() { number a=new number(77/156,78/99); number b=new number(19/33, 32/49); calculate c=new calculate(a,b); c.add(); } @Test public void testSub() { number a=new number(1/45,5/47); number b=new number(2/34,3/67); calculate c=new calculate(a,b); c.sub(); } @Test public void testMuti() { number a=new number(1/11,3/33); number b=new number(2/22,3/33); calculate c=new calculate(a,b); c.muti(); number a1=new number(27/56,43/87); number b1=new number(5/6,6/11); calculate c1=new calculate(a1,b1); c1.muti(); } @Test public void testDiv() { number a=new number(89/99,39/76); number b=new number(27/44,39/56); calculate c=new calculate(a,b); c.div(); } }
利用JUnit看出成功与否和耗时:
(3)当出现 “ 248 / 0”时:出现错误
(4)代码覆盖率:
c. 小结与感受:
1、结队写作业的过程可以互相提问题查错纠错,比单独完成作业的效率更高,质量也更高,明显感觉到结对编程对我们的学习有很大的帮助。
2、测试代码覆盖率时,一头雾水,之后通过多方途径才学会了使用EclEmma工具来测试代码覆盖率。
3、学会了在Eclipse中使用GIT提交代码,以后代码可以随时同步很方便。
在隔了一周之后再看之前的代码的体会
1、良好的设计
按照之前的要求,基本功能都实现了,bug也在上一次作业中就基本修复了,但是设计还是有一些欠缺。
2、编码规范
规范性比较差,两个人合作多多少少会有些代码写得比较乱,规范性还有待提高,要多参照别人的代码规范。
3、必要的注释
两个人合作,对于注释还是非常重要的,必要的注释才能让队友看得明白,这样更容易合作。
2.描述结对的过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。
结队照片:
3.PSP:
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 计划 | ||
· Estimate | 估计这个任务需要多少时间 | 10h | 8h |
Development | 开发 | 8h | 7h |
· Analysis | 需求分析 (包括学习新技术) | 3h | 5h |
· Design Spec | 生成设计文档 | ||
· Design Review | 设计复审 | ||
· Coding Standard | 代码规范 | 4h | 3h |
· Design | 具体设计 | ||
· Coding | 具体编码 | 10h | 8h |
· Code Review | 代码复审 | 5h | 4h |
· Test | 测试(自我测试,修改代码,提交修改) | 8h | 6h |
Reporting | 报告 | 2h | 2h |
· | 测试报告 | 5h | 4h |
· | 计算工作量 | 5h | 4h |
· | 并提出过程改进计划 |