在软件测试中,Failure 与 Error这两个词是经常出现的。甚至,我们会把这两个词混为一谈,即都是程序出现了错误。但是,二者是不一样的。
- Error :是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中隐藏的 bug。可以通俗的认为是代码语法或逻辑存在错误。
package 测试框架;
import junit.framework.*;
public class JavaTest extends TestCase {
protected int value1,value2;
protected void setUp() {
value1=2;
value2=7;
}
public void testAdd() {
double result=value+value2; // error ,因为没有定义value这个变量
assertTrue(result==6);
}
}
- Failure :一般是由于测试结果和预期结果不一致引发的,表示测试的这个点发现了问题。可以认为是代码语法上完全正确,但是结果不对。
package 测试框架;
import junit.framework.*;
public class JavaTest extends TestCase {
protected int value1,value2;
protected void setUp() {
value1=2;
value2=7;
}
public void testAdd() {
double result=value1+value2;
assertTrue(result==6); //Failure,代码语法上正确,但是结果不对
}
}
由上述两个示例可见,error的产生要在failure之前。