您的位置:首页 > 编程语言

结对编程2——单元测试

2017-03-29 13:38 211 查看
康建灿 201421123017 郑怀勇 201421123016

结对编程2——单元测试 结对编程

需求分析

把计算模块提取出来,单独创建一个类。

针对提取出来的计算类的接口函数做单元测试。

实验要求:

通过单元测试代码,测试加法是否能正确工作;

通过单元测试代码,测试加减乘除功能。

通过单元测试代码,测试计算类对于各种参数的支持:

a. 输入是有错误的,例如 “1 ++ 2”,

b. 在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,

c. 或者是 “ 248 / 0” 怎么办?

d. 怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?

e. 那么如果真的计算结果是 “-1” 又怎么处理呢?

测试模块:

通过单元测试代码,测试加法是否能正确工作:

public void testAdd() {
CalcFunction.add("3+2");
assertEquals("5",CalcFunction.getResult());
CalcFunction.add("2/3+1/3");
assertEquals("1",CalcFunction.getResult());

}




通过单元测试代码,测试加减乘除功能。

public void testAdd() {
CalcFunction.add("3+2");
assertEquals("5",CalcFunction.getResult());
CalcFunction.add("2/3+1/3");
assertEquals("1",CalcFunction.getResult());
// CalcFunction.add("1++2");
//CalcFunction.add("10000+32768");
//assertEquals("out of range",CalcFunction.getResult());

}

@Test
public void testSub() {
CalcFunction.sub("3-2");
assertEquals("1",CalcFunction.getResult());
CalcFunction.sub("2/3-1/3");
assertEquals("1/3",CalcFunction.getResult());
}

@Test
public void testMul() {
CalcFunction.mul("3*2");
assertEquals("6",CalcFunction.getResult());
CalcFunction.mul("2/3*1/3");
assertEquals("2/9",CalcFunction.getResult());
}
@Test
public void testDiv() {
CalcFunction.div("3÷2");
assertEquals("3/2",CalcFunction.getResult());
CalcFunction.div("2/3÷1/3");
assertEquals("2",CalcFunction.getResult());
CalcFunction.div("248÷0");
assertEquals("zero_error",CalcFunction.getResult());
}




输入是有错误的,例如 “1 ++ 2”:会传出error:

@Test
public void testAdd() {
CalcFunction.add("1++2");

assertEquals("error",CalcFunction.getResult());

}




在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,

public void testAdd() {
CalcFunction.add("10000+32768");
assertEquals("out of range",CalcFunction.getResult());

}




或者是 “ 248 / 0” 怎么办?报错传出zero_error:

@Test
public void testDiv() {
CalcFunction.div("3÷2");
assertEquals("3/2",CalcFunction.getResult());
CalcFunction.div("2/3÷1/3");
assertEquals("2",CalcFunction.getResult());
CalcFunction.div("248÷0");
assertEquals("zero_error",CalcFunction.getResult());
}




怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?

输入是有错误的,会传出error:

@Test
public void testAdd() {
CalcFunction.add("1*&2");

assertEquals("error",CalcFunction.getResult());

}




那么如果真的计算结果是 “-1” 又怎么处理呢?直接输入-1即可。

public void testAdd() {
CalcFunction.add("2-3");
assertEquals("-1",CalcFunction.getResult());

}




代码覆盖率:



照片:



遇到的问题及解决方案:

在这次作业中,遇到挺多问题的,比如错误的捕获等等,我们在不懂的时候一般都是请教舍友或者在百度上寻找答案。

psp:

PSP2.1Personal Software Process StagesEstimated time(min)actual time(min)
Planning计划1210
· Estimate估计这个任务需要多少时间120115
Development开发8090
· Analysis需求分析 (包括学习新技术)1010
· Design Spec生成设计文档710
· Design Review设计复审65
· Coding Standard代码规范45
· Design具体设计3040
· Coding具体编码3540
· Code Review代码复审1015
· Test测试(自我测试,修改代码,提交修改)1515
Reporting报告2025
·测试报告55
·计算工作量47
·并提出过程改进计划44

小结:

用“汉堡包”的方式来评价一下我的小伙伴。第一层(先来一片面包):由于两个人比较熟悉,有较为接近的思想和思路,加上上一次的合作,两个人的分工越发默契。同时有问题的时候可以马上进行探讨,问题可以及时的得到解决。加上我的小伙伴编程能力也挺强的,任务完成相对没有特别的困难。

再把肉放上):因为上次写的程序问题和规范都存在一定的问题,所以这次写起来也比较麻烦,要改挺多东西,也让我们意识到代码的规范性的重要。

然后再来一片面包):希望队友在以后的学习生活中遇到困难,不要退缩,勇往直前,只要你努力一定都是可以解决的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: