国内哪些移动 app 开发团队做了app自动化测试试

移动App测试浅析
1. 移动App测试的现状及其挑战
移动互联网走到今天,App寡头化的趋势已经越来越明显,同时用户的口味越来越高,这对移动App开发者提出了更高的要求。几年前可能你有一个创意,随便做一个App,就算功能简单,Bug很多,也会有不少用户会使用,因为当时的选择少。而现在,如果App的质量不过关,体验不好,还经常崩溃闪退的话,会被好不容易获得的用户立刻卸载掉。这就要求开发者对于App的测试越来越重视,而App的测试和传统测试相比,面临更多挑战:
App迭代速度快,测试时间少。
现在的App迭代速度非常快,通常一个月一个大版本,两周一个小版本,而开发人员水平参差不齐,基本上都是临近发布前才能提供可测试的版本,给测试人员留出的时间非常有限,这就直接导致了测试人员可能无法对App进行全面的测试,根本无法保证App的质量,所以我们经常看到很多App带着Bug就上线了。
App测试的准确性和问题追踪难以保证。
据统计,由于缺乏真实环境下的用户场景,App测试遗漏环节高达20-50%。由于测试人员本身不专业,同时缺乏通用的App测试工具,导致很多App发生了崩溃严重问题时,测试人员很难提供给开发人员精准的崩溃日志,让开发者无法精确定位问题和分析问题。
手机机型分裂越来越严重,App兼容问题突出。
目前安卓机型有几千款之多,加上各种操作系统版本、各种屏幕尺寸、各种厂家自定义ROM,给App带来了严重的兼容适配问题。而随着苹果发布新机的节奏在加快,以及iOS版本不断更新,iOS上的兼容适配问题也开始增多。App的测试人员没有时间,没有能力在所有机型上验证App是否可以正常运行,大多数情况只能挑几个手头能找到的机型做简单的验证测试,就草草进行发布上线,结果在最终用户手机上出现各种意想不到的适配问题。&
2. 移动App测试的几个阶段
如上图所示,移动App测试根据产品不同阶段分为以下几个阶段:
App代码开发完成后,会进入内测阶段,团队内部测试人员会进行功能验证,有能力的团队除了人工黑盒测试外,还会使用自动化工具进行集成测试。
功能验证通过后,可以引入真实用户进行体验测试,根据用户的真实反馈快速响应,迅速调整App的功能。
由于目前App在不同手机上可能存在严重的兼容适配问题,进行大版本迭代,或App底层框架有所调整时,需要进行兼容测试,确保App在绝大多数手机上能够正常运行。购买市面上所有手机来一个个进行测试,无论从时间上还是成本上来说,对普通开发者都是难以承受的,现在市面上已经有不少SAAS服务可以使用,如Testin提供的兼容测试服务。
真实环境的复杂,用户行为的不可预知,导致再完美的测试,也不能保证App没有Bug,所以App上线后的质量监控就尤为重要,这时就需要使用质量监控工具,第一时间掌握App在用户侧真实发生的各种崩溃闪退等问题。
接下来我们就以上不同阶段具体讲讲移动App测试都是怎么做的。
3. 不同于传统测试的App功能测试
3.1. 从传统到现在的用例测试
App功能测试一般是团队内部人员执行,通常进行的都是黑盒测试。目前研发团队逐渐通过执行用例测试的方式来完成App基本功能的测试。用例测试的意义在于使得测试有针对性和目标,测试点可以量化,测试行为可以控制。
App的用例测试是从传统软件测试继承下来,早期的测试用例通常比较简单和随意,只是对功能或使用场景做了简单的罗列,较少考虑功能的覆盖,颗粒度大小等问题。而现在的测试用例会越来越多的考虑测试覆盖率,缺陷的发现,和执行的效率等方面的影响。
具体的测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等,测试人员可以根据实际情况来量体裁衣。
App测试通常会进行以下几个必测项目:UI测试核对RP/效果图;功能测试核对需求文档编写测试用例覆盖全部的功能点,对照需求文档逐一完成验证。这类工作通常都是纯手工进行的,测试者需要维护好App的测试用例,随着App的功能迭代,不断更新App的测试用例,并定期进行全用例测试,保证用例覆盖度以确保App的每个功能点的正确运行。
3.2. 移动App的自动化测试
在App功能测试中,对于一些固定的用例执行,可以使用自动化测试工具,通过编写自动化测试脚本来执行,减少人员的重复劳动,提高整个测试的效率。
自动化测试分为ui自动化,接口自动化,性能自动化,安全自动化。从流程来说不搭配持续集成的话就不能称为全流程自动化,持续集成包括的不止是自动化测试,还包括环境部署和开发打包等环节。做自动化测试时,可能测试脚本可以做的很好,但是持续集成不是一个测试或者一个测试团队能做好的,需要一个有决策力的人推动才能完成。而目前国内App开发团队的领导人对移动App的自动化测试支持有限。
同时App由于迭代速度快,机型多,这就对测试脚本维护提出了很高的要求,又由于自动化测试脚本的代码覆盖度不够,所以即使有了自动化测试,人工参与的功能测试工作量依然很大,这也导致了目前国内App自动化测试整体程度不高,只有部分大厂才有能力简历App的自动化测试团队,而一般的中小开发团队,自动化测试能力基本为0。
目前市面的App自动化测试工具不多,主要是国外的一些自动化测试工具,下面是App自动化测试工具对比:
4. App开发者应如何开展内测
关于App测试,App开发者需要提前做计划,一个好的商业分析、清楚的目标用户群体以及大量的测试可以有效降低App&无人问津&和差评不断的几率。在把App正式发布到最终用户手上之前,开发者得尽可能保证它是完美没有瑕疵的。通常来说内测阶段分为几个环节:
开发团队内部流程测试
此阶段主要由开发人员来完成检查APP逻辑连贯性每个功能模块是否按照需求可以跑通,核心功能点能力是否实现。注重于测试软件的功能需求,功能不正确或遗漏;界面错误;输入和输出错误;数据库访问错误;性能错误;初始化和终止错误等。
测试人员介入测试环境测试
开发人员在完成内部逻辑验证后会搭建测试环境供测试者来在测试环境下完成内测。这个测试人员有可能是专职的测试者,也有些团队是动用公司的其他人力资源来完成,如产品经理和老板其他同事,不管是哪些人来完成测试,测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。
目标用户引入灰度测试
在开发团队和测试团队完成内部测试后,采用小范围用户测试的方式可以在最小的成本下验证App对目标用户的接受程度,需要做好用户反馈收集的渠道,调查问卷、App中加入吐槽反馈功能、用户交流群、都是常用的收集反馈的渠道。
移动App测试过程中,由于迭代速度快,App包更新频繁,开发人员和测试人员之间没有很好的工具进行App的传送。
此外在App测试中,提交Bug时截图上传比较麻烦,获取App日志需要专门工具,这些对于测试人员已经比较困难,对于引入的灰度测试用户更是难于登天。
Testin提供的专业的App内测工具:pre.im主要就是解决以上内测中问题:
只需一步上传,即可生成应用短地址,解决开发人员和测试人员之间传包的问题。
完善的版本记录,方便管理快速迭代的各种App版本。
强大的内测专用SDK,测试者不需要使用任何工具,只需要在出现Bug时摇一摇手机,即可自动完成Bug截屏,并读取当时App的运行Log、内存、CPU等信息,连同Bug截图和描述一同提交给开发者,帮助开发者更精准定位问题。
5. 发布后的App质量监控
真实环境的复杂,用户行为的不可预知,导致再完美的测试,也不能保证App没有Bug,所以App上线后的质量监控就尤为重要,这时就需要使用质量监控工具,第一时间掌握App在用户侧真实发生的各种崩溃闪退等问题。
对于开发者来讲,最头疼的问题就是App用户反馈自己手机上出现了崩溃,却始终无法提供具体的崩溃信息,结果开发者明知道问题存在,却只能眼睁睁看着用户流失。
大量的App花费了巨大的市场和研发资源投入,却在应用上线后&裸奔&,它意味着开发者不能第一时间发现应用在运行过程中出现的各类质量问题,如崩溃、闪退、内存泄露等问题,而此时用户却对这些不佳的产品体验深恶痛绝。
一个好消息是,目前市面上已经有不少专门解决质量监控的工具可以供开发者使用,如友盟就在其SDK中集成了错误捕捉的功能,而对崩溃定位要求较高的开发者也可以使用Testin的崩溃分析SDK,实时收集App在不同环境下的产品体验,从网络、版本、渠道、运营商、设备五个维度深入分析用户的使用情况,帮助开发者快速定位并解决崩溃、闪退、异常等问题,优化App性能,提高App的用户体验和质量,降低用户流失率。
Testin的崩溃分析SDK目前和Pre.im的内测SDK已经进行深度融合,开发者只需嵌入一个SDK,即可完成从内测阶段的问题收集到App发布后的质量监控,而这个SDK的接入成本较低,只需要修改一行代码,三分钟内完成嵌入。
移动App体验和质量要求越来越高的今天,希望开发者更加重视App的测试,提高程序员对测试的重视,将测试集成到整个开发流程中,同时多采用各类测试工具或服务,进一步提高开发效率和保证App质量。
把生命浪费在美好的事物上,而不是枯燥的测试。
【活动预告】&日,由CSDN主办的&&活动正式启动。近两年,开发工具及服务不断涌现,从云服务、即时通讯、安全到统计监测、人工智能、物联网平台等。CSDN将通过公开征集,并结合平台内用户数据采集分析,评选出CSDN 2015开发工具及服务年度大奖。赶快为你的开发工具与服务报名参与评选吧。更多详情,请关注。
作者简介:
徐琨,Testin云测总裁。80后,国内第一代移动互联网公司PICA创始成员,曾任PICA技术副总裁;后作为千万人在线的即时通信系统架构师,领导开发了移动社交平台移动139社区;2011年创办主打HTML5游戏的北京山水地信息有限公司,出品H5游戏《小鸟情人》,是中国H5手游领域探索的先行者;2014年加入Testin云测,历任CTO、总裁等职。徐琨毕业于长春理工大学,拥有计算机学士学位
顶&0&&&踩&0&
推荐阅读相关主题:&
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnew
阅读(...) 评论()相对于自动化测试工具QTP来说,selenium小巧、免费,而且兼容Google、FireFox、IE多种浏览器,越来越多的人开始...
自动化测试的不同之处就在于这些测试会由系统来帮你完成。一旦你创建了一组测试程序,当你修改了你的应用,你就可以用这组测试程序来检查你...
Postman测试管理的单位是测试集(`Collections`),运行测试的单位也是。an系列第五篇Postman以测试集或文件...
Android手机软件开发完成之后,怎么实现自动化测试来代替人工测试,从而大大的提高工作效率。下面就分享一下怎样通过Appium来...
手机自动化测试之小萝贝控机大师升级了实现了更多手机自动化测试的功能,如下:1.手机功能自动化测试:录制脚本,检查点时点击小萝贝控...
找到flex的sdk目录下的关于自动测试的文件编译配置里面编译完项目后,启动项目,一定要点测试,而不是启动在UFT里面新增一个...
每个不同的自动化测试都会对不同的测试自动化框架,android也会对应上相应自动化框架,web会对一种自动化框架的,那么ios的苹...
能使用seleniumIDE进行简单的测试之后,继续研究了seleniumRC进行测试。SeleniumRC表面看sele...
综上所述,Qtp自动化测试所需要的工具已经安装完毕.e7,检查浏览器版本是否为ie6和ie7.如果是ie8也可以有办法解决,但是这...
日常测试中,模拟现网环境大数据量测试是必不可缺的一个环节。作为测试人员往往需要制作大数据量的测试数据来满足测试要求。编写存储过程录...
顶级域名详情
Testin-你身边的测试专家
从零开始使用Xcode自动化测试
/content/15/606.shtml
IOS、Android自动化测试框架Appium概述
/article/56
iOS APP的自动化测试工具 有什么??_百度知道
/link?url=aegWrXsAvg7asQzX8FHG_JzWr2wt_uwubbe0W7izzK3Y24rHypNzilfS36vTbwR3DmWU6yWImuRJ5uzYeA4_iLDV5P7jVFrpOyuzYbw0Jym
手机app自动化测试_百度知道
/link?url=_Lg6mlviJT-5M7EztVeelBwVsVJY88aLC1WujN5v07IzvNtvR0qAS6_tE3no0swbHV__9fp68L_tQ1VamJuYx30QWNbXhFyn2Gpz-QFw-b3
iOS自动化测试文档_百度文库
/link?url=kfZaTVKkM9qSRLZPurtgYa-4xTBCC1EPPkgP4yGtJGO6CHLIzQ73HoqI0TwIHU1VgBGEcseTnpn_XQ9pWA5t7nLJX96AXDKNhkPUPHHrUBi
iOS开发教程:iOS UI自动化测试_图文_百度文库
/link?url=Xum1hcFrYyh1P8uT-tPWvycsgV8wUIVpG5UW7S2aprx1E_-yeMQ4PD1yym28wuXCKvmcQUvV8jYCBaO8jBDT7hGXRzpUmM_bFGGHeTPyjD7
软件iOS的自动化测试_图文_百度文库
/link?url=3Ec6ZcwNg9RaZR6h3WoO8BiTj7Utu-fy4nn8pX7xuh8xQQKby7bnCCFJsY0e2QRKRI97jbMDSMIbPmvWLYzqmFwbjEiAM0R-tRA3h9tQ-VW
Appium移动(iOS&Android)自动化测试实战Young_Appium移..._百度阅读
/ebook/59ebbf3ff90f76cf.html
手机客户端软件方面的性能自动化测试工具_百度知道
/link?url=hjVizLMXVt7n2JjFHHkgo2uowFvI3ACF4BmPUAFb3rD3qBpBpJvARomNT3A4rATtRwcR8Fl_QLXPJmB--RAkVMKKsqnosn28o0SALCvYnxu
如何使用UIAutomation进行iOS自动化测试_百度知道
/link?url=otfgNRgDE_8WYI7B9GCvpTxWl3Uf_kFAT0DtOiLzWeBkH6vNXz6B2aESnC7rR8cO58n8TftduLmJWUmgUSz_Lr0A7oiH0cheALUTVgENFk3
如何使用UIAutomation进行iOS自动化测试_百度知道
/link?url=ixZ9LJr8kEwWMEzB3GsrvQT-O9ZuZ4a3n9NbGjfIcjhxJsEPKz4tHrtCxzd4JCoTkwF_23lKYJProVlqjT1ErgChBGIhl2H15ZJnrtIrB1O
请问自动化测试android和iphone手机软件的工具是什么?..._百度知道
/link?url=eMgJYnxT9YLBLUcEGh4oPErDQ_c5CDpjswEhQX9prjCrlQ7sx3tLKJ3GH2Oo7n2g8oqcDBTXGjfljD9zpbteZK
如何使用UIAutomation进行iOS 自动化测试_百度知道
/link?url=teciYEsDjtz1EbRxBdMqoE_Uckd0WacDm_TEybJBaaCFBPN0qgJnOcrQyWqsX-EDnKapcGg94pFkZSnQz3MaeH63x9gc5wbbG_jvsGkpwda
如何使用UIAutomation进行iOS 自动化测试_百度知道
/link?url=_FYNp0bcWbbDTylUeTUUw7rob7atbN4RwHrs1H8J_gn-TLwbTilDmflHvIZ4MjJkvgj4FHOX3lUPxkxhvokDqUwu5Hxw5zipXsu4Wp3JAiS
豆瓣ios自动化测试实践和经验_图文_百度文库
/link?url=VS2UnQbVHrcdKgPgdjLv3Y4fAilnRNhPEEprlU1YgsXCprpPd35T0UOKyZuBEORGhh00HyI_1xHx6wvKkOPl7Oa1scwEa6fWfW2wU9L2kna
Xcode Server 实现 iOS 移动应用的自动化测试与集成_百度文库
/link?url=kaq6U8HzDN31iJPbW0fok8DI_tmeswYfBYEmFEtrXnvuhi0OQgDy8eyHRTvbBTY7dy15Cxd9ci2StOLyGSaCJDzpIG_5M3e5fix80aJIlIq
淘宝AndroidIOS自动化测试框架_百度文库
/link?url=nmLN7YjDeh8fAgS5KkOmN-s2LeB-wr-ZR_ctJB-jmo9fFeccJ5VYkQcuaMVq7gTQ5SLodeUTVlNq9l45mn9i2txn9b8ZreaN3LcwwIuFISq
UIAutomation---IOS自动化测试的工具 - iPhone手机开发..._红黑联盟
/kf/413.html
Appium框架-iOS原生app自动化测试 - 下载频道 - CSDN.NET
http://download.csdn.net/detail/jiayanni_btest/5818329
iTestin-iOS/Android移动App自动化测试工具
/iTestinsoft/
IOS自动化测试之UIAutomation学习 - 51Testing软件测试网
/html/44/n-844044.html
iTestin云测试工具|iTestin移动App自动化测试工具 v4..._非凡软件站
/soft/34857.html
Testin发布苹果iOS 7云端APP真机自动化测试 - 电科技 - 专注智能...
/archives/4220/
从0到1搭建移动App功能自动化测试平台(3):编写iOS自动化测试脚本
App测试之真机自动化测试[iOS及Android] _专业版_51CTO下载中心_...
/data/974779
专家答疑第10期:探讨Android与iOS应用自动化测试、集成问题_eoe...
/digi/1493674.html
从0到1搭建移动App功能自动化测试平台(2):操作iOS应用..._伯乐在线
如何使用UIAutomation进行iOS 自动化测试(Part I) - 明明 - 博客...
http://blog.csdn.net/a/article/details/8047142
最受欢迎的5款Android/iOS 自动化测试开源工具--麦子学院
/group/article/7581/
国内哪些移动 app 开发团队做了自动化测试?能否介绍一下具体的...
/question/
ios app 的 ui 真机自动化测试,一般会选择什么工具? - V2EX
Testin发布苹果iOS 7云端APP真机自动化测试_互联网_比特网
/185/.shtml
Testin发布iOS 7云端APP真机自动化测试-IT168 技术开发专区
/a32/.shtml
iTestin移动App自动化测试工具下载 v1.0 For iOS/Andro..._下载银行
/s/42988.htm
appecker 自动化测试框架 - 腾讯开源
/appecker.html
利用Selenium自动化测试android wap页 | Qtest技术空间–服务端...
/360qtest//%E5%88%A9%E7%94%A8selenium%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95android-wap%E9%A1%B5/
这些年用过的iOS测试框架 - 推酷
/articles/QNZJVre
App自动化测试工具(iTestin) V3.0.6 For iOS/Android 官方版
/downinfo/36084.html
iTestin云测试工具|iOS/Android自动化测试工具(iTestin)下载4.5 ...
/soft/47515.html
Appium+Robotframework实现iOS应用的自动化测试-1:Appium在OS X中...
http://www.51itong.net/appium-robotframework-ios-1-appium-os-x-11617.html
Testin-你身边的测试专家
IOS自动化测试第一季第三讲App编译和部署【金阳光测试-GSTes...
/show/wpRhI5eou7sQ3IkstpWvfg...html
如何通过自动化测试 应对App的频繁迭代 - CloudwiseAPM - Segment...
IOS自动化测试第一季第五讲Monkey测试(下)【金阳光测试-GSTest】
/w_19rs6x85ud.html
IOS使用MonkeyTalk自动化测试app的教程
iOS 自动化测试_BladeCoder_赵梦园_新浪博客
.cn/s/blog_dded.html
【腾讯开源】专访Appecker团队:应用于iOS App的功能测试-CSDN.NET
http://www.csdn.net/article//2825064
淘宝Athrun(TMTS)手机自动化测试框架 | DiggerPlus-一个有范儿的...
http://www.diggerplus.org/archives/2174
iOS自动化测试 - 简书
/p/59674af1aac2
iOS自动化测试解决方案[免费] - MBA智库文档
/view/a31daeb53aeab.html
相关关键词移动APP的自动化测试_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
移动APP的自动化测试
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢3151人阅读
测试(54)
&移动APP的UI自动化测试长久以来一直是一个难点,难点在于UI的”变”, 变化导致自动化用例的大量维护。从分层测试的角度,自动化测试应该逐层进行。最大量实现自动化测试的应该是单元测试,最容易实现也最容易在早期发现问题;其次是接口级测试,以验证逻辑为目的进行自动化,由于接口的相对稳定,自动化测试成本相对也可以接受;自动化成本最大的便是UI级自动化测试,然而UI界面是直接反馈给用户的效果展示,适度的尤其是BVT级的自动化测试也是非常必要的。本文通过分析几种自动化框架的异同,使测试人员在选择自动化框架时有所参考。
Android自动化框架
1. Instrumentation&
Instrumentaion 是Android自带的一个测试框架,是很多其它测试框架的基础,可以在同进程中加载被测组件。它有很多丰富的高层封装,使用者可以使用基于instrumentation的其他框架,避免过多二次开发量。但Instrumentation不支持跨应用,导致基于instrumentation的框架都继承了这个缺点。
2. Robotium&
Robotium是基于Instrumentation框架开发的一个更强的框架. 对常用的操作进行了易用性的封装.&用于开发功能性、系统和验收测试场景。它运行时绑定到GUI组件。它安装了一个测试用例套件作为在Android设备或仿真器上的应用程序,并提供用于执行测试的真实环境。
优点:&容易在最短的时间内编写测试脚本,易用性高。自动跟随当前activity。 由于运行时绑定到GUI组件,所以相比Appium,它的测试执行更快,更强大。 不访问代码或不了解app实现,也可以工作。 支持Activities、Dialogs、Toasts、Menus、Context Menus和其他Android SDK控件。
缺点:&不能处理flash和web组件。在旧设备上会变得很慢。 由于不支持iOS设备,当自动化测试同时覆盖 android与iOS的情况时,测试会被中断。没有内置的记录和回放功能.,使用记录功能需要 TestDroid 和 Robotium Recorder 这样的收费工具。
3. UIAutomator
UIAutomator是由谷歌提供的测试框架,它提供了原生Android app和游戏的高级UI测试。这是一个包含API的Java库,用来创建功能性UI测试,还有运行测试的执行引擎。该库自带Android SDK。
优点:它在运行访问不同的进程时,会给JUnit测试案例特权。库由谷歌社区支持和维护。
缺点:仅支持android4.1(API level 16)及以上。 不支持脚本记录。 支持的重点是Java。 你不能获得当前活动或仪表化。目前不支持web视图。 库仅支持使用Java,因此很难和使用Ruby的cucumber混合。如想支持BDD框架,建议使用Java自己的BDD框架,例如Jbehave。
4. Espresso
Espresso是Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特点是规模更小、更简洁、API更加精确、编写测试代码简单、容易快速上手。因为是基于Instrumentation的,所以不能跨App。
5. Calabash
Calabash是一个适用于iOS和Android开发者的跨平台app测试框架,可用来测试屏幕截图、手势和实际功能代码。Calabash开源免费并支持Cucumber语言,Cucumber能让你用自然的英语语言表述app的行为,实现BDD(Behavior Driven Development,行为驱动开发)。 Cucumber中的所有语句使用Ruby定义。
优点:&有大型社区支持。列表项 简单,类似英语表述的测试语句支持在屏幕上的所有动作,如滑动,缩放,旋转,敲击等。 跨平台开发支持(同样的代码在Android和iOS设备中都适用)。
缺点:测试步骤失败后,将跳过所有的后续步骤,这可能会导致错过更严重的产品问题。测试耗费时间,因为它总是默认先安装app。 需要Calabash框架安装在ios的ipa文件中, 因此测试人员必须要有iOS的app源码。 除了Ruby,对其他语言不友好。
Appium是一个开源的、跨平台的自动化测试工具,支持IOS、Android和FirefoxOS平台。 通过Appium,开发者无需重新编译app或者做任何调整,就可以测试移动应用,可以使测试代码访问后端API和数据库。它是通过驱动苹果的UIAutomation和Android的UiAutomator框架来实现的双平台支持,同时绑定了Selenium WebDriver用于老的Android平台测试。开发者可以使用WebDriver兼容的任何语言编写测试脚本,如Java, OC, JS, PHP,Python,
Ruby, C#,Clojure 和Perl语言。
7. Selendroid
Selendroid 是一个基于Instrumentation的一个框架. 完全兼容Webdriver协议。 Selendroid 可以在模拟器和实际设备上使用,也可以集成网格节点作为缩放和并行测试。
8. Robolectric
Robolectric 是一款Android单元测试框架,但它并不依赖于Android提供的测试功能,它通过实现一套JVM能运行的Android代码,然后在unit test运行的时候去截取android相关的代码调用,然后转到Robolectric实现的代码(shadow objects)去执行这个调用的过程。因此它不像模拟器或设备需要dexing(Android dex编译器将类文件编译成Android设备上的Dalvik VM使用的格式)、打包、部署和运行的过程,大大减少了测试执行的时间。Pivotal实验室声称使用Robolectric可以在。
除了实现Android里面的类的现有接口,Robolectric还给每个Shadow类额外增加了很多接口,可以读取对应的Android类的一些状态。比如它为ImageView提供了getImageResourceId()方法,测试者可以通过getImageResourceId()接口来确定是不是正确显示了期望的Image。
9. RoboSpock
RoboSpock是一个开源的Android测试框架,它提供了简单的编写BDD行为驱动开发规范的方法,使用Groovy语言,支持Google Guice库。RoboSpock合并了Robolectic和Spock的功能。
Cafe是百度出品的一个基于Robotium的测试框架,它提供了跨进程的测试解决方案。
11. Athrun
Athrun 是taobao出的一个移动测试框架,它支持Android和IOS。Android部分是基于Instrumentation,在Android原有的ActivityInstrumentationTestCase2类基础上进行了扩展,提供了一整套面向对象的API。 IOS上的自动化测试包括注入式自动化框架AppFramework,和基于录制的自动化框架Athrun_IOS, InstrumentDriver。
其他自动化框架还有应用于稳定性测试的Monkey系列(Monkey, Monkeyrunner, MonkeyTalk), 其中MonkeyTalk 支持iOS 和 Android,它可以为应用进行真实的,功能性交互测试。MonkeyTalk 提供简单的 “smoke tests”,复杂数据驱动的测试套件。MonkeyTalk 支持原生,移动和混合应用,真实设备或者模拟器。MonkeyTalk 使得场景捕获非常容易,可以记录高级别,可读的测试脚本。还有适用于浏览器自动测试的Selenium WebDriver,可以真实测试用户行为,用户交互如触摸、手指滚动、长按等,还支持HTML5的一些特性,比如本地存储、session存储、应用缓存等。而CTS则是应用于兼容性测试的自动化工具,
CTS大部分是基于Junit和仪表盘技术编写的。还扩展了自动化测试过程,可以自动执行用例,自动收集和汇总测试结果。CTS采用XML配置文件的方式将这些测试用例分组成多个测试计划(plan),第三方也可以创建自己的plan。
总结(Android)
各个测试框架的继承关系如下,继承关系决定了有些框架的先天优势或先天不足. 在实际应用中可以集成多个框架。
基于Instrumentation的测试框架,比如Espresso,Robotium,Selendroid等,都不能支持跨APP使用。 如自动化测试中有跨APP操作,可以结合UiAutomator实现。支持BDD的自动化框架比较少,可以在calabash 和 RoboSpock及Jbehave之间选择。若想同时支持Android和IOS,可选框架有Appium和Calabash,或AthRun。若为单元测试选择框架,可选Instrumentation或Robolectric。Robolectric实现了shadow object 类,耗时短。
IOS自动化框架
XCTest是苹果在iOS 7和Xcode5引入的一个简单而强大的测试框架,它的测试编写起来非常简单,并且遵循风格。XCTest的优点是与Xcode深度集成,有专门的Test导航栏,但因为受限于官方测试API,因此功能不是很丰富。
2. UIAutomation
UIAutomation是苹果提供的UI自动化测试框架,使用Javascript编写。基于UIAutomation有扩展型的工具框架和驱动型的框架。扩展型框架以JavaScript扩展库方法提供了很多好用js工具,注入式的框架通常会提供一些Lib或者是Framework,要求测试人员在待测应用的代码工程中导入这些内容,框架可以通过他们完成对app的驱动。驱动型UI Automation 在自动化测试底层使用了UI Automation库,通过TCP通信的方式驱动UI Automation来完成自动化测试,通过这种方式,编辑脚本的语言不再局限于JavaScript。
Frank是iOS平台一款非常受欢迎的app测试框架,它使用Cucumber语言来编写测试用例, Frank包含一个强大的“app inspector”–Symbiote,可以用它来获得运行中app的详细信息,便于开发者将来进行测试回顾。 它允许使用Cucumber编写结构化英语句子的测试场景。 Frank要求测试时在应用程序内部编译,这意味着对源代码的改变是强制性的。操作方式为使用Cucumber和JSON组合命令,将命令发送到在本地应用程序内部运行的服务器上,并利用UISpec运行命令。
优点:&测试场景是在Cucumber的帮助下,用可理解的英语句子写的。强大的Symbiote实时检查工具。 活跃的社区支持。 不断扩大中的库。
缺点:对手势的支持有限。 在设备上运行测试有点难。 修改配置文件需要在实际设备上运行。 记录功能不可用。
KIF是Keep It Functional项目的缩写,是一款iOS app功能性测试框架,使用Objective-C语言编写,对苹果开发者来说非常容易上手,更是一款开发者广为推荐的测试工具。KIF tester使用私有API来了解App中的视图层级。但缺点是运行较慢。
5. Calabash-ios
详见Calabash-android 描述。
6. Subliminal
Subliminal是另一款与XCTest集成的框架。与KIF不同的是,它基于UIAutomation编写,旨在对开发者隐藏UIAutomation中一些复杂的细节。
是对XCTest的一个完整替代,使用xSpec风格编写测试。 Kiwi带有自己的一套工具集,包括、、,甚至还支持。它是一个适用于iOS
开发的Behavior Driven Development(BDD)库,优点在于其简洁的接口和可用性,易于设置和使用,非常适合新手开发者。Kiwi使用Objective-C语言编写,易于IOS开发人员上手。
总结(IOS)
IOS自动化测试框架继承关系如下. XCTest与 Xcode 的 IDE 直接集成,使用简单, 但其不支持stub和mock, 所以单使用XCTest框架的较少. Kiwi是一个iOS平台十分好用的行为驱动开发BDD的测试框架,有着非常漂亮的语法,可以写出结构性强,非常容易读懂的测试。UI Automation是Apple官方提供的UI自动化测试的解决方法,但接口不够丰富。
KIF、Frank、Calabash都是通过使用代码的形式来模拟事件触发,使得被测代码就像是由用户行为所触发的一样。但这样的代价是插入一个额外层的复杂度。IOS测试框架中支持BDD的有calabash 和Kiwi。可选用的单元测试框架有Kiwi,Specta,Quick等,而KIF,Subliminal和calabash更适用于UI级验收测试。
一些有趣的自动化测试框架
1. Sikuli 图形化编程技术
Sikuli 是由 MIT 的研究团队发布的新型图形化编程技术。它以图像检索技术为基础,提供了一套基于Python 的脚本语言以及集成开发环境。使用者可利用屏幕截图直接引用 GUI 元素进行编程,完成交互操作。Sikuli的脚本编写遵循 Python语法规范。由于 Sikuli基于 Python,其核心代码由 Java 编写,可在用户自定义的 Java 工程中将其作为 Java 标准类库进行引用。
它的脚本是这样式的:
Sikuli将 GUI 对象的屏幕截图作为函数的参数直接引用,整个代码的语义清晰明了,可读性极强。脚本执行过程中,利用图像检索算法分析匹配当前屏幕中对应的控件,并对其应用相应的鼠标或键盘操作。这种方式使得我们在脚本编写时,既无需关心繁琐的应用程序相关 API 亦不用获取 Web 内容对象。
1、仅支持windows, MACOSX,和Linux平台,还不支持移动平台。
2、依赖屏幕截图,使得1)在不同平台,不同分辨率,不同操作系统上需要维护一套图形源文件,不利于跨平台移植;2)若出现程序逻辑外的界面遮挡,则影响程序执行。
但作为现有自动化测试工具的补充,尤其是对无法获取API的工程,比如flash 动画, 是非常有效的。
2. A/B test 框架 AppGrader
虽然AppGrader不是一流的测试框架,但也有所长。它可以帮开发者将自己的应用与其他众多同类型应用进行多方面比较,比如图形和功能。通过对比结果,开发者可以更有针对性地提高和改进自己的应用。目前AppGrader仅支持Android平台。
3. IOS A/B test 框架 FlipTest
FlipTest是一个优秀的iOS app A/B测试框架,可为app挑选最佳的UI。FlipTest会基于外观和易用性等众多因素返回测试结果,进而帮开发者解决UI问题。用FlipTest进行测试无需向App Store重新提交应用或者大幅更改代码,只需要在app中添加一行代码,节省了不少时间。
转载自:/2016/09/mobile-app-test-automation-framework/
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:135308次
积分:2612
积分:2612
排名:第13774名
原创:101篇
转载:149篇
评论:11条
(3)(2)(2)(4)(6)(1)(1)(2)(7)(18)(13)(11)(8)(3)(19)(10)(5)(2)(6)(3)(1)(2)(2)(3)(4)(5)(13)(20)(17)(4)(6)(5)(6)(8)(9)(13)(5)(1)}

我要回帖

更多关于 app接口自动化测试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信