Android代码覆盖的黑盒测试

上一篇 / 下一篇  2012-09-13 09:15:53 / 个人分类:杂谈

*C_ ly j3V8O t4i4]$G0  目前还是有很多人在做android的黑盒或者灰盒测试,就我两年的经验实在捉襟见肘,不过还是想share一些东西出来给大家,共勉共勉。测试,功能测试很少人知道怎么才算是测试覆盖面全了呢?全功能覆盖?非也,代码全覆盖?非也。测试本身是无尽的,平时做的话还是自己要把握住优先级。所谓的全覆盖只是在理想世界存在的东西。这里要说的是某些公司或者leader真的需要黑盒测试给出代码覆盖率的话,也是有办法的。如下。51Testing软件测试网K oHABM#A3M

8cE:E$vFr@%bUe0  1、首先前提是你需要有被测产品的源码。(我表示这个必须)

~+Vr-F$^4_,[8q051Testing软件测试网oMz_lpk+J

  需要环境android SDK,ant1.8.2,jdk1.6,eclipse android环境  Android SDK安装完毕

9C%B?)L6l7z,k0

OV2Cqv.k:N_0  设置系统变量Path:sdk tools路径51Testing软件测试网-?y ?%L5R+V0UR\%s

51Testing软件测试网Pfjx I"u

  Ant1.8.2安装完毕之后设置系统变量  Ant:ant下面bin文件夹的路径  Java1.6安装好之后  JAVA_HOME: C:\Program Files\Java\……\

[6^z knd2t7xs;g.k051Testing软件测试网.Vtx1H)W,h

  2、使用eclipse check out最新的版本source出来。并且建立一个针对于软件主版本的测试工程出来。如何在eclipse里面建立测试工程,自行google。  建立好测试工程之后,粘贴如下代码:

s]#y:z(t0
public class (函数名)extends ActivityInstrumentationTestCase2<Activity class name>51Testing软件测试网h}zN6G3v
  {        private <Activity class name>  mActivity;       
{:CN/|HX2y0            private Instrumentation mInstrumentation;      51Testing软件测试网E \~ |+vJMF
      构造函数 {                super("testpackage name", Activity class name);        }    
qs8t6VG:Yd pu4H0      protected void setUp() throws Exception {            
:so d]d0       super.setUp();            
h:@+q3]ZR)]` U0       mInstrumentation = getInstrumentation();            51Testing软件测试网 pU1j{?{x
       mActivity = this.getActivity();        }     51Testing软件测试网.K3z8IK.kv ^;qn/Kj"D
       protected void tearDown() throws Exception {         
B!hS7y mP v UT&d0O0        super.tearDown();        }     51Testing软件测试网5D#^y4Y+~)_4tZ
     public void testdemo1() throws InterruptedException {          
0[3\)xCrgk:et1G0       Thread.sleep(30000);//程序执行的时间 单位毫秒        }}

#}B?;d^0]"IL0  注:如果被测对象是service的话,android也提供了测试service的类,extends相关的类即可。之后代码可能有少量改变,具体参照SDK Doc。51Testing软件测试网p1`/o'S#[kgJ

51Testing软件测试网BJs2U.vi

  3、接下来我们进行最主要的一步

;J2y(~Vp]3~1b051Testing软件测试网Bc:@v^1B

  A)创建我们程序的build.xmlcd <main project folder>android update project --path <目录>成功之后可以看到在主程序目录下面生成了一个build.xml。

JC EO|"[g8?051Testing软件测试网*]8OC*},`j6N6n!p

   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了。

+Hzc8Z@EW,N0

51Testing软件测试网Qor'Axk7?

b yX/D1^ \9l0  注:51Testing软件测试网9M]$dx"CjB,x

?(TroR$tK0  1)如果发现编译的过程当中出现@override error。那么要注意jdk版本是不是1.6,另外环境变量路径是否设置正确。51Testing软件测试网dr*@$z9qO"C;Pt

51Testing软件测试网o1G|1wM!e7P

  2)如果编译过程当中出现not found symbols,那么需要添加主程序使用的额外的lib,将lib放入被测试程序下面的libs目录下面即可

GAJPJh6D!Q0

O)~Y&S8j.`"W0  3)如果没有emma.jar,那么可以升级你的sdk。或者去下载http://developer.android.com/sdk/installing.html#sdkContents。51Testing软件测试网7VBZba4{4E6Vz mj

51Testing软件测试网%MAw,?1R yY

  4)关于report代码中会有三种颜色标识. 其中,绿色的行表示该行代码被完整的执行,红色部分表示该行代码根本没有被执行,而黄色的行表明该行代码部分被执行。黄色的行通常出现在单行代码包含分支的情况,例如上图中的 16 行就显示为黄色。

Y0wWt|0

TAG:

 

评分:0

我来说两句

Open Toolbar