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


    201421123047,201421123029(一班)

    https://git.coding.net/weh/software-testing.git

    题目要求:

    1. 结对编程实现上述功能,同样的,在程序正式开发之前,请先预估下PSP每个环节的消耗时间(分钟),并在过程中统计实际耗时(分钟),最后提交PSP表格。依然注意,这个主要是给你们自己看的,不必造假数据。
    2. 继续两人结对协作,把编码规范、领航员和驾驶员角色互换做到位。
    3. 单元测试: 有单元测试保证,有代码覆盖率。

    需求分析:测试上有哪些详细的需求?

    1. 把计算模块提取出来,单独创建一个类。
    2. 针对提取出来的计算类的接口函数做单元测试。
    3. 通过单元测试代码,测试加法是否能正确工作;
    4. 通过单元测试代码,测试加减乘除功能。
    5. 通过单元测试代码,测试计算类对于各种参数的支持:
    6. 输入是有错误的,例如 “1 ++ 2”,
    7. 在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,
    8. 或者是 “ 248 / 0” 怎么办?
    9. 怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?
    10. 那么如果真的计算结果是 “-1” 又怎么处理呢?

    设计测试:

    package w;
    
    import static org.junit.Assert.*;
    import org.junit.Before;
    import org.junit.Test;
    public class CalculatorTest {
        private Calculator calculator=new Calculator();
        @Before
        public void setUp() throws Exception {
        }
        @Test
        public void testDnj() {
            calculator.Dnj(0, 1, 2, 4);
            assertEquals(3,calculator.getSum());
            calculator.Dnj(1, 1, 1, 1);
            assertEquals(0,calculator.getSum()); 
            calculator.Dnj(2, 1, 1, 1);
            assertEquals(1,calculator.getSum());
            calculator.Dnj(3, 1, 1, 1);
            assertEquals(1,calculator.getSum());
             
        }  
        @Test
        public void testGnj() {
            calculator.Gnj(0, 0, 1, 1, 1, 1, 1);
            assertEquals(3,calculator.getSum());
            calculator.Gnj(0, 1, 1, 1, 1, 1, 1);
            assertEquals(1,calculator.getSum());      
            calculator.Gnj(0, 2, 1, 1, 1, 1, 1);
            assertEquals(2,calculator.getSum());
            calculator.Gnj(0, 3, 1, 1, 1, 1, 1);
            assertEquals(2,calculator.getSum());
            
            calculator.Gnj(1, 0, 1, 1, 1, 1, 1);
            assertEquals(1,calculator.getSum());
            calculator.Gnj(1, 1, 3, 1, 1, 1, 1);
            assertEquals(1,calculator.getSum());      
            calculator.Gnj(1, 2, 1, 1, 1, 1, 1);
            assertEquals(0,calculator.getSum());
            calculator.Gnj(1, 3, 1, 1, 1, 1, 1);
            assertEquals(0,calculator.getSum());
            
            
            calculator.Gnj(2, 0, 1, 1, 1, 1, 1);
            assertEquals(2,calculator.getSum());
            calculator.Gnj(2, 1, 1, 1, 1, 1, 1);
            assertEquals(0,calculator.getSum());      
            calculator.Gnj(2, 2, 1, 1, 1, 1, 1);
            assertEquals(1,calculator.getSum());
            calculator.Gnj(2, 3, 1, 1, 1, 1, 1);
            assertEquals(1,calculator.getSum());
           
            calculator.Gnj(3, 0, 1, 1, 1, 1, 1);
            assertEquals(2,calculator.getSum());
            calculator.Gnj(3, 1, 1, 1, 1, 1, 1);
            assertEquals(0,calculator.getSum());      
            calculator.Gnj(3, 2, 1, 1, 1, 1, 1);
            assertEquals(1,calculator.getSum());
            calculator.Gnj(3, 3, 1, 1, 1, 1, 1);
            assertEquals(1,calculator.getSum());
            
            
        }   
    
    
    }

    结果:

    小结与感受:

        通过这次结对测试,不仅让我对四则运算程序有了更深入的了解,而且也学会了如何利用 Eclipse对自己编写的Java程序进行测试.当然,在测试覆盖率时也遇到了一些问题,发现测试的覆盖率达不到100%,后来发现是一些类没有调用,在测试中添加后终于能到100%.而且,在这次实验中,我发现对代码的一些规范与必备注释是非常有必要的,不然如果自己长时间没有用后,很容易就会忘了程序的意义,所以,在写程序时代码不仅要规范,还要有必要的注释,方便自己以后阅读.总之,在这次测试中,我了解程序的测试过程,不仅使我巩固了上次编的程序,也让我对程序的测试有了更深入的了解.

    评价队友:

    优点:编程与理解能力较强,能够快速找到问题,善于查找资料.

    缺点:实验不过细心,会犯一些小错误.

    建议:实验时应认真,专心.

    PSP:

    PSP2.1

    Personal Software Process Stages

    Time(min) Senior Student

    Time (min)

    Planning

    计划

    20

    25

    Estimate

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

    50

    50

    Development

    开发

    100

    80

    Analysis

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

    40

    30

    Design Spec

    生成设计文档

    10

    14

    Design Review

    设计复审

    20

    25

    Coding Standard

    代码规范

    15

    30

    Design

    具体设计

    100

    80

    Coding

    具体编码

    50

    50

    Code Review

    代码复审

    30

    30

    Test

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

    30

    16

    Reporting

    报告

    60

    80

     

    测试报告

    2

    3

     

    计算工作量

    3

    5

     

    并提出过程改进计划

    5

    4

  • 相关阅读:
    Java正則表達式入门
    Android
    centos改动sshport
    【iOS开发-59】LOL案例:单组tabView、alertView样式、实现监听,以及用reloadData数据刷新
    【Allwinner ClassA20类库分析】4.GPIO类的使用
    MvvmLight框架使用入门(四)
    MvvmLight框架使用入门(三)
    MvvmLight框架使用入门(二)
    MvvmLight框架使用入门(一)
    CEF 框架使用集锦
  • 原文地址:https://www.cnblogs.com/lqwe/p/6641626.html
Copyright © 2020-2023  润新知