Android自动化测试框架和工具在四年多的发展日趋成熟。从五年前的第一代自动化架构演进到目前第四代(本系列讲座第7篇后将详细剖析第三代和第四代自动化框架)从以前最早谷歌推崇的monkey随机测试工具到点触流自动化工具monkeyrunner、MonkeyTalk;基于元素识别的自动化框架sikuli、seeTest、iTest、基于控件识别的Robotium、SL4A。这三种技术各有千秋,基本上现在做出的自动化框架都是整合或者修改了以上这些免费的自动化框架:比如中兴通讯的EasyTest3.0(目前应用层自动化测试的先驱和王者,基本上可以对80%以上用例实现自动化,有很多自家的核心技术,比如远程监控、一套脚本控制a b c三台机器三方通话,来回切换,不需要人工干预,智能设置断点,自动化下载版本、双台终端无线虚拟屏幕互相映射、脚本自动分配样机…难怪去年亏损28亿还没有倒下)、华为终端的自动化框架(据说是在风河公司自动化框架下自己在填坑,哎,世界500强的华为人才都死绝了吗?)、东舟软件自动化SmartRobot(从以前A模式和B模式打Patch包,到现在三种技术完美整合,有时候小公司还是很牛逼的)、印度博思软件的自动化框架(对monkeyrunner进行二次封装,形成自己脚本语言,没有什么创新)、美国风河公司的:windtest managerment(这个太强大了,从底层驱动、芯片的自动化,对硬解码、软解码自动化、包括上层的framework框架自动化,可以白盒自动化,也可以黑盒系统功能自动化)、包括目前出来的测试云Itestin、腾讯无线的QQdriver自动化框架。都逃不出以上三种核心技术(这三种核心技术介绍会在第4篇和第5篇详细剖析)

自动化测试细分为黑盒自动化测试和白盒自动化测试(第3篇会详细介绍白盒自动化测试):我们熟知的压力测试、可靠性测试、负载稳定性测试、功能性测试都属于黑盒测试范畴;而白盒一般是单元测试、接口测试、持续的集成测试(也叫冒烟测试)、某系性能测试都可以用白盒测试来进行。因为白盒测试要求测试工程师编码能力较强,很多中小型公司无法真正落实和开展,据笔者了解也只有百度、企鹅、阿里真正花精力去做,虽然前期投入较大,但是中后期才会日渐收益。

自动化测试难点不在于一个操作流程和过程(也就是脚本能够按照用例去运行),如果有一天你的自动化脚本能帮你解决手工问题,那么你仅仅是达到了第一代自动化水准。因为一个完整的自动化框架需要解决的问题至少有三:1.各种业务逻辑是否已正确实现2.各种业务约束是否正确实现3.各类特殊的数据是否能够正确处理。聪明的同事一看就知道,需要增加验证点,彻底解放人工去判断。是的。以上说的三个自动化框架已经包含了这些功能。所以说市面上目前框架至少是第二代自动化框架以上。但是实际上测试复杂度远远超乎想象,比如目前我们部门项目app测试需求有:

1)    内存是否泄漏?

2)    稳定性是否过关

3)    对系统和应用程序兼容性如何?

4)    多程序,多进程交是否正常?

5)    软件的容错机制如何?

6)    数据的完整性、唯一性、正确性是否已经通过测试?

7)    系统及数据的安全性是否已通过测试?

8)    软件的易用性是否满足用户的  需求…………………

第二代自动化框架很多手段显得力不从心,而且加上脚本移植问题、工作流程脚本共享、协同工作、生成报告等和工作流程相关的一系列问题,自动化框架部署和调整往往花时间比手工测试还要多一些,这些种种问题造成自动化框架无法普及和推广。

不管前途有多么险恶,道路多么曲折。引来无数高手和英雄共同模式和开展。建立适合自己公司的自动化框架。在众多比较成功的经典的自动化框架面前,我们惊叹人类无穷无尽的智慧和毅力。

在这些成功的自动化框架面前(第6讲会详细介绍经典的企业级自动化框架)。这些专家已经解决了智能手机80%以上的测试用例,尽管技术上已经解决,但是推广运用自动化代替人工很多公司转化测试用例不到30%(原因会在后续讲座剖析)。基本上做到的由:基本功能、菜单遍历、压力、性能、可靠性、并发测试、随机测试等。

这里分享一个用自动化测试取代人工的设想:

假设6个组,每个组5个人,每个组不同项目,每个项目得进行两个全面测试版本和三个回归测试版本。一个全面测试版本得7个工作日,一个回归测试版本5个工作日。

1.版本测试前每个组必须得做预测试(开发自测也算)

2.每个组的全面测试版本(前两个)必须得做压力测试:比如app压力、通话压力

3.每个组会测试出许许多多概率性问题(包括待跟踪),无法在本次版本中复现(操作次数大于30次才可能复现)

4.每个组无法每天晚上或者每个周末都加班

5.忘记抓log和找不到开发想要的路径和信息

总结:自动化测试的优点是把每天需要重复劳动的操作变成机器自动运行,把测试员从繁重劳动中解脱出来,去做一些经验性操作和复杂操作。

这次技术分享就到这里,请随时关注下一篇:android自动化测试预备知识---基于控件核心技术探讨。

附:

金阳光自动化资料+视频:
     1.官网:http://www.goldensunshine.cc/
     2.关注我新浪微博:金阳光woody
     3.百度搜:金阳光 测试,找到金阳光老师视频
     4.更多最新视频在qq群:212260449更新

5.资料csdn博客:http://blog.csdn.net/haorenmin2008

6.金阳光微信公众账号:搜索金阳光自动化

【金阳光测试】大话Android自动化测试--Android自动化系列(1)--金阳光于2013年4月份相关推荐

  1. [金阳光测试]IOS 自动化测试

    第一讲 一 自备能力 1.熟悉js脚本(必须) 2.会常用的linux命令(必须) 3.英文能力(必须) 4.熟悉java(必须) 5.会一点点shell和python 6.会一些oc和IOS开发 二 ...

  2. 【金阳光测试独家播出】-IOS专项测试体系预告-7.20号更新第一集

             You are my pretty sunshine,没有你的世界好好坏坏,只是无味空白--(PS: 前段时间电视剧<何以笙箫默>热播,无论是喜欢"高帅冷& ...

  3. Android 自动化测试Monkey、Monkeyrunner

    软件测试是软件产品开发过程中的重要环节,对于保重软件质量具有重要的意思.手动测试和自动化测试是软件测试的两个基本手段.本文主要介Android – 自动化测试 Android平台上提供了一些自动化测试 ...

  4. 【金阳光测试】基于控件核心技术探讨---Android自动化系列(2)---2013年5月

    第一讲分享了下安卓自动化一些概况和一些自动化框架现状和技术能够解决什么样的问题.这次课就深入到android世界里面.遨游.翱翔,深入了解自动化测试核心技术. 搞过编程开发的同学听到instrumen ...

  5. 大话Android自动化测试--金阳光自动化测试Android系列(1)--金阳光于2013年4月份

    本文转载来自:金阳光老师的csdn博客:http://blog.csdn.net/haorenmin2008 Android自动化测试框架和工具在四年多的发展日趋成熟.从五年前的第一代自动化架构演进到 ...

  6. 【金阳光测试】Android自动化 -- 学习历程:自动化预备知识上下

    章节:自动化基础篇--自动化预备知识上&&下 网易云课堂: 上:http://study.163.com/course/courseLearn.htm?courseId=712011# ...

  7. 【金阳光测试】Android自动化测试第一季第零讲--预备知识

    百度传课: http://www.chuanke.com/v1983382-106000-218422.html http://www.chuanke.com/v1983382-106000-2184 ...

  8. 【金阳光测试】Android自动化测试第一季第二讲--MonkeyRunner

    百度传课: http://www.chuanke.com/v1983382-106000-218426.html 1.  理论知识和脚本演示 地址:http://developer.android.c ...

  9. 【金阳光测试】Android自动化测试第一季第四讲—Robotium原理初步和录制器

    百度传课:http://www.chuanke.com/v1983382-106000-218428.html 一.基于控件 控件: 1.  Spinner 2.  TabHost 3.  Galle ...

最新文章

  1. 最新cenos执行service httpd restart 报错Failed to restart
  2. AI已来,更有未来!科大讯飞全球1024开发者节,这场AI盛会你也可以云参与
  3. 安装完matlab7.0但无法运行
  4. C++智能指针简单介绍
  5. 系统英伟达gpu驱动卸载_绕过CPU,英伟达让GPU直连存储设备
  6. android系统耗电量大待机,安卓手机耗电快有什么解决办法吗 安卓手机待机耗电量大怎么办...
  7. JWT.NET的使用
  8. 清华AI画虾师,想当现代齐白石
  9. 深入理解 OUI(Oracle Universal Installer)
  10. 多线程上下文切换优化与注意
  11. Internet Download Manager永久版功能强大的网络下载器
  12. STM32入门(一)
  13. Golang | flag pflag介绍
  14. 单位局域网连接的计算机太多,解决交换机端口不匹配导致局域网连接缓慢-ARP经验...
  15. 【外挂编程】外挂编程技术揭秘(一)
  16. 悟空云课堂|第四十七期:会话固定(CWE-384: Session Fixation)
  17. java计算机毕业设计基于微信小程序的校园外卖订餐系统APP
  18. 职业规划与发展部_3D成像原理
  19. 唐纳德和他的数学老师
  20. fft qt 代码_FFT最详细的源代码和解释

热门文章

  1. git查看所有远程分支
  2. 滑动拼图和文字点选两种类型的验证码
  3. 参悟spring中的StringUtils部分强大的功能
  4. 算法设计与分析——布隆过滤器(Bloom Filter)
  5. Mint建站指北其之终 终篇 吹响吧上低音号
  6. Spring boot security thymeleaf关于favicon.ico的404等问题
  7. 安卓SplashActivity刘海屏 全屏显示方法
  8. 来看阿迅为4412开发板独立文档和程序源码汇总目录
  9. MySQL 分库分表方案,总结的非常好!
  10. python日期时间函数详解