结对编程-单元测试
单元测试
201421123098 胡丹丹 201421123118 张中结
代码地址:https://git.coding.net/zzj201421123118/together-2.git
一、需求分析
1.整数四则运算测试
2.分数四则运算测试
3.求最大公约数测试
二、测试环境
项目基于eclipse开发,然后使用用自带JUNIT4进行测试,eclemma实现代码覆盖率统计。
三、测试用例
package JieDui; import static org.junit.Assert.*; import org.junit.Test; public class CalculateTest { @Test public void testReduce(){ Calculate cal = new Calculate(); int result = cal.reduce(40,20); int expected=20; assertEquals(expected, result); } @Test public void testAdd() { Calculate cal = new Calculate(); String result = cal.add(10, 32768); String expected="32778"; assertEquals(expected, result); } @Test public void testSub() { Calculate cal = new Calculate(); String result = cal.sub(6,3); String expected="3"; assertEquals(expected, result); } @Test public void testMul() { Calculate cal = new Calculate(); String result = cal.mul(6,3); String expected="18"; assertEquals(expected, result); } @Test public void testDiv() { Calculate cal = new Calculate(); String result = cal.div(5,2); String expected="5/2"; assertEquals(expected, result); } @Test public void testScoreAdd() { Calculate cal = new Calculate(); String result = cal.ScoreAdd(6,5,1,5); String expected="7/5"; assertEquals(expected, result); } @Test public void testScoreSub() { Calculate cal = new Calculate(); String result = cal.ScoreSub(4,5,1,5); String expected="3/5"; assertEquals(expected, result); } @Test public void testScoreMul() { Calculate cal = new Calculate(); String result = cal.ScoreMul(4,5,1,5); String expected="4/25"; assertEquals(expected, result); } @Test public void testScoreDiv() { Calculate cal = new Calculate(); String result = cal.ScoreDiv(4,5,1,2); String expected="8/5"; assertEquals(expected, result); } }
运行结果
5.覆盖率
6.结对照片
背景是一样的,这是一起约图书馆时拍的,身边没有其他人,就我给他拍,他给我拍。
PSP展示
PSP2.1 | Personal Software Process Stages | Time (%) Senior Student(/hour) | Time (%)(/hour) |
· Planning | 计划 | 2 | 2.5 |
· Estimate | 估计这个任务需要多少时间 | 0.5 | 0.5 |
· Analysis | 需求分析 (包括学习新技术) | 1 | 1 |
· Coding Standard | 代码规范 | 0.5 | 0.5 |
· Design | 具体设计 | 1.5 | 2 |
· Coding | 具体编码 | 20 | 24 |
· Test | 测试(自我测试,修改代码,提交修改) | 1 | 1 |
Reporting | 报告 | 1 | 1 |
小结
在提取计算类的时候遇到一个比较严重的问题就是怎么样才能把类提出来之后又能满足主函数的调用和运行不出问题,尝试了好多种方法,只要愿意去做,总还是有办法的。
PS:问在隔了一周之后再看之前的代码,是否更能体会到下面这些东西?
(1) 良好的设计
(2) 编码规范
(3) 必要的注释
答:良好的设计会让我们在后面对程序的扩展应用中少走不少弯路,对于测试类也好,修改代码也好,不会影响到整个程序的运行。而编码的规范能让我们更好的理解代码的运行,对于越大的程序,编码的规范就越重要。而必要的注释更有利于他人理解我们的程序。总之,在以后的编程中要多注意这些因素。
评价下伙伴:
先来一片面包:队友能在我的基础上提出很合适的建议,对于程序的优化和应用扩展,提供了很多思路。
在把肉放上:有时候会想着希望能做得更好点,提出的建议想法都很不错,但是由于编程能力有限,还是选择了简便易行的方式。
再来一片面包: 想要做好不是一个人的事,有时候两个人可能都比较懒惰,做得比较慢,比较拖沓