结对编程2——单元测试
201421123001 廖婷婷 201421123008 刘伟霞
一、需求分析:
1.整数加减乘除的测试;
2.真分数加减乘除的测试;
3.最小值测试;
4.最大公约数测试;
5.最大公倍数测试;
二、测试框架:
项目以JAVA开发,然后使用JUNIT4进行测试,eclemma实现代码覆盖率统计。
三、测试用例:
1.整数加减乘除的测试:
public class CalculatorTest { @Test public void testCalculatorint() { Calculator calculator=new Calculator(); calculator.Calculatorint(2,2,"+"); assertEquals(4, calculator.getResult()); calculator.Calculatorint(2,2,"-"); assertEquals(0, calculator.getResult()); calculator.Calculatorint(2,2,"*"); assertEquals(4, calculator.getResult()); calculator.Calculatorint(2,2,"/"); assertEquals(1, calculator.getResult()); } }
package test; import static org.junit.Assert.*; import org.junit.Test; public class CalculatorTest { @Test public void testCalculatorint() { Calculator calculator=new Calculator(); calculator.Calculatorint(2,2,"+"); assertEquals(4, calculator.getResult()); calculator.Calculatorint(2,2,"-"); assertEquals(0, calculator.getResult()); calculator.Calculatorint(2,2,"*"); assertEquals(4, calculator.getResult()); calculator.Calculatorint(2,2,"/"); assertEquals(1, calculator.getResult()); } }
2.真分数加减乘除测试:
package test; import static org.junit.Assert.*; import org.junit.Test; public class ProfraCalculatorTest { @Test public void testProfraAdd() { ProfraCalculator a=new ProfraCalculator(); a.profraAdd(2, 5, 2, 5); assertEquals((double)4/5, a.getResult(), 0.1); } @Test public void testProfraSub() { ProfraCalculator a=new ProfraCalculator(); a.profraSub(3, 5, 2, 5); assertEquals((double)1/5, a.getResult(), 0.1); } @Test public void testProfraMul() { ProfraCalculator a=new ProfraCalculator(); a.profraMul(2, 5, 2, 5); assertEquals((double)4/25, a.getResult(), 0.1); } @Test public void testProfraDiv() { ProfraCalculator a=new ProfraCalculator(); a.profraDiv(2, 5, 2, 5); assertEquals(1, a.getResult(), 0.1); }
3.最小值、最大公约数、最小公倍数测试:
@Test public void testMin() { ProfraCalculator.min(5, 6); assertEquals(5, ProfraCalculator.min(5, 6)); } @Test public void testGcd() { ProfraCalculator.gcd(10, 2); assertEquals(2, ProfraCalculator.gcd(10, 2)); } @Test public void testLcm() { ProfraCalculator.lcm(10, 2); assertEquals(10, ProfraCalculator.lcm(10, 2)); }
4.整体覆盖率:
四、小结与感受:
这已经是第二次结队作业了,有了之前的合作经验,再次合作更加有默契。在我们俩共同的努力的下,轻松愉快地完成了第二次结对作业。
隔了一周再看之前写过的代码,我和我的队友廖婷婷一致认为,尽管当时我们多次互相查错纠错,反反复复试验了很多次才交的作业,依然可以找到得以改进的地方,可以有更好的设计,编码也可以更加规范,代码旁添加注释会让读者看起来更方便。
结队写作业的过程可以互相提问题查错纠错,比单独完成作业的效率更高,质量也更高,明显感觉到结对编程对我们的学习有很大的帮助。
这次结队作业经过我和廖婷婷的多次测试和修改,才提交了最终版本。多次提交的记录可以在我队友廖婷婷的码市上看的出来,测试完成之后我只提交了最终版本。
五、码市地址:https://coding.net/u/Dt-ghost/p/teamwork2.0/git/tree/master/
六:PSP
PSP2.1 | Personal Software Process Stages | Time (%) Senior Student | Time (%) |
Planning | 计划 | ||
· Estimate | 估计这个任务需要多少时间 | 15h | 20h |
Development | 开发 | ||
· Analysis | 需求分析 (包括学习新技术) | 1h | 2h |
· Design Spec | 生成设计文档 | ||
· Design Review | 设计复审 | ||
· Coding Standard | 代码规范 | 1h | 1h |
· Design | 具体设计 | ||
· Coding | 具体编码 | 12h | 15h |
· Code Review | 代码复审 | 2h | 1h |
· Test | 测试(自我测试,修改代码,提交修改) | 5h | 4h |
Reporting | 报告 | 1h | 1h |
·Test Report | 测试报告 | ||
· Size Measurement | 计算工作量 | ||
·Postmortem & Process Improvement Plan | 并提出过程改进计划 |