好的程序是测出来的。
测试的目的:尽可能多的测试出程序中的bug。
测试分为
黑盒测试:测试业务逻辑
白盒测试:测试逻辑方法。一般是写一段脚本代码,通过脚本代码去调用业务逻辑方法。
按照测试粒度分为:
方法测试:function test 测试某一个方法
单元测试:unit test 测试某一个类或者某一个单元的多个方法
集成测试:integration testv服务器和客户端联合调试,测试的是多个单元。
系统测试 system test 测试的是整个系统的功能,所有的单元一起测试
按照测试的暴力程度分为:
冒烟测试:smoke test 程序在高负荷的状态下运行,没有内存溢出,也没有出错,则表明程序正常。
压力测试:pressure test 模拟一定量的用户连接服务器,看服务器是否会宕机。
回归测试:是指修改了旧代码后,重新进行测试以确认修改没有引入新 的错误或导致其他代码产生错误。
单元测试
在Android中,通过集成AndroidTestCase类表名一个类是测试类。
在Android中,进行单元测试时,需要在清单文件中添加测试的指令集或者使用的测试类库。在application标签之前添加。
测试框架与其定义在哪里,跟其要测试那个项目是没有关系的。
测试方法是固定的公开的访问权限,没有返回值的。方法名一般以小写的test开头。其后面是要测试的方法的名字。
定义格式为public void test方法名(){}
在测试框架中测试某一个方法时,不要运行该项目,只运行该测试方法即可,但是必须要打开模拟器或者连接上真是手机。
在Android中也可以使用unit测试框架。
package com.test.unittestdemo.utils;
public class Utils {
public static int add(int a, int b){
return a + b;
}
}
package com.test.unittestdemo.test;
import com.test.unittestdemo.utils.Utils;
import android.test.AndroidTestCase;
public class TestCase extends AndroidTestCase {
public void test(){
int result = Utils.add(10, 5);
//断言:用来检测实际值与期望值是否一致,第一个值是期望值,第二个值是实际值
//没有返回值的方法,断言没有实际的意义
//没有返回值的方法,一般测试的是期业务逻辑是否正常
assertEquals(15, result);
}
}