代码改变世界

结对编程2——单元测试

2017-03-29 21:25  周迪89  阅读(174)  评论(1编辑  收藏  举报

 周迪 201421123089    黄睿 201421123069

 coding.net 地址:http://git.oschina.net/hr2324/SoftEngHW


1.我们的代码要使它的利用率大大提高,所以我们要通过单元测试进一步完善代码,发现细小的错误。于是这次就用JUnit进行了简单四则运算的单元测试。

a.需求分析:(1)在上次的基础上将计算模块单独创建一个类;

               (2)针对计算类做单元测试;

               (3)主要做整数和真分数的加减乘除;

                (4) 增量式开发,用git命令提交到coding.net地址。

b. 设计测试框架, 模拟测试数据

(1)整数的加减乘除测试:

 

@Test
    public void testAdd() {
        number a=new number(156,78);
        number b=new number(19, 32);
        calculate c=new calculate(a,b);
        c.add();
        number a1=new number(100,78);
        number b1=new number(10, 32);
        calculate c1=new calculate(a1,b1);
        c1.add();
        
    }

    @Test
    public void testSub() {
        number a=new number(1,3);
        number b=new number(2,3);
        calculate c=new calculate(a,b);
        c.sub();
        number a1=new number(29,47);
        number b1=new number(55,67);
        calculate c1=new calculate(a1,b1);
        c1.sub();
        number a2=new number(66,7);
        number b2=new number(53,27);
        calculate c2=new calculate(a2,b2);
        c2.sub();
        
    }

    @Test
    public void testMuti() {
        
        number a=new number(1,3);
        number b=new number(2,3);
        calculate c=new calculate(a,b);
        c.muti();
        number a1=new number(27,43);
        number b1=new number(5,6);
        calculate c1=new calculate(a1,b1);
        c1.muti();
        number a2=new number(66,7);
        number b2=new number(53,27);
        calculate c2=new calculate(a2,b2);
        c2.muti();
    }

    @Test
    public void testDiv() {
        number a=new number(89,39);
        number b=new number(27,39);
        calculate c=new calculate(a,b);
        c.div();
        number a1=new number(26,24);
        number b1=new number(5,6);
        calculate c1=new calculate(a1,b1);
        c1.div();
        
    }

}

   利用JUnit看出成功与否和耗时:

(2)分数的加减乘除测试:

@Test
    public void testAdd() {
        number a=new number(77/156,78/99);
        number b=new number(19/33, 32/49);
        calculate c=new calculate(a,b);
        c.add();
    }

    @Test
    public void testSub() {
        number a=new number(1/45,5/47);
        number b=new number(2/34,3/67);
        calculate c=new calculate(a,b);
        c.sub();
    }

    @Test
    public void testMuti() {
        
        number a=new number(1/11,3/33);
        number b=new number(2/22,3/33);
        calculate c=new calculate(a,b);
        c.muti();
        number a1=new number(27/56,43/87);
        number b1=new number(5/6,6/11);
        calculate c1=new calculate(a1,b1);
        c1.muti();
    }

    @Test
    public void testDiv() {
        number a=new number(89/99,39/76);
        number b=new number(27/44,39/56);
        calculate c=new calculate(a,b);
        c.div();
        
    }

}

  利用JUnit看出成功与否和耗时:

(3)当出现 “ 248 / 0”时:出现错误

(4)代码覆盖率:

c. 小结与感受:

1、结队写作业的过程可以互相提问题查错纠错,比单独完成作业的效率更高,质量也更高,明显感觉到结对编程对我们的学习有很大的帮助。
2、测试代码覆盖率时,一头雾水,之后通过多方途径才学会了使用EclEmma工具来测试代码覆盖率。
3、学会了在Eclipse中使用GIT提交代码,以后代码可以随时同步很方便。

在隔了一周之后再看之前的代码的体会

1、良好的设计
按照之前的要求,基本功能都实现了,bug也在上一次作业中就基本修复了,但是设计还是有一些欠缺。
2、编码规范
规范性比较差,两个人合作多多少少会有些代码写得比较乱,规范性还有待提高,要多参照别人的代码规范。
3、必要的注释
两个人合作,对于注释还是非常重要的,必要的注释才能让队友看得明白,这样更容易合作。

 2.描述结对的过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。

结队照片:

                                 

3.PSP:

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 计划    
· Estimate 估计这个任务需要多少时间 10h 8h
Development 开发 8h 7h
· Analysis 需求分析 (包括学习新技术) 3h 5h
· Design Spec 生成设计文档    
· Design Review 设计复审    
· Coding Standard 代码规范 4h 3h
· Design 具体设计    
· Coding 具体编码 10h 8h
· Code Review 代码复审 5h 4h
· Test 测试(自我测试,修改代码,提交修改) 8h 6h
Reporting 报告 2h 2h
· 测试报告 5h 4h
· 计算工作量 5h 4h
· 并提出过程改进计划