一、概述
软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。
二、测试分类
1、按照是否知道源代码
- 黑盒测试:不关心具体的逻辑代码,只测功能
- 白盒测试:测试逻辑代码
- 灰盒测试:介于黑盒和白盒之间
2、从软件开发的过程
- 单元测试:Unit Testing
- 集成测试:Integrated Testing
- 系统测试:System Testing
3、根据测试的次数
- 冒烟测试
- 压力测试
三、Junit单元测试
Junit是一个基于Java语言的单元测试框架。是白盒测试的一种技术。
1、注意事项【重点】
- 测试方法上必须使用@Test进行修饰
- 测试方法必须使用public void 进行修饰,不能带任何的参数
- 新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开
- 测试类所在的包名应该和被测试类所在的包名保持一致,末尾【.test】
- 测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
- 测试类使用Test作为类名的后缀(不是必须)
- 测试方法使用test作为方法名的前缀(不是必须)
2、一般测试TEST注解
public class UserDaoTest {
@Test
public void testAdd() {
UserDao userDao = new UserDao();
User user = new User(10, "嬴政", "12121", "12512362@163.com", "137707108084");
userDao.add(user);
}
}
光标在哪个方法,就测试执行哪个方法,如果要测试所有方法,则需要进行先后顺序处理,进行如下的多项目测试。
3、多项目测试
关键注解:@BeforeClass、@AfterClass、@Before、@After
public class OperationTest {
/**
* 声明Operation类型,在方法中创建对象
*/
Operation operation;
//在所有方法执行前执行,只执行一次
@BeforeClass
public static void before() {
System.out.println("执行所有的测试方法执行之前,只执行一次");
}
//在所有方法执行后执行,只执行一次
@AfterClass
public static void after() {
System.out.println("执行所有的测试方法执行之后,只执行一次");
}
//第一个方法执行前执行,创建对象
//当第一个方法执行完After,如何还有方法,返回继续指向Before
@Before
public void methodBefore(){
operation = new Operation();
System.out.println("before");
}
//第一个方法执行后执行,释放对象
@After
public void methodAfter(){
System.out.println("after");
operation = null;
}
@Test
public void testAdd() {
int add = operation.add(10, 20);
System.out.println(add);
//断言、判断,期望值和实际值对比,不一致抛出异常,说明代码有问题
Assert.assertEquals(30, add);
}
//测试方法必须有注解,必须是public void,无参
@Test
public void testSub() {
int sub = operation.sub(10, 20);
System.out.println(sub);
Assert.assertEquals(-10, sub);
}
}
//打印结果:
执行所有的测试方法执行之前,只执行一次
before
30
after
before
-10
after
执行所有的测试方法执行之后,只执行一次
来源:https://blog.csdn.net/qq_45337431/article/details/100084234