201421123022 王若凡 201421123026 欧阳勇
a.需求分析:
- 把计算模块提取出来,单独创建一个类。
- 针对提取出来的计算类的接口函数做单元测试。
a. 加减乘除功能测试
b.输入非法字符测试
c.数值超出范围测试
d.结果除0测试
b.设计测试框架, 模拟测试数据(view code)
1. 加减乘除功能测试
@Test public void testAdd() { calc.add(5,8); assertEquals(13, Integer.parseInt(calc.getResult())); } @Test public void testSubstract() { calc.substract(5,8); assertEquals(-3, Integer.parseInt(calc.getResult())); } @Test public void testMultiply() { calc.multiply(5,8); assertEquals(40, Integer.parseInt(calc.getResult())); } @Test public void testDivide() { calc.divide(5,8); assertEquals(String.valueOf("5/8"), calc.getResult()); } @Test public void testAdd2() { calc.add2(2,4,2,3); assertEquals(String.valueOf("7/6"), calc.getResult()); } @Test public void testSubstract2() { calc.substract2(2,4,2,3); assertEquals(String.valueOf("1/-6"), calc.getResult()); } @Test public void testMultiply2() { calc.multiply2(2,4,2,3); assertEquals(String.valueOf("1/3"), calc.getResult()); } @Test public void testDivide2() { calc.divide2(2,4,2,3); assertEquals(String.valueOf("3/4"), calc.getResult()); }
该部分功能代码较长不贴出,将在coding中。
2.输入非法字符测试
@Test public void testPanduanzifu() { //String s=calc.getResult(); calc.panduanzifu("4/7!#@$"); assertEquals("input error", calc.getResult()); } public void panduanzifu(String s) //判断输入字符, { char arr[]= s.toCharArray(); for (int i = 0; i < s.length(); i++) { if ((arr[i]<45) || (arr[i] > 58)) { sum1="input error"; } } }
3.数值超出范围测试
@Test public void testRange() { calc.range(11,3); assertEquals("outrange", calc.getResult()); } public void range(int x, int y)//范围判断 { if((x<0 || x>10)||(y<0 || y>10)) sum1="outrange"; }
4.结果除0测试
@Test public void testZero() { calc.zero("4/0"); assertEquals("zero error", calc.getResult()); } public void zero(String s) {//结果除0错误 s = s.substring(s.length()-2,s.length()); if(s.equals("/0")) { sum1="zero error"; } }
结果截图
当测试数据返回结果sum1与预先设定的结果相同则运行正确。
小结与感受
此次结对编程2-单元测试,总觉得什么都不会,就好像进入了知识盲区。一开始一头雾水,甚至都不知道要干什么,只能通过队友的言传身教以及网上搜索知识,才慢慢将此次任务完成。测试是很重要的对于一个程序来说,一个系统的测试,会让程序的运行更加安全,减少BUG的出现。经过此次作业,也是发现自己编程水平的不足,知识不全面,还需多多完善。
汉堡包评价
先放上一片面包:两个人的共同点在上一次已经说过,这是第二次合作,两个人更加默契了;
放上肉与佐料:队友的知识体系是比较完善的,在这次我不知所措的时候予以了很大的帮助,虽然此次两个人的角色互换,但更多的是若凡的奉献;
最后放上面包:第二次的合作更加默契,效率自然而然也提高了,为两个人的进步喝彩!
PSP
PSP2.1 |
Personal Software Process Stages |
Estimated time(h) |
actual time(h) |
Planning |
计划 |
6 |
5.2 |
· Estimate |
估计这个任务需要多少时间 |
6 |
5.2 |
Development |
开发 |
0.5 |
0.3 |
· Analysis |
需求分析 (包括学习新技术) |
0.2 |
0.2 |
· Design Spec |
生成设计文档 |
0.2 |
0.1 |
· Design Review |
设计复审 |
0.1 |
0.1 |
· Coding Standard |
代码规范 |
0.2 |
0.2 |
· Design |
具体设计 |
0.5 |
0.5 |
· Coding |
具体编码 |
3 |
2.5 |
· Code Review |
代码复审 |
0.5 |
0.5 |
· Test |
测试(自我测试,修改代码,提交修改) |
0.3 |
0.3 |
Reporting |
报告 |
0.2 |
0.2 |
· |
测试报告 |
|
|
· |
计算工作量 |
0.1 |
0.1 |
· |
并提出过程改进计划 |
0.2 |
0.2 |