一一、Android测试分类
1、依据是否知道源码
2、依据测试的粒度(测试的程度)
3、依据测试暴力程度
4、适配测试
1、依据是否知道源码:
·黑盒:不知道源码,只知道功能,依据功能进行测试
·白盒:知道源码,依据代码的逻辑编程测试
2、依据测试的粒度(测试的程度)
·方法测试:只测试单个方法是否有用、成功
·单元测试:封装了Junit 单元测试。
·集成测试:将单元测试的单元集成在一起,然后再进行粒度较大的测试( * 集成测试用于测试组件联合起来运行的情况。即经过单元测试的独立组件现在集成在一起,进行较大粒度的测)
·系统测试: 系统作为一个整体测试,测试各个组件间的交互,测试软件和硬件。
3、依据测试暴力程度
·压力测试:服务端,单位时间内,访问次数、点击次数,例如,写的一个Android工程,需要测试是否有BUG,需要点击每一个按钮,测试每一个是否成功。如果人为的话,点击几十次还行,当工程较大时,点击几千次或几万次就有些显得不现实了,为了解决这种事情,提供了以下解决方案
monkey测试(压力测试、功能测试):请一个猴子来帮忙点击
第一步:需要使用adb,Linux命令来调用,所以首先配置环境变量,使之能在cmd中直接使用Linux命令。
adb 要配置环境变量:在环境变量中配置:SDK中platform-tools的路径
下图就是我的platform-tools的路径,
![图片](https://i-blog.csdnimg.cn/blog_migrate/3024d0e74f21ef2dafdf86175584fa2f.png)
配置完成后,在cmd中输入adb,出现一大堆东西。就说明配置成功了。
![图片](https://i-blog.csdnimg.cn/blog_migrate/819f7e4bcfccdc0543097f05658dcab6.png)
第二步:进入到Linux shell环境中(Linux shell 是什么? 就相当于Windows cmd一样)
命令: adb shell
![图片](https://i-blog.csdnimg.cn/blog_migrate/959ba5726ac4478e4fd8e2f92e71e7cd.png)
第三步: # : moneky -p <包名> count 什么意思呢?
例如: money -p cn.itcast.weixin 1000 --- cn.itcast.weixin 为你需要测试的包名,1000为点击次数。
·冒烟测试:对于硬件而言的测试。比如一直使用手机,手机会发热,发热到一定程度,会爆炸。
4、适配测试:
· 分辨率测试 : 一个Android工程在480*480的屏幕中显示是这个样子,在高于该分辨率的屏幕下将会有所不同,所以需要Weight(权重)的使用。
·手机系统版本的测试
·不同手机(android 二次开发)的测试
重点介绍一下:
Android粒度测试中的单元测试(Junit): - android 单元测试 很好的封装了 Junit框架 ,是对业务方法的测试 分为两种情况:
单元测试的实现步骤:
1. 准备业务类,编写测试类,继承AndroidTestCast,编写测试方法
![图片](https://i-blog.csdnimg.cn/blog_migrate/3bf69326bd795662ab185ae6d0150614.png)
要测试的方法
![图片](https://i-blog.csdnimg.cn/blog_migrate/7c2bd8cdd0f77332d9e9ee063f84d11d.png)
2. 在AndroidManifest.xml application节点中添加测试类库
<uses-library android:name ="android.test.runner"/>
3. 在AndroidManifest.xml 设置测试环境
<instrumenttation/> 中targetPackage这个不能少,且只能写一个包。要被测试的包。
- 状态:
1. 绿条 :测试成功
2. 红条
- 蓝叉 :期望值与实际值不匹配,可能是业务逻辑写错了
![图片](https://i-blog.csdnimg.cn/blog_migrate/a3794708cb41aa3dc2dde77f7d834e0c.png)
- 红叉 : 运行中有异常
3. 断言 取得if else
expected:期望的值
actual:实际的值
assertEquals(expected, actual);
4. 获取上下文 getContext
getContext();
- 单独创建一个用于做测试的项目 android test project
1、File--other-- Android Test Project
![图片](https://i-blog.csdnimg.cn/blog_migrate/47419d69a756c31a8307d944bc427ae4.png)
2、Project Name
![图片](https://i-blog.csdnimg.cn/blog_migrate/6fedef1527085d7ceae2b799d8f0a3d9.png)
3、选择要被测试的项目名称
![图片](https://i-blog.csdnimg.cn/blog_migrate/d23c8e39e52f6ec03a9c05317dcc440d.png)
4、选择版本,点击finish
![图片](https://i-blog.csdnimg.cn/blog_migrate/c1d34e1eb1bdc1557b5c4ee777d71135.png)
5、原本com.wuhao.testandroid下没有东西,自己创建一个测试类Test1.java,
![图片](https://i-blog.csdnimg.cn/blog_migrate/efe98c723de38aa6c97ceecc8edffdee.png)
测试类内容,跟上面的一样
![图片](https://i-blog.csdnimg.cn/blog_migrate/8e8759d0b0617ed8fbef558efc270e73.png)
优点:此方法的优点在于不用动要被测试的源代码,并且不用在AndroidManifest.xml配置东西,系统已经完成了此工作。
1、依据是否知道源码
2、依据测试的粒度(测试的程度)
3、依据测试暴力程度
4、适配测试
1、依据是否知道源码:
·黑盒:不知道源码,只知道功能,依据功能进行测试
·白盒:知道源码,依据代码的逻辑编程测试
2、依据测试的粒度(测试的程度)
·方法测试:只测试单个方法是否有用、成功
·单元测试:封装了Junit 单元测试。
·集成测试:将单元测试的单元集成在一起,然后再进行粒度较大的测试( * 集成测试用于测试组件联合起来运行的情况。即经过单元测试的独立组件现在集成在一起,进行较大粒度的测)
·系统测试: 系统作为一个整体测试,测试各个组件间的交互,测试软件和硬件。
3、依据测试暴力程度
·压力测试:服务端,单位时间内,访问次数、点击次数,例如,写的一个Android工程,需要测试是否有BUG,需要点击每一个按钮,测试每一个是否成功。如果人为的话,点击几十次还行,当工程较大时,点击几千次或几万次就有些显得不现实了,为了解决这种事情,提供了以下解决方案
monkey测试(压力测试、功能测试):请一个猴子来帮忙点击
第一步:需要使用adb,Linux命令来调用,所以首先配置环境变量,使之能在cmd中直接使用Linux命令。
adb 要配置环境变量:在环境变量中配置:SDK中platform-tools的路径
下图就是我的platform-tools的路径,
![图片](https://i-blog.csdnimg.cn/blog_migrate/3024d0e74f21ef2dafdf86175584fa2f.png)
配置完成后,在cmd中输入adb,出现一大堆东西。就说明配置成功了。
![图片](https://i-blog.csdnimg.cn/blog_migrate/819f7e4bcfccdc0543097f05658dcab6.png)
第二步:进入到Linux shell环境中(Linux shell 是什么? 就相当于Windows cmd一样)
命令: adb shell
![图片](https://i-blog.csdnimg.cn/blog_migrate/959ba5726ac4478e4fd8e2f92e71e7cd.png)
第三步: # : moneky -p <包名> count 什么意思呢?
例如: money -p cn.itcast.weixin 1000 --- cn.itcast.weixin 为你需要测试的包名,1000为点击次数。
·冒烟测试:对于硬件而言的测试。比如一直使用手机,手机会发热,发热到一定程度,会爆炸。
4、适配测试:
· 分辨率测试 : 一个Android工程在480*480的屏幕中显示是这个样子,在高于该分辨率的屏幕下将会有所不同,所以需要Weight(权重)的使用。
·手机系统版本的测试
·不同手机(android 二次开发)的测试
重点介绍一下:
Android粒度测试中的单元测试(Junit): - android 单元测试 很好的封装了 Junit框架 ,是对业务方法的测试 分为两种情况:
单元测试的实现步骤:
1. 准备业务类,编写测试类,继承AndroidTestCast,编写测试方法
![图片](https://i-blog.csdnimg.cn/blog_migrate/3bf69326bd795662ab185ae6d0150614.png)
要测试的方法
![图片](https://i-blog.csdnimg.cn/blog_migrate/7c2bd8cdd0f77332d9e9ee063f84d11d.png)
2. 在AndroidManifest.xml application节点中添加测试类库
<uses-library android:name ="android.test.runner"/>
![图片](https://i-blog.csdnimg.cn/blog_migrate/84166a6646ce1d76b31aeea138b4a6b5.png)
3. 在AndroidManifest.xml 设置测试环境
<instrumenttation/> 中targetPackage这个不能少,且只能写一个包。要被测试的包。
![图片](https://i-blog.csdnimg.cn/blog_migrate/d4e614d1d03a3f47e2dd6ce0061d3255.png)
1. 绿条 :测试成功
2. 红条
- 蓝叉 :期望值与实际值不匹配,可能是业务逻辑写错了
![图片](https://i-blog.csdnimg.cn/blog_migrate/a3794708cb41aa3dc2dde77f7d834e0c.png)
- 红叉 : 运行中有异常
![图片](https://i-blog.csdnimg.cn/blog_migrate/3e39c517b98c517f4e12007c1f307a13.png)
3. 断言 取得if else
expected:期望的值
actual:实际的值
assertEquals(expected, actual);
4. 获取上下文 getContext
getContext();
- 单独创建一个用于做测试的项目 android test project
1、File--other-- Android Test Project
![图片](https://i-blog.csdnimg.cn/blog_migrate/47419d69a756c31a8307d944bc427ae4.png)
2、Project Name
![图片](https://i-blog.csdnimg.cn/blog_migrate/6fedef1527085d7ceae2b799d8f0a3d9.png)
3、选择要被测试的项目名称
![图片](https://i-blog.csdnimg.cn/blog_migrate/d23c8e39e52f6ec03a9c05317dcc440d.png)
4、选择版本,点击finish
![图片](https://i-blog.csdnimg.cn/blog_migrate/c1d34e1eb1bdc1557b5c4ee777d71135.png)
5、原本com.wuhao.testandroid下没有东西,自己创建一个测试类Test1.java,
![图片](https://i-blog.csdnimg.cn/blog_migrate/efe98c723de38aa6c97ceecc8edffdee.png)
测试类内容,跟上面的一样
![图片](https://i-blog.csdnimg.cn/blog_migrate/8e8759d0b0617ed8fbef558efc270e73.png)
优点:此方法的优点在于不用动要被测试的源代码,并且不用在AndroidManifest.xml配置东西,系统已经完成了此工作。