结对编程2 单元测试

单元测试

201421123098 胡丹丹 201421123118 张中结
代码地址:https://git.coding.net/zzj201421123118/together-2.git

一、需求分析

1.整数四则运算测试

2.分数四则运算测试

3.求最大公约数测试

二、测试环境

 
项目基于eclipse开发,然后使用用自带JUNIT4进行测试,eclemma实现代码覆盖率统计。

三、测试用例

1.整数四则运算测试

  @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);
    }

2.真分数四则运算测试

 @Test
    public void testScoreAdd() {
        //fail("Not yet implemented");
        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);
    }
}

3.求最大公约数测试

@Test
    public void testReduce(){
    Calculate cal = new Calculate();
        int result = cal.reduce(40,20);
        int expected=20;
        assertEquals(expected, result);
    }

4.运行结果

1112065-20170328233342858-1290489229.png

5.覆盖率

1112065-20170329134422139-705178254.png

6.测试中遇到的问题

1112065-20170328233748998-597901291.png

进行分数四则运算测试时出现了错误,我们在确保测试代码没有问题完全正确的情况下,肯定是Calculate类中分数运算的方法出错了,仔细检查终于发现了错误,分数运算中的返回值弄错了

public String ScoreAdd(int x,int y,int q,int w){
        strz = "+";
        int temp1 = x * w + q * y;
        int temp2 = y * w;
        int temp3 = reduce(temp1, temp2);
        temp1 = temp1 / temp3;
        temp2 = temp2 / temp3;
        sumScore = String.valueOf(temp1) + '/' + String.valueOf(temp2);
        sumStr = (String.valueOf(temp4) + '/' + String.valueOf(temp5)) + strz
                + (String.valueOf(temp7) + '/' + String.valueOf(temp8));
        t = 1;
        return sumStr;
    }

以上展示的是错误代码,错误的地方在 return sumStr;这样返回的其实是整个算式的字符串,自然与预料结果不同。应该改成return sumScore;返回运算结果的字符串。

7.结对照片

1112065-20170329134805389-90403350.png

1112065-20170329134852483-857508272.png

背景是一样的,这是一起约图书馆时拍的,身边没有其他人,就我给他拍,他给我拍。

PSP展示

PSP2.1Personal Software Process StagesTime (%) Senior Student(/hour)Time (%)(/hour)
· Planning计划22.5
· Estimate估计这个任务需要多少时间0.50.5
· Analysis需求分析 (包括学习新技术)11
· Coding Standard代码规范0.50.5
· Design具体设计1.52
· Coding具体编码2024
· Test测试(自我测试,修改代码,提交修改)11
Reporting报告11

小结

有了上次合作的经验,这次合作没那么尴尬了,但有一个问题就是,eclipse直接提交会覆盖掉前面的提交记录,前面提交的记录都已经被覆盖了,队友的代码提交记录被我的覆盖掉了,我也很无奈啊,然后下次提交信息时,统一版本的书写格式。通过这次结对作业,学习Jnuit4测试Java代码,学习使用eclemma实现代码覆盖率统计,收获还是挺大的。还有上次我们也有去尝试把计算功能模块化,但是没有成功,这次回头再去做,感觉简单了许多,有一种恍然大悟的感觉,可能编程也是需要灵感的吧……哈哈哈

PS:问在隔了一周之后再看之前的代码,是否更能体会到下面这些东西?

(1) 良好的设计

(2) 编码规范

(3) 必要的注释

答:上次的四则运算GUI只写了一个类,所有的功能都集中在一个类里,这样很容易牵一发而动全身,这次单元测试有去把计算功能独立出来作为一个类,也算设计上有了一个改善,功能独立,错误也容易找出来,运用也更方便,从这点来说,我确实体会到了良好设计的重要性。代码规范,之前可能不太注意,经过这几次编程,自我感觉代码越来越规范了。至于注释,能够方便他人理解,给代码更好的可读性,也是一种程序员与其他人交流的一种途径。

评价下伙伴:

先来一片面包:队友还是很虚心听取我的想法的,能相互讨论从而得出更加正确的做法。这种能听取他人想法的行为是值得我去学习的。

在把肉放上:有时候会想着希望能做得更好点,提出的建议想法都很不错,但是由于编程能力有限,还是选择了简便易行的方式。

再来一片面包: 想要做好不是一个人的事,有时候两个人可能都比较懒惰,做得比较慢,比较拖沓。两个人应该改变方式,应该互相督促,而不是你拖我也拖。

转载于:https://www.cnblogs.com/hjkdd/p/6637722.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值