白盒与黑盒测试
百科定义—
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
白盒测试的测试方法中运用最为广泛的是基本路径测试法。
说白了就是程序的作者或者测试员将程序拆分层一个一个小块进行功能测试
但是穷举路径测试并不能完全检查出程序是否包含错误,因为一些错误可能检测不出来;
1,穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。
2,穷举路径测试不可能查出程序因为遗漏路径而出错。
3,穷举路径测试发现不了一些与数据相关的错误。
源代码-----
public class NUM {
public int add(int a,int b){
return a+b;
}
public int sub(int a,int b){return a-b;}
}
测试代码----
import org.junit.Assert;
import org.junit.Test;
/**
* @author : Gavin
* @date: 2021/8/23 - 08 - 23 - 19:13
* @Description: com.gavin.JunitTest
* @version: 1.0
*/
public class NUMtest {
@Test
public void testadd(){
System.out.println("加法测试开始");
NUM num= new NUM();
int add = num.add(10, 20);
//System.out.println(add);
//加入断言
Assert.assertEquals(40,add);
}
@Test
public void testSub(){
System.out.println("减法测试开始");
System.out.println(new NUM().sub(100,20));
}
}
其中主要涉及到了注解—@Test,以及断言的使用
建立测试类的名称最好时见名知意,测试类中的方法一般习惯与无返回值,无参的方式;
如果是绿色的则表示当前测试能过够顺利执行,但并不代表一定没有错误;
如果时红色的说明当前测试有错误;
一般不会在测试时直接用类似于System.out.println(add)来输出结果,而是用断言的方式来检测期望值与实际值之间的差别;
黑盒测试—百科定义—
黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的.
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TBMTtest {
@Before
public void xc1(){
System.out.println("黑盒测试开始");
}
@After
public void xc2(){
System.out.println("黑盒测试结束");
}
@Test
public void Thread01Test(){
new CountDownLatchTest01().func();
}
}
黑盒测试----是作为使用者的角度来考虑的,只要满足了我想需要的功能就可以了;
编写好的单元测试特点:
1,知道输入和预期输入值;
2,正推和反推两个测试用例;