是否知道程序的源代码
白盒测试---根据源代码写测试方法
黑盒测试---不知道里面的结构,业务场景 1
根据程序测试的精细度(粒度)
单元测试 unit test 测试某个方法,模块
方法测试 function test 测试某个方法
集成测试 intergation test
压力测试 pressure test 单位时间大量重复操作
冒烟测试 smoke test
monkey -p com.itheima.co 100
敏捷开发
一边开发 一边测试
要继承android下的类AndroidTestCase
在android下的应用程序里面所有的字节码都是运行在手机的虚拟机里面的daivik.
向测试框架抛出异常
程序实际上是运行在android手机里面的虚拟机里面的
assertEquals(8,result);
对应用进行单元测试
第一步:首先在AndroidManifest.xml中加入下面红色代码:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.itcast.action“ android:versionCode="1“ android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
....
</application>
<uses-sdk android:minSdkVersion="6" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="cn.itcast.action" android:label="Tests for My App" />
</manifest>
上面targetPackage指定的包要和应用的package相同。
第二步:编写单元测试代码(选择要测试的方法,右键点击“Run As”--“Android Junit Test” ):
import android.test.AndroidTestCase;
import android.util.Log;
public class XMLTest extends AndroidTestCase {
public void testSomething() throws Throwable {
Assert.assertTrue(1 + 1 == 3);
}
}
技巧,可以创建一个android Test project项目,在清单文件中拷贝这些信息
加上注解@Smoke,方法可以不停的执行
一般项目测试会占项目的1/4或1/5的时间
断言边界 特殊情况
setup()方法 测试框架,初始化工作 比如好几个方法都用的对象可以在里面初始化
tearDown()测试框架,执行完毕,扫尾工作