一个和尚挑水喝,两个和尚抬水喝,三个和尚没水喝.....

测试转向

上一篇 / 下一篇  2014-06-09 10:57:01

   测试行业范围很广,目前接触的互联网测试及移动app测试;两者其实差别不大;
   测试的成长主要是找bug到定位bug;从手工到自动化;从重复劳动到简易执行一劳永逸的行行代码;
    互联网的测试目前测试就为:性能;安全;自动化等;起源早,发展快,目前使用也多,使用各种工具及扩展也较稳定;
    个人对于app测试接触时间不长,目前对于这方面除了了解接口测试外,其他方面一直都在摸索的怎样使用简单的方法来达到更高的覆盖率,目前app的自动化对于代码有一定要求;且需要源码。网上的各种工具讲的较为含糊,各种抓包工具运用运用不到极致;测试一直停留在初级的手工简单,靠bug的敏感度;

     下面贴了些目前网上较热的工具。monkey 已经在用,用的不深;其他方面浅尝而止;不知道那款适合无源代码,且迭代快的app自动化测试

  工具

  Android APIs提供的instrumentation类可以初始化Android应用程序代码,允许你监控应用程序的系统交互,配合KeyEvent、MotionEvent类,发送用户事件,进而实现GUI 层的自动化。测试程序需要继承ActivityInstrumentationTestCase2来实现自动化。

  为了方便编写自动化测试用例,我们需要对ActivityInstrumentationTestCase2进行扩展。业界也已经有一些成熟的自动化工具,诸如Robotium、Athrun、NativeDriver、MonkeyRunner等。我们需要针对自身产品的需求,从中选取一款合适的工具来实现自动化。对于移动客户端GUI的自动化而言,需要保证选取的工具有以下几点特性:

  1、工具开源,易于扩展。

  2、脚本编写简洁,维护成本低。

  3、满足客户端的自动化需求。

  4、便与校验结果的正确性。

  5、可用于持续集成。

  表1列出了这四款工具的区别:

表1 Android自动化工具对比

  MonkeyRunner通过编写Python脚本来实现自动化,结果的验证是通过截屏比对图片来实现,验证方式不够灵活,不建议采用。

  NativeDriver 是WebDriver 接口的一种实现,使用移动客户端原生UI而不是浏览器UI(Selenium)的自动化测试工具。类似于selenium RC的方式来运行测试程序,对于熟悉WebDriver的用户,上手会很快。从表1可以看出该工具也可以满足我们的自动化需求,但在调研初期,该工具提供的接口较少,没法满足测试需求,而今的完善程度也已经很高了。没有使用该工具可以认为是历史原因吧。

  Robotium被大家所熟知,基于instrumentation实现,提供的接口可以满足大部分自动化需求。但不支持webview,而有道词典的查词结果展示恰好使用的是webview组件,该模块就没有办法通过该工具来实现自动化。

  Athrun的实现和Robotium类似,提供的接口也很多,并且支持webview,也可实现持续集成。对于我们的产品而言,满足自动化的需求。由于工具开源,在今后需求不满足的时候我们也可以在该工具的基础上做一些封装。所以最终选择了Athrun来实现笔记和词典的GUI自动化。

  实例

  和写Android应用类似,首先要建立一个Android Test Project ,指定被测试的Android Project。如果没有应用源代码,也可以在测试程序的AndroidManifest.xml文件内,修改<instrumentation> 标签下targetPackage为我们要测试的应用程序的package。之后导入framework.jar,就可以开始编写自动化脚本了。图1是有道云笔记Android端登录模块的自动化用例:

图1 Android 自动化用例


TAG:

 

评分:0

我来说两句

wuhuivip

wuhuivip

用思想说话。

日历

« 2024-05-04  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 22672
  • 日志数: 21
  • 建立时间: 2011-10-08
  • 更新时间: 2018-06-28

RSS订阅

Open Toolbar