热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【金阳光测试】深入解析Android自动化测试——Android自动化系列(一)——金阳光2013年4月发布

在过去的四年中,Android自动化测试框架与工具经历了显著的发展,逐渐趋于成熟。自第一代自动化架构问世以来,已历经多次迭代,本文将重点探讨从第三代到第四代自动化测试框架的演变过程及其技术特点。

        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.金阳光微信公众账号:搜索金阳光自己主动化

 

 


推荐阅读
  • 本文将介绍一种扩展的ASP.NET MVC三层架构框架,并通过使用StructureMap实现依赖注入,以降低代码间的耦合度。该方法不仅能够提高代码的可维护性和可测试性,还能增强系统的灵活性和扩展性。通过具体实践案例,详细阐述了如何在实际开发中有效应用这一技术。 ... [详细]
  • Java队列机制深度解析与应用指南
    Java队列机制在并发编程中扮演着重要角色。本文深入解析了Java队列的各种实现类及其应用场景,包括`LinkedList`、`ArrayBlockingQueue`和`PriorityQueue`等,并探讨了它们在高并发环境下的性能表现和适用场景。通过详细分析这些队列的内部机制和使用技巧,帮助开发者更好地理解和应用Java队列,提升系统的设计和架构能力。 ... [详细]
  • Go语言中Goroutine与通道机制及其异常处理深入解析
    在Go语言中,Goroutine可视为一种轻量级的并发执行单元,其资源消耗远低于传统线程,初始栈大小仅为2KB,而普通线程则通常需要几MB。此外,Goroutine的调度由Go运行时自动管理,能够高效地支持成千上万个并发任务。本文深入探讨了Goroutine的工作原理及其与通道(channel)的配合使用,特别是在异常处理方面的最佳实践,为开发者提供了一套完整的解决方案,以确保程序的稳定性和可靠性。 ... [详细]
  • 成功实现Asp.Net MVC3网站与MongoDB数据库的高效集成
    我们成功地构建了一个基于Asp.NET MVC3框架的网站,并实现了与MongoDB数据库的高效集成。此次更新不仅完善了基本的创建和显示功能,还全面实现了数据的增删改查操作。在创建功能方面,我们修复了之前代码中的错误,确保每个属性都能正确生成。此外,我们还对数据模型进行了优化,以提高系统的性能和稳定性。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
    PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 全新发布的自我修复与自我更新的Linux版本,专为云计算环境设计! ... [详细]
  • MVVM架构~mvc,mvp,mvvm大话开篇
    返回目录百度百科的定义:MVP是从经典的模式MVC演变而来,它们的基本思想有相通的地方:ControllerPresenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模 ... [详细]
  • 利用 Python 实现 Facebook 账号登录功能 ... [详细]
  • 特斯拉的盈利之谜:净利润未必源自汽车销售
    近日,特斯拉因客户投诉再度成为舆论焦点。一位车主反映其购买仅6天的Model 3在使用官方超级充电桩时突然断电,引发了对特斯拉产品质量和售后服务的质疑。然而,特斯拉的盈利模式并不仅限于汽车销售,其净利润可能更多地来自其他业务板块,如能源服务、自动驾驶技术和软件订阅等。这些多元化收入来源为特斯拉的财务表现提供了更多支撑。 ... [详细]
  • 如何正确配置与使用日志组件:Log4j、SLF4J及Logback的连接与整合方法
    在当前的软件开发实践中,无论是开源项目还是日常工作中,日志框架都是不可或缺的工具之一。本文详细探讨了如何正确配置与使用Log4j、SLF4J及Logback这三个流行的日志组件,并深入解析了它们之间的连接与整合方法,旨在帮助开发者高效地管理和优化日志记录流程。 ... [详细]
  • 腾讯云携手Oasis深入解读NFT概念、价值体系与跨界应用 | 活动预告
    腾讯云携手Oasis深入解读NFT概念、价值体系与跨界应用 | 活动预告 ... [详细]
  • 优化Oracle数据库日志功能的关闭方法与实践
    在优化Oracle数据库日志功能的过程中,关闭不必要的日志记录是一项重要任务。本文探讨了Oracle 11g中日志路径的配置和管理,特别是针对常用的警报日志(alert log)。通过合理配置 `alert_$ORACLE_SID.log` 文件,可以有效减少日志文件的大小和提高系统性能。此外,文章还介绍了如何通过调整参数和使用脚本自动化日志管理,进一步提升数据库的稳定性和维护效率。 ... [详细]
author-avatar
快乐皇妃800
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有