1.什么是软件测试
软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。
2.测试分类
按照是否知道源代码
- 黑盒测试:不关心具体的逻辑代码,只测功能
- 白盒测试:测试逻辑代码
- 灰盒测试:介于黑盒和白盒之间
从软件开发的过程
- 单元测试:Unit Testing
- 集成测试:Integrated Testing
- 系统测试:System Testing
根据测试的次数
- 冒烟测试
- 压力测试 大量的并发操作
3.Junit单元测试
Junit是一个基于Java语言的单元测试框架。是白盒测试的一种技术。
1.想要使用Junit测试代码,必须先导入jar包,在待测试类中待测试代码上打上@Test,然后按万能键(Alt+Enter)进行导包
2.测试方法必须使用public void 进行修饰,不能带任何的参数
3.添加断言,预期值跟实际值相等,测试成功,不相等,报异常
4.@Before,@After 每个测试的方法都会被执行
5.@BeforeClass,@AfterClass 无论有多少要被测试的方法,之执行一次
代码:
//被测试类
public class Operation {
public int add(int x,int y){
int z = x+y;
return z;
}
public int sub(int x,int y){
int z = x-y;
return z;
}
}
//测试类
//测试类
public class OperationTest {
static Opration opration=null;
static{
opration = new Opration();
}
@Before//每个方法之前都要执行一次
public void before(){
System.out.println("before,只要有测试方法执行就执行一次");
}
@After//每个方法之后都要执行一次
public void after(){
System.out.println("after,只要有测试方法执行就执行一次");
}
@BeforeClass//不管有多少测试方法,执行一次
public void beforeClass(){
System.out.println("beforeClass,执行一次");
}
@AfterClass//不管有多少测试方法,执行一次
public void afterClass(){
System.out.println("afterClass,执行一次");
}
@Test
public void testadd(){
int z = opration.add(20,10);
System.out.println(z);
Assert.assertEquals(30,z);//如果预期值(参数1)与实际值(参数2)不相等,报异常
}
@Test
public void testsub(){
int z = opration.sub(20,14);
System.out.println(z);
Assert.assertEquals(6,z);
}
}
注意:
①测试方法上必须使用@Test进行修饰
②测试方法必须使用public void 进行修饰,不能带任何的参数
③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开
④测试类所在的包名应该和被测试类所在的包名保持一致
⑤测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
⑥测试类使用Test作为类名的后缀(不是必须)
⑦测试方法使用test作为方法名的前缀(不是必须)