51Testing软件测试论坛

标题: 【金阳光测试】大话Android自动化测试--Android自动化系列(1)--金阳光于2013年4月份 [打印本页]

作者: sun888    时间: 2014-8-19 18:41
标题: 【金阳光测试】大话Android自动化测试--Android自动化系列(1)--金阳光于2013年4月份
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自动化测试预备知识---基于控件核心技术探讨。
作者: msnshow    时间: 2014-8-23 15:57
似乎对于多次操作才会出现的问题帮助较大,但普通的功能测试要实现全自动化测试,成本也不低
作者: Miss_love    时间: 2014-8-27 08:25
了解了解
作者: dengnao    时间: 2014-9-19 14:30
支持金阳光测试
作者: 懵懂的女孩    时间: 2015-3-2 11:01
不错,学习了
作者: fengye1113    时间: 2015-11-18 15:04
学习了!谢谢分享
作者: zwp1987616    时间: 2022-7-19 19:08
看看链接




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2