- 对于一款软件来说测试也是很重要的,如果没有测试,用户在使用过程中出现死机崩溃,一般会立即删掉软件。这还是小事,有的bug会造成重大安全事故。
测试
按岗位划分
- 黑盒测试
- 测试逻辑业务(不懂代码,代码逻辑是否正常)
- 白盒测试
- 测试逻辑方法(懂代码,写脚本代码,比如写for循环,运行你的代码1000次,看是否崩溃,工资高)
- 黑盒测试
根据测试粒度
- 方法测试:function test(测试某个方法)
- 单元测试:unit test(测试一个单元的多个方法)
- 集成测试:integration test(测试多个单元)
- 系统测试:system test(整个系统最终测试,所有模块)
根据测试暴力程度
- 冒烟测试:smoke test(硬件测试,抗住一个高的负荷,不冒烟。软件测试,程序高负荷运作,程序没有崩溃,内存没有溢出)
- 压力测试:pressure test(服务器测试,比如游戏上线,有20万个玩家,模拟20万个用户,测试。某宝双11)
单元测试junit
- 单独测试某个方法。如果应用开发到90%了,如果加一个按钮并测试,可能需要点开很多页面,最终找到这个按钮测试,很麻烦。单元测试就是直接运行方法,不用启动整个应用
定义一个类继承AndroidTestCase,在类中定义方法,方法右键点击,如下图所示,即可测试该方法。非常方便。(测试前要定义指令集或类库)
在指定指令集时,targetPackage指定你要测试的应用的包名。(与application同级)
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.liwei.junit" ></instrumentation>
- 测试包名是必写项,测试不是说写到那个项目下,就是测试那个项目,测另一个项目也可以。
application下,定义使用的类库
<uses-library android:name="android.test.runner"></uses-library>
我们可以在测试类方法中直接引用其他类方法,运行查看结果。
断言的作用,检测运行结果和预期是否一致
assertEquals(expected,actual);//expected期望,actual真实值- 如果应用出现异常,会抛给测试框架