【金阳光測试】大话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篇会具体介绍白盒自己主动化測试):我们熟知的压力測试、可靠性測试、负载稳定性測试、功能性測试都属于黑盒測试范畴;而白盒通常是单元測试、接口測试、持续的集成測试(也叫冒烟測试)、某系性能測试都能够用白盒測试来进行。
由于白盒測试要求測试project师编码能力较强,非常多中小型公司无法真正落实和开展。据笔者了解也仅仅有百度、企鹅、阿里真正花精力去做。尽管前期投入较大,可是中后期才会日渐收益。
自己主动化測试难点不在于一个操作流程和过程(也就是脚本可以依照用例去执行)。假设有一天你的自己主动化脚本能帮你解决手工问题,那么你不过达到了第一代自己主动化水准。由于一个完整的自己主动化框架须要解决的问题至少有三: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月份的更多相关文章
- Android自己主动化測试解决方式
如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...
- Android自己主动化測试之Monkeyrunner用法及实例
眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...
- Android Monkey自己主动化測试
前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...
- Android 自己主动化測试(3)<monkeyrunner> 依据ID查找对象&touch&type (python)
我在之前的两篇文章中用java来实现过 Android 自己主动化測试(1)怎样安装和卸载一个应用(java).Android 自己主动化測试(2)依据ID查找对象(java). 可是本质上都是用mo ...
- Android自己主动化測试——CTS測试
一.为什么须要兼容性測试(下面称CTS)? 1.1.让APP提供更好的用户体验.用户能够选择很多其它的适合自己设备的APP.让APP更稳定. 1.2.让开发人员设计更高质量的APP. 1.3.通过CT ...
- MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...
- 带有机器人框架的.NET自己主动化測试
Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...
- iOS自己主动化測试的那些干货
前言 假设有測试大佬发现内容不正确.欢迎指正,我会及时改动. 大多数的iOS App(没有持续集成)迭代流程是这种 也就是说.測试是公布之前的最后一道关卡.假设bug不能在測试中发现,那么bug 就会 ...
- Android下的单元測试
android下的单元測试 在AndroidManifest.xml文件里配置下面信息: 在manifest节点下加入: <!-- 指定測试信息和要測试的包 --> <instrum ...
随机推荐
- HDU 3625
有点置换群的味道. 当撞开一个门后,能打开一连串的门,即是可以排成一个圈.求的是种数,于是,可以使用第一类斯特林数,求出撞了0~K次的种数. 但是,注意,当第一个门为独自一个圈时,是不可行的,因为这代 ...
- [ReactVR] Add Shapes Using 3D Primitives in React VR
React VR ships with a handful of 3D primitives. We'll importprimitives like <Sphere/>, <Box ...
- C++链接和执行相关错误
http://blog.csdn.net/pipisorry/article/details/37610401 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文 ...
- glove入门实战
前两天怒刷微博,突然发现了刘知远老师分享的微博,顿时眼前一惊.原Po例如以下: http://weibo.com/1464484735/BhbLD70wa 因为我眼下的研究方向是word2vec.暗自 ...
- JavaSE入门学习24:Java面向对象补充
一Java中的Object类 Object类是全部Java类的父类.假设一个类没有使用extendskeyword明白标识继承另外一个类,那么这个类默认 继承Object类. public class ...
- vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件
vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件 ------------------------------------------- ...
- xBIM 基础15 IFC导出Excel报表
系列目录 [已更新最新开发文章,点击查看详细] IFC导出Excel空间报表文件 本篇将向您展示从IFC文件读取数据所需的一些概念.它使用IFC4接口,适用于IFC2x3和IFC4型号.要创建 ...
- POJ 2114 点分治
思路: 点分治 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> u ...
- SAS拆分数据集
2012年8月8日 主要是根据选取条件来进行拆分 1.根据行数来选: data test; set oldset; if _n_=10 then output; if id="001&quo ...
- calender怎么获取每周的周日(给每周的周日特定时间点设置定时)
获取每周的周日 //如果是周日,特殊处理.老外的周日-周六为一周 calendarTemp.add(Calendar.WEEK_OF_MONTH,1); calendarTemp.set(Calend ...