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月份的更多相关文章

  1. Android自己主动化測试解决方式

    如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...

  2. Android自己主动化測试之Monkeyrunner用法及实例

    眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...

  3. Android Monkey自己主动化測试

    前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...

  4. Android 自己主动化測试(3)<monkeyrunner> 依据ID查找对象&touch&type (python)

    我在之前的两篇文章中用java来实现过 Android 自己主动化測试(1)怎样安装和卸载一个应用(java).Android 自己主动化測试(2)依据ID查找对象(java). 可是本质上都是用mo ...

  5. Android自己主动化測试——CTS測试

    一.为什么须要兼容性測试(下面称CTS)? 1.1.让APP提供更好的用户体验.用户能够选择很多其它的适合自己设备的APP.让APP更稳定. 1.2.让开发人员设计更高质量的APP. 1.3.通过CT ...

  6. MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录

    这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...

  7. 带有机器人框架的.NET自己主动化測试

    Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...

  8. iOS自己主动化測试的那些干货

    前言 假设有測试大佬发现内容不正确.欢迎指正,我会及时改动. 大多数的iOS App(没有持续集成)迭代流程是这种 也就是说.測试是公布之前的最后一道关卡.假设bug不能在測试中发现,那么bug 就会 ...

  9. Android下的单元測试

    android下的单元測试 在AndroidManifest.xml文件里配置下面信息: 在manifest节点下加入: <!-- 指定測试信息和要測试的包 --> <instrum ...

随机推荐

  1. ofbiz初级教程

    本教程是ofbiz 基本应用,它涵盖了OFBiz应用程序开发过程的基本原理.目标是使开发人员熟悉最佳实践,编码惯例,基本控制流程以及开发人员对OFBiz定制所需的所有其他方面. 本教程将帮助您在OFB ...

  2. 洛谷 P2932 [USACO09JAN]地震造成的破坏Earthquake Damage

    P2932 [USACO09JAN]地震造成的破坏Earthquake Damage 题目描述 Wisconsin has had an earthquake that has struck Farm ...

  3. android学习笔记(5)Activity生命周期学习

    每一个activity都有它的生命周期,开启它,关闭它,跳转到其他activity等等,都会自己主动调用下面某种方法.对这些个方法覆写后观察学习. protected void onCreate(Bu ...

  4. Wing IDE 怎样设置 python版本号

    机器上同一时候装了Python3和Python2,使用Wing IDE, 由于Python2和3是有非常大的差别的,所以时不时的须要更改IDE使用的Python版本号.以下介绍方法: 1.打开Edit ...

  5. 王立平--自己定义TitleBar

    效果: 1.自己定义titleBar的布局. <?xml version="1.0" encoding="utf-8"?> <Relative ...

  6. D3D 线列 小样例

    画两条线 #pragma once #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"d3dx9.lib" ...

  7. ORA-01261: Parameter db_recovery_file_dest destination string cannot be translat

    查看了Oracle的初始化文件. $cat /oracle/oms/102_64/dbs/initSID.ora 如:db_recovery_file_dest='/oracle/oms/flash_ ...

  8. 132.try throw catch介绍

    #include <iostream> using namespace std; //try尝试执行,抛出throw,throw之后语句不再执行 //catch处理throw的异常 voi ...

  9. luogu 1941 飞扬的小鸟

    这道题对于第13个数据点,不知为什么f数组第二位开到2000以下就不能过,求指教 飞扬的小鸟 传送门 题目大意 一个小鸟在\(n*m\)的方阵里,然后有许多管道你们玩过就不多介绍了,然后每一个位置,点 ...

  10. winforms控件

     我们在开发窗体应用时,控件是必不可少的今天我们就来认识一下控件 在认识控件之前还要先来认识一下窗体具体如下: 认识窗体和控件 窗体                                   ...