Android代码覆盖的黑盒测试
目前还是有很多人在做android的黑盒或者灰盒测试,就我两年的经验实在捉襟见肘,不过还是想share一些东西出来给大家,共勉共勉。测试,功能测试很少人知道怎么才算是测试覆盖面全了呢?全功能覆盖?非也,代码全覆盖?非也。测试本身是无尽的,平时做的话还是自己要把握住优先级。所谓的全覆盖只是在理想世界存在的东西。这里要说的是某些公司或者leader真的需要黑盒测试给出代码覆盖率的话,也是有办法的。如下。
1、首先前提是你需要有被测产品的源码。(我表示这个必须)
需要环境android SDK,ant1.8.2,jdk1.6,eclipse android环境 Android SDK安装完毕
设置系统变量Path:sdk tools路径
Ant1.8.2安装完毕之后设置系统变量 Ant:ant下面bin文件夹的路径 Java1.6安装好之后 JAVA_HOME: C:\Program Files\Java\……\
2、使用eclipse check out最新的版本source出来。并且建立一个针对于软件主版本的测试工程出来。如何在eclipse里面建立测试工程,自行google。 建立好测试工程之后,粘贴如下代码:
public class (函数名)extends ActivityInstrumentationTestCase2 Activity class name{ private Activity class name mActivity;
private Instrumentation mInstrumentation;
构造函数 { super("test package name", Activity class name); }
protected void setUp() throws Exception {
super.setUp();
mInstrumentation = getInstrumentation();
mActivity = this.getActivity(); }
protected void tearDown() throws Exception {
super.tearDown(); }
public void testdemo1() throws InterruptedException {
Thread.sleep(30000);//程序执行的时间 单位毫秒 }}
注:如果被测对象是service的话,android也提供了测试service的类,extends相关的类即可。之后代码可能有少量改变,具体参照SDK Doc。
3、接下来我们进行最主要的一步
A)创建我们程序的build.xmlcd main project folder android update project --path 目录 成功之后可以看到在主程序目录下面生成了一个build.xml。
B)为我们的测试程序创建build.xmlandroid update test-project -m full path to main project -p path to test project C.启动CoverageCd path to test project Ant coverage如果这步成功,我们可以在测试程序下面看到一个coverage的文件夹。里面就是一个非常强大的report了。
注:
1)如果发现编译的过程当中出现@override error。那么要注意jdk版本是不是1.6,另外环境变量路径是否设置正确。
2)如果编译过程当中出现not found symbols,那么需要添加主程序使用的额外的lib,将lib放入被测试程序下面的libs目录下面即可
3)如果没有emma.jar,那么可以升级你的sdk。或者去下载http://developer.android.com/sdk/installing.html#sdkContents。
4)关于report代码中会有三种颜色标识. 其中,绿色的行表示该行代码被完整的执行,红色部分表示该行代码根本没有被执行,而黄色的行表明该行代码部分被执行。黄色的行通常出现在单行代码包含分支的情况,例如上图中的 16 行就显示为黄色。
====================================分割线================================
最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
- [android]android自动化测试十一之代码覆盖率报告EMMA
- [Android Pro] 跨平台反编译工具 jadx (ubuntu亲测 可用)
- [Android Pro] Android打包一个Apk后,如何查看它的VersionCode、VersionName 等等。
- 【黑马Android】(02)短信发送器/布局演示/android下单位/android下Junit/保存数据/android下权限/xml解析和序列化
- JAVA Eclipse如何开发Android的多页面程序
- Appium移动自动化测试(三)--安装Android模拟器
- Android Studio-解决Fetching android sdk component information加载过久问题
- android-studio安装过程详解
- Android--获取系统时间的几种方式
- 【VLC-Android】Mac下编译vlc-android
- 熬夜再战Android从青铜到王者-聊聊自动化测试真经
- Android【报错】java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Bu
- Android kotlin 从入门到进阶系列讲解(入门篇)SQLite数据库存储
- 【Android 安装包优化】WebP 应用 ( 4.0 以下兼容 WebP | Android Studio 中使用 libwebp.so 库向下兼容版本 | libwebp 库测试可用性 )
- 【Android 安全】DEX 加密 ( 代理 Application 开发 | 加载 dex 文件 | 将系统的 dexElements 与 应用的 dexElements 合并 | 替换操作 )
- 【Android 电量优化】电量优化 ( 耗电量测试 | Battery Historian 简介 | apt 源更新 | Docker 安装 | Battery Historian 安装 )
- ANDROID 开发,安装离线安装包的下载地址及安装方法。
- Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)
- Android 使用 DownloadManager 管理系统下载任务的方法,android管理系统
- Android NuPlayer播放框架
- Android应用自动更新功能的实现!
- monkey测试===Android测试工具Monkey用法简介(转载)
- Android Studio动态调试第三方APK
- 如何解决Android Studio的import android.support.v7.widget.RecyclerView的RecyclerView标红问题
- Android Device Monitor中File Explorer标签中Data文件夹不能打开