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

 

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

你可能感兴趣的:(the third assignment of software testing)