结对编程2-单元测试

软件设计 2017-03-28

 201421123022 王若凡       201421123026  欧阳勇   

详细代码

a.需求分析:

  1. 把计算模块提取出来,单独创建一个类。
  2. 针对提取出来的计算类的接口函数做单元测试。

        a. 加减乘除功能测试

        b.输入非法字符测试

        c.数值超出范围测试

        d.结果除0测试

b.设计测试框架,模拟测试数据(view code)

   1. 加减乘除功能测试

@Test

    public void testAdd() {

          calc.add(5,8);

          assertEquals(13, Integer.parseInt(calc.getResult()));

    }

 

    @Test

    public void testSubstract() {

        calc.substract(5,8);

         assertEquals(-3, Integer.parseInt(calc.getResult()));

    }

 

    @Test

    public void testMultiply() {

         calc.multiply(5,8);

         assertEquals(40, Integer.parseInt(calc.getResult()));

    }

 

    @Test

    public void testDivide() {

         calc.divide(5,8);

         assertEquals(String.valueOf("5/8"), calc.getResult());

    }

 

    @Test

    public void testAdd2() {

        calc.add2(2,4,2,3);

         assertEquals(String.valueOf("7/6"), calc.getResult());

    }

 

    @Test

    public void testSubstract2() {

         calc.substract2(2,4,2,3);

         assertEquals(String.valueOf("1/-6"), calc.getResult());

    }

 

    @Test

    public void testMultiply2() {

        calc.multiply2(2,4,2,3);

         assertEquals(String.valueOf("1/3"), calc.getResult());

    }

 

    @Test

    public void testDivide2() {

        calc.divide2(2,4,2,3);

         assertEquals(String.valueOf("3/4"), calc.getResult());

    }

    该部分功能代码较长不贴出,将在coding中。

   2.输入非法字符测试

@Test

public void testPanduanzifu() {

//String s=calc.getResult();

 calc.panduanzifu("4/7!#@$");

 assertEquals("input error", calc.getResult());

}

  

 public void panduanzifu(String s) //判断输入字符,

        {

     char arr[]= s.toCharArray();

            for (int i = 0; i < s.length(); i++)

            {

            

                if ((arr[i]<45) || (arr[i] > 58))

                {

                 sum1="input error";

                }       

            }

 

        }

   3.数值超出范围测试

@Test

public void testRange() {

calc.range(11,3);

 assertEquals("outrange", calc.getResult());

}

  

 public void range(int x, int y)//范围判断

            {

                if((x<0 || x>10)||(y<0 || y>10))

     sum1="outrange";   

            }

  

   4.结果除0测试

@Test

public void testZero() {

 calc.zero("4/0");

 assertEquals("zero error", calc.getResult());

 

}

  

  public void zero(String s) {//结果除0错误

    

    s = s.substring(s.length()-2,s.length());

    if(s.equals("/0"))

    {

     sum1="zero error";

    }

    }

结果截图 

当测试数据返回结果sum1与预先设定的结果相同则运行正确。

小结与感受

 此次结对编程2-单元测试,总觉得什么都不会,就好像进入了知识盲区。一开始一头雾水,甚至都不知道要干什么,只能通过队友的言传身教以及网上搜索知识,才慢慢将此次任务完成。测试是很重要的对于一个程序来说,一个系统的测试,会让程序的运行更加安全,减少BUG的出现。经过此次作业,也是发现自己编程水平的不足,知识不全面,还需多多完善。

汉堡包评价

 先放上一片面包:两个人的共同点在上一次已经说过,这是第二次合作,两个人更加默契了;

 放上肉与佐料:队友的知识体系是比较完善的,在这次我不知所措的时候予以了很大的帮助,虽然此次两个人的角色互换,但更多的是若凡的奉献;

 最后放上面包:第二次的合作更加默契,效率自然而然也提高了,为两个人的进步喝彩!

结对编程2-单元测试

PSP

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

相关推荐