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的出现。经过此次作业,也是发现自己编程水平的不足,知识不全面,还需多多完善。

汉堡包评价

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

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

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


 

PSP

PSP2.1

Personal Software Process Stages

Estimated time(h)

actual time(h)

Planning

计划

6

5.2

· Estimate

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

6

5.2

Development

开发

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.3

Reporting

报告

0.2

0.2

·

测试报告

 

 

·

计算工作量

0.1

0.1

·

并提出过程改进计划

0.2

0.2

posted on 2017-03-28 10:48  ii装糊涂  阅读(288)  评论(4编辑  收藏  举报