本文主要转自宋立新的CSDN博客:

http://blog.csdn.net/zjujoe/archive/2010/06/02/5641477.aspx

http://blog.csdn.net/zjujoe/archive/2010/06/23/5689324.aspx

前言:

现在Android开发非常红火Java环境下敏捷开发是不二选择。而敏捷开发都是测试驱动。所以,最近研究了一下Android下的各种自动化测试手段。本文重点在于面上的比较而非点上的细节。时间比较短,所以很可能理解很不充分。

测试手段1CTS

用来确保某设备符合Android兼容性规范。

CTS原来只对OHA联盟开放。最近Google把它Release出来了。似乎做过一些裁剪,比如针对Java虚拟机的测试,似乎被删除了,但我们一般用不着这么高深的。

针对每个版本,比如2.1,2.2,Goolge发布了一个兼容性规范,而CTS测试就是用来确保某手机或者模拟器符合该兼容性规范。

CTS测试基于Androidinstrumentation测试,其又基于JUnit测试。说白了,CTS就是一堆单元测试用例。这也是Java语言的擅长部分。

2.1模拟器上试验了一下,有少数没有通过。

目前CTS主要包括功能方面的测试,有少数的性能方面的测试。性能测试未来会越来越多。

总的来说,CTSWMLTK测试还是弱了一些,毕竟还年轻。它只包括自动化测试,目的主要是保证API的兼容性。由于基于单元测试CTS本身不能用于测试多应用交互的情况。

对我们的帮助:

1)应用程序的开发者可以开发出自己应用的单元测试,并将其加入CTS测试集。

2)设备制造商可以通过周期性运行CTS测试,确保没有对Android伤筋动骨。

测试手段2Monkey

猴子测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等。看手机多长时间会出异常。

可以设置让Monkey只测试某个应用,从而辅助应用程序的开发。

对我们的帮助:

1)应用程序的开发者可以测试自己应用的鲁棒性。

2)设备制造商可以使用猴子对自己的测试施行压力测试。看设备能坚持多久。

猴子测试即可以针对全局,也可以正对某个局部(某个Category,package等等)。

执行简单,效果明显。

测试手段3:ASE

ASE意思为Android脚本环境,即我们可以通过脚本(比如Python)调用Android的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。

个人觉得这对复现某些偶发故障非常有帮忙。

目前ASE还处于它的成长期,希望它不断成熟,为开发者提供更多便利。

我们可以扩充它的APIJava部分),并用python脚本调用这些API,从而实现丰富的测试功能。

用于API部分可以访问到Android全部API,python又能灵活部署测试,所以ASE的扩展性非常好。

详细介绍请访问:尝试AndroidScriptingEnvironment之一http://blog.csdn.net/zjujoe/archive/2010/06/09/5657868.aspx

尝试AndroidScriptingEnvironment之二http://blog.csdn.net/zjujoe/archive/2010/06/09/5659253.aspx

尝试AndroidScriptingEnvironment之三http://blog.csdn.net/zjujoe/archive/2010/06/18/5677787.aspx

尝试AndroidScriptingEnvironment之四http://blog.csdn.net/zjujoe/archive/2010/06/22/5687206.aspx

测试手段4:Robotium

该工具用于黑盒的自动化测试。可以在有源码或者只有APK的情况下对目标应用进行测试。

Robotimu提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text等等。

远方的blog上有许多Robotium介绍:Robotium-Android自动化测试工具http://hi.baidu.com/maguowei/blog/item/9d438410def7850c213f2ea3.html

关于Robotium的环境搭建与步骤:Robotium应用与Android自动化测试的研究http://www.cnmsdn.com/html/201101/1295345270ID9225.html

测试步骤介绍:简单介绍如何使用robotium进行自动化测试http://www.51testing.com/?uid-115892-action-viewspace-itemid-223476



测试手段5:单元测试

Android本身带有很多单元测试例子,我们可以按需要模仿它们,针对某个应用进行单元测试。

注意AndroidInstrument机制功能非常强大,可以测试UI

总结

一方面我们要充分利用Android提供的现成测试,密切关注其进展,另一方面,我们要学习好java/Python编程,必要时,自己开发自己的测试用例。

作为模块开发者,一定要写自己的单元测试,一方面可以保证自己的代码没有缺陷,另一方面,也为系统级测试提供素材。

当然,自动化测试关键还在于意识,创意比实现更重要。

对于CTS/Monkey,我们不需要开发,只要执行测试就可以了。

对于ASE,我们可以扩充它的现有API(Java),Python调用这些API实现丰富的测试功能。

Robotium模仿普通用户行为,可以试着把一些原来由测试工程师做的测试变成Robotium自动化实现。

———————————————————————————————————————————————————————————

测试手段6Monkeyrunner工具

monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。

Android自动测试之monkeyrunner工具http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980086.html

Monkeyrunner使用说明http://article.yeeyan.org/view/37503/164523

测试手段7QTP插件SeeTest

SeeTest基于图像识别的自动化测试工具,工具对中文支持不是很好。这个要花钱买的,试用期14天。官网上说手机一连上就可以在seetest看到屏幕截图,并且提取图形元素,用于编写脚本但是奇怪我的手机一操作,就不能再继续运行下去了,试过其他也不行,不知道有没有用过此工具的TX分享下经验。

http://www.advancedqtp.com/knowledge-base/articles/environment-techniques-id15/mobile-id777/test-android-with-qtp/


测试手段8Autoandroid

Autoandroid基于androidjunit编写的测试框架功能强大可以完成applicationtest。

Android + Selenium测试工具 = Positron用于集成测试和功能测试,Positron 结合了Android-Ant(如下图)和Eclipse。


http://code.google.com/p/autoandroid/

Selenium工具介绍http://www.ibm.com/developerworks/cn/java/wa-selenium-ajax/

更多相关文章

  1. tcping测试服务器TCP端口
  2. Android(安卓)2.3 CTS测试修改测试结果和调试方法
  3. Android(安卓)Weekly - 第 183 期
  4. 测试为Android模拟器创建和管理sdcard image文件
  5. Android(安卓)应用开发稳定性测试之 StrictMode
  6. android 自动化测试之MonkeyRunner学习(二)
  7. 【Mood-12】Android开发相关书籍推荐
  8. android 设备同时安装测试包和正式包
  9. android的重力感应测试

随机推荐

  1. android 抽奖盘动画 自定义View
  2. android dpi换算以及常用分辨率列表
  3. Android邮件地址正则表达式
  4. Android之水平ProgressBar多彩背景颜色
  5. android 获取农历日期和天干、地支
  6. Android显示网络图片相关实现方法浅谈
  7. Android(安卓)O 去掉Launcher3 背景阴影
  8. Android开场透明度渐变动画
  9. android 网络判断
  10. Android(安卓)屏幕滑动事件