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

结对编程2——单元测试

2017-03-29 19:32 281 查看
(201421123002 翁珊;201421123006 黄月梅;201421123007 徐晓珊)

题目要求:

结对编程实现上述功能,同样的,在程序正式开发之前,请先预估下PSP每个环节的消耗时间(分钟),并在过程中统计实际耗时(分钟),最后提交PSP表格。依然注意,这个主要是给你们自己看的,不必造假数据。

继续两人结对协作,把编码规范、领航员和驾驶员角色互换做到位。

单元测试: 有单元测试保证,有代码覆盖率。

需求分析:

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

计算模块单独成类Calc:

package happy;

public class Calc{

static int getGCD(int i, int j) //求最大公约数
{
int temp;
while (i % j != 0) {
temp = i % j;
i = j;
j = temp;
}
return j;
}

static String Reduction(int i, int j)
{
String k;
if (j == 1) {
k = i + "";
} else {
k = (i) + "" + "/" + (j) + "";
}
return k;
}

static boolean compare(String a, String b) //比较输入值与答案
{
if (a.equals(b))
{System.out.println("回答正确");
return true;}
else
{
System.out.println("回答错误,正确答案是" + b);
return false;
}
}
}


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

单元测试代码如下:

package happy;

import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class CalcTest {

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@Test
public void testGetGCD() {
assertEquals(Calc.getGCD(10, 5), 5);
}

@Test
public void testReduction() {
assertEquals(Calc.Reduction(9, 5), "9/5");
}

@Test
public void testMain() {

}
}


单元测试结果:



代码覆盖率:





描述测试过程中遇到的问题以及解决的方案:

测试中的除零错误,由于我们一开始在程序设计的时候就设定了出书的值不为零,所以不会出现不能除的情况。对于两个运算符的情况也是,在程序设计的一开始就设定只能生成一个运算符,所以不会出现类似a++的情况。

小结与感受:通过测试,是否有效发现了程序计算模块的问题,并给予改进?

因为模块是根据助教发的写的,所以将自己原先的程序给拆解开来,并删除了一些没有必要的类,例如:GUI。再进行的单元测试。在拆解的过程中使得程序出现了很大的改变,程序在测试的时候出现了很多的问题。但是实在是由于我们组的编程能力有限,时间也是很有限,使得很多问题没有的到有效的解决,希望自己的编程能力能够有所提高。至少在目前,这种做作业还是有很大的难度,需要投入很大的精力,却得不到理想的效果。

隔周看之前的代码:

(1)良好的设计:在开始设计程序的时候就要进行合理地规划。对程序的功能进行合理地划分,这样后期对程序功能的完善跟扩充更加具有弹性。

(2)编码规范:在定义的时候尽量避免使用a,b,c等无意义的变量,会影响在后序实验过程中的代码阅读和理解。

(3)必要的注释:在写程序时需要进行必要的注释的填写,会帮助后期对程序总体框架的了解。而且程序不仅仅是给自己看的,也要让别人能够理解,从这点上说,注释还是很有必要的

git克隆助教的框架:



git上交截图:





coding链接:
https://coding.net/u/watermelon123/p/homework3/git
结对照片:



PSP表格:

PSP2.1

Personal Software Process Stages

Estimated Time(hour)

Actual Time (hour)

Planning

计划

0.5

0.5

· Estimate

估计这个任务需要多少时间

10

12

Development

开发

5

6

· Analysis

需求分析 (包括学习新技术)

1

1.5

· Design Spec

生成设计文档

1

1

· Design Review

设计复审

1.5

2

· Coding Standard

代码规范

0.5

0.5

· Design

具体设计

2

2

· Coding

具体编码

4

4.5

· Code Review

代码复审

0.5

0.5

· Test

测试(自我测试,修改代码,提交修改)

0.5

1

Reporting

报告

0.5

0.5

·

测试报告

1/6

1/6

·

计算工作量

1/6

0.5

·

并提出过程改进计划

0.25

0.25

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: