• the third assignment of software testing


    没有网的日子不好过,Junit4下不下来,先用androidTestCase实现一个。

    遇到了几个bug

    首先是除0问题。

    public void testDivide(){

    result=calculate.divide(5, 2);

    if(calculate.getIsError()){

    assertEquals(flag, true);

    }else{

    assertEquals(2.5, result);

    }

    double result1=calculate.divide(5, 0);

    if((flag=calculate.getIsError())){

    assertEquals(flag, true);

    }else{

    assertEquals(2.5, result1);

    }

    double result2=calculate.divide(0, 5);

    if(calculate.getIsError()){

    assertEquals(flag, true);

    }else{

    assertEquals(0, result2);

    }

    }

    我这里是这样解决的。看某一个ifelse即可。

    对于计算器来说,他应该是知道除法能不能被零,以及除完的后果的,所以我为Calculate多设置了一个变量 isError,是否出错。如果被零除,认为出错,进行setIsError操作。即先判定是否出错。是,则断言结果assertEquals(flag, true);成立。否则assertEquals(2.5, result1);得到对应结果。

    Bug2

     

    图一:一个好长的错误。

    这个当时看了好几遍,都没觉得有啥问题,害的我把数值全都变成整形,后来发现没问题,但总觉得不舒服,于是 看到了这里,然后两个数值相减小于一个很小的数,就认为他们相等,于是:

    public void testMinus(){

    double result2=calculate.minus(5,8.3);

    double expected=-3.3;

    if((expected-result2)<0.0000001){

    setIsEqual();

    }

    assertEquals(true, isEqual);

    }

    在乘法操作发现了这些:

     

    图二:1616.0可不相等。

    于是:

    public void testMultiple(){

    result=calculate.multiple(5, 3.2);

    assertEquals(16.0, result);

    }

    然后问题就基本解决完了。

    一个简单的加减乘除的测试就完成了。

    之后找到了,junit4这个jar包,通过配置只要把下载好的类库导入到文件中就可以了。(依然可以通过留邮箱的方式来获得这些开源文件,如果你找不到,或者不太愿意花点时间找的话。)

    这里就给出比较简单的加减乘除的实现方式:

    所有测试数据都是最简单的。没有做任何防护措施。

    https://github.com/bzdwdmzjsmff

    可以到这个地址下寻找相应源代码。

  • 相关阅读:
    android实现计时器(转)
    单例模式和静态类
    ADC电阻分压采集相关知识
    什么是中断?
    什么是时钟芯片 ?
    单片机与PLC的区别?
    FreeRTOS常用函数
    ADC采集电流相关知识
    CA和SSL证书介绍
    物联网设备的安全性预防(转)
  • 原文地址:https://www.cnblogs.com/letben/p/4537057.html
Copyright © 2020-2023  润新知