如何做好自动化测试,揭秘阿里巴巴分层自动化实践之路

自动化测试是软件测试技术上的一大进步,我们都知道自动化测试可以给工作提效,减少重复劳动,但在实践过程中,却总是碰到各种各样的问题,导致进入自动化测试盲区。如何做好自动化测试,是很多企业迫切想要解决的问题。阿里巴巴旗下一站式研发提效平台——云效,将于12月8日16:00开启《阿里巴巴持续集成持续交付之分层自动化》直播分享,为企业提供自动化测试解决方案。今天我们先来看看阿里巴巴嘉宾的部分解读。

嘉宾介绍:金桐:阿里巴巴B2B事业群高级产品经理。从事多年互联网系统的研发和测试工作。现在主要负责云效分层自动化测试的产品设计。


自动化测试


所谓自动化测试,就是用程序模拟用户手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来。但在自动化实践过程中,测试人员往往发现理想和现实之间差距很大。

上图不难看出,阿里该部门这一周的自动化失败次数不仅没有与发现bug数成正比,还浪费了测试人员41次自动化失败的排查时间,而这些时间对于做自动化查bug的初衷,都是无意义、不必要、也无技术含量之举。

为什么外部环境、业务变更、应用环境问题、执行机问题、数据问题、框架问题这些都能引起这么多失败呢?而单单真正查出bug的概率这么低呢?

结合我们的多年自动化实践与总结,自动化存在如下图这些缺点:

 

成本:

人员成本高:基本要懂某种自动化框架的代码语言,要有一定的编码能力,同时代码逻辑要清晰,否则如何能保证合理性、逻辑性、业务性与健壮性这些大大影响自动化成功率的因素?如何能保证自动化测试脚本本身没有bug?

环境成本高:开发环境、运行环境、调度环境等等,接触过代码的同学都知道,一次环境的安装,没有大半天甚至一天是完不成的。同时要让自动化对接到项目自动化流程中,或定时监控等,都需要再开发调度平台,这些成本对于从0到有的测试组,甚至是一家公司,将会是多大?需要投入多少人日的工作量可以完成这些?

效果:


从图1分析就知道效果如何,然而图1还只是阿里某部门单周的一个采样,就已经浪费了41次排查时间,这样的自动化测试,若运行一年,那效果又会如何?能确保后面没有这些干扰的失败吗?失败次数可以和bug数成正比吗?

覆盖率:


经常有同学抱怨自动化的覆盖率低,很多分支和逻辑无法覆盖,这大部分原因是这些同学的理解偏差,很多人都将UI自动化作为自动化测试的全部。然而没有一种自动化测试框架可以覆盖一个系统的所有功能点的测试,所以出现“自动化”覆盖率低的观点。那该如何提高自动化的覆盖率呢?

及时性:

其实从图1中的10次业务变更引起的自动化失败,就是这一缺点的佐证。所谓业务变更,是指正常的项目变更,但脚本未及时更新引起的自动化失败。这种失败恰恰又证明自动化测试是有用的,只要测试覆盖到的内容,一旦有变,自动化就能测试出来。那如何提高我们的脚本及时性呢?

面对这些问题,我们不禁自问:做自动化测试真的有必要吗?如果有必要,那如何降低这些成本,如何提高测试效果呢?经过不断的实践,我们引入了分层自动化测试的策略。

 

分层自动化的理念是什么?


在理解分层自动化之前,我们先看自动化测试金字塔。自动化测试金字塔在测试领域耳熟能详,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。

 

单元测试(unit):它可以通过mock框架,模拟各种异常场景,外部依赖最少,且可以做到测试粒度到最小的一种测试方法。也因为依赖少,可方便随时随地执行,也让问题排查很简单。这是一切测试的地基。

接口测试(service):这里要求测试人员对系统的结构和系统间的调度非常清楚,同时要了解接口逻辑关系,否则接口测试代码很容易遗漏一些异常场景。这一层由于含有一些业务逻辑和多接口的一个集成,所以相对单元测试来说,多了一些外界依赖,导致问题定位不会有单元测试层那么准确。因此投入会比单元测试多一些。


页面测试(UI):是常见的黑盒自动化测试场景。它最接近用户真实场景,也容易发现问题,但它的实现成本最高且太容易受外部依赖,影响脚本成功率,所以处在金字塔的顶端,但它不是金字塔的全部。自动化测试的劣势,其中80%都是因为UI自动化。

以上就是分层自动化的主体三层,由此可见,分层自动化测试倡导的就是,将系统分层,不同层次用合适的自动化方法进行测试的一种测试策略。某个项目是否都能用自动化覆盖,那就要看测试负责人的分层策略是否合理、全面。

通过实践发现,如果只是简单使用分层自动化测试,研发测试比最多提升到4:1,那么阿里巴巴研发测试比平均8:1,这是怎么实现的呢?


阿里巴巴分层自动化实践


阿里巴巴分层自动化在经过长期实践中,从自动化成本和效果这两个重要缺点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。


首先,分层自动化工具革命


自动化测试框架,无论UI,接口还是单元,外部开源框架、收费软件等很多,各有利弊。阿里测试综合多种框架的实践,对其进行改良与创新,突破了传统自动化框架的众多难题,大大降低了自动化的成本、提升了自动化效果。如下图所示的四款重要工具,AUI主攻UI自动化,SAT主攻接口自动化,Amon主攻单元测试,以及Perf主攻性能,在传统测试框架基础的弱点上进行全面攻克与改造,最终实现鸟枪换大炮,全面提升测试工作效率。

   

不仅如此,阿里云效还从需求-开发-测试-发布整个项目流程中可工具化、平台化的手工工作,全面进行工具化、平台化的改造,如图所示。 

 

开发环节,从拉分支开始,到自测的部署环境与单元测试,全部平台工具化。一键拉分支、一键部署、一键触发单测集成,不到喝杯咖啡的时间,即可查看环境部署结果和findbugs、PMD、Sonar等代码扫描结果。

测试环节,手工测试中有用例和缺陷两款主打产品,平台沉淀,无需再做一些文件传输,加上前面介绍的分层自动化相关测试平台与工具,在自动化测试工作上的效率提升,最终实现整体测试工作的平台与工具化。

其次,项目流程革命


除了单个工具的成本减少与效果提升,云效还优化了项目流程。

如下图是我们常见的项目流程,其中自动化测试工作经常只有单一自动化测试框架进行测试。

 

通过前文的分析,分层自动化才能全面覆盖我们整个项目功能,因此,我们将流程改为如下图所示流程。

 

这样的流程,经过长期实践发现,研发测试比最多提升到3:1,是否还有改进空间呢?

我们再看这些流程,可以看到测试工作,尤其是自动化测试工作,独立于开发项目流程。这种流程带来最直接的问题就是自动化发现问题不及时,对于开发自测项目也没有很好的介入保障,同时全手工触发,人为因素影响非常大,这是限制开发测试比大幅提升的重要原因。

假设我们的项目在合理运用分层自动化的测试策略后,并将其触发-问题排查-结果反馈都平台化地纳入到整个需求-开发-测试-发布这个项目流程中,会产生什么样的效果呢?

将自动化的结果反馈变成了发布的必要环节,每一项自动化测试结果都变成发布环节的重要开发,又会产生什么样的效果?

我们的自动化测试,只能用于测试介入的项目测试么,只能用于测试介入的发布么?我们是否还能用做日常业务保障?是否可以在项目中的bug出现初期就发现问题呢? 

无论是测试工具革命还是测试流程改进,都留给我们很多疑问,正是这些疑问,让自动化测试一直都是一把双刃剑,用的好可以大幅提升效率,降低成本投入,用不好则可能成为测试鸡肋,妨碍测试进程。所以学习如何进行自动化测试,如何把握分层自动化的分层策略,如何将分层自动化融入到项目流程中,是企业必须掌握的测试技巧。现在可以报名参加阿里云效12月8日(周四)16:00的《阿里巴巴持续集成持续交付之分层自动化》直播分享,内容更全、更干。名额有限,机不可失!

报名方式:

 

扫描识别图中二维码进行报名




直播详情


直播主题:阿里巴巴持续集成持续交付之分层自动化

直播提纲:

●为什么要进行自动化测试?为什么理想中的自动化与实践有差距?

●分层自动化是什么?如何正确理解自动化测试金字塔?

●总结分层自动化的分层策略,提供实施方案;

●在线开展分层实践活动;

●阿里巴巴分层自动化的实践:分层工具的革命+项目流程的革命

温馨提示:报名成功后,可以加入云效QQ群:435558264 优先获得直播登陆链接和密码。

    




关于云效:

云效,创立于2012年,由阿里巴巴出品,是业内领先的面向企业的一站式研发提效平台,涵盖单测、接口、UI、前端、性能、集成自动化等分层自动化测试,通过项目流程管理和专项自动化提效工具,能够很好地支持互联网敏捷项目的快速迭代发布,真正实现24小时持续集成、持续交付。

官网地址:http://yunxiao.aliyun.com/

时间: 2024-08-04 11:38:47

如何做好自动化测试,揭秘阿里巴巴分层自动化实践之路的相关文章

阿里巴巴CI:CD之分层自动化实践之路

6月29日,由阿里云研发协同RDC.阿里云云效和联合举办的"首届阿里巴巴研发效能嘉年华"上,阿里巴巴高级产品经理金桐带来"分层自动化实践之路"的演讲.本文从为什么要做自动化开始谈起,进而对分层自动化单元测试.业务服务层测试和UI测试进行优劣势分析,最后重点分享了阿里分层自动化的实践,包括工具分层和流程优化等.   直播视频请点击 随着云计算.大数据.AI智能等前沿科技的发展,传统的研发速度越来越难满足企业快速发展的需求,研发效能也成了继商业模式.技术突破之后的另一核

直播|阿里巴巴持续集成持续交付之分层自动化

很多人对阿里测试工作很好奇,尤其是对自动化测试工作充满疑问.比如为什么做自动化?为什么做了自动化没有效果,性价比很低?阿里巴巴旗下一站式研发提效平台--云效,一半的需求不需要人工测试,研发测试比可以达到8:1,甚至更高,这是怎么做到的?面对这些问题,云效将于11月24日(本周四)16:00邀请阿里巴巴B2B事业群高级产品经理金桐,为大家带来<阿里巴巴持续集成持续交付之分层自动化>在线直播分享,为企业提供分层自动化实施解决方案. 直播时间:2016-11-24(本周四) 16:00  直播嘉宾:

让天下没有难做的研发:解读阿里CI/CD、DevOps、分层自动化技术

在互联网时代,产品快速迭代的重要性不言而喻.不管是传统企业还是初创企业,在提升研发效能方面都有很强的需求,如果能使用一套对项目流程管理和专项自动化提效工具,来支持项目的快速迭代发布,实现24小时持续集成.持续交付整个流程,不但可以提高研发效率,还能增强产品的竞争力! 1月12日,阿里巴巴旗下一站式研发提效平台--云效联手 InfoQ 在阿里巴巴西溪园区举办了一场旨在帮助研发团队提升研发效率的线下沙龙,邀请了阿里巴巴技术专家之岳.许晓斌.鲁小川和一佛,分享了阿里云效平台从生态规划,到 CI/CD

独家:阿里巴巴DevOps落地实践玩法及思路解析

互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发.运维等IT部门的效率,支撑业务发展.互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题.   7月26日,阿里巴巴持续集成持续交付平台--云效,在深圳阿里中心举办了一场"业务为王时代,DevOps怎么玩?"主题沙龙,由阿里巴巴技术专家从云效新概念的提出,到阿里巴巴DevOps落地实践.到企业如何利用云效进行高效研发.再到阿里巴巴CI/CD之分层自动化,

直播|如何做好分层自动化之性能测试?

随着web2.0的兴起,大家开始关注服务器性能.应用性能直接关系到用户访问和使用,一旦出现问题,就可能造成用户流失,业务受损.如2016年初,印度推出24元人民币智能手机,一时间订购网站访问量骤增,但业务人员没有预估出风险,网站研发测试人员没能保障风险,最终导致网站瘫痪下单难.   又如下图所示,横坐标是我们的负载,纵坐标是资源使用情况,包含资源利用率(CPU.磁盘).吞吐量.响应时间.当负载不断增加的时候,会发现增长速率变慢,同时系统资源.吞吐量到达一个峰谷,并且还在往下跌.当我们不断施加压力

品《阿里巴巴大数据实践-大数据之路》一书(下)

今天继续谈阿里的这本书,包括数据服务平台.数据挖掘平台.数据建模.数据管理及数据应用,希望于你有启示. 1.数据服务平台 数据服务平台可以叫数据开放平台,数据部门产出海量数据,如何能方便高效地开放出去,是我们一直要解决的难题,在没有数据服务的年代,阿里的数据开放的方式简单.粗暴,一般是直接将数据导出给对方,我想,现在大多公司的开放应该也是如此吧,虽然PaaS喊了这么多年,但真正成就的又有几个? 即使如阿里,在数据开放这个方向上的探索和实践,至今也有7个年头了,任何关于数据开放毕其功于一役的做法都

品《阿里巴巴大数据实践-大数据之路》一书(上)

7月有人推荐阿里巴巴刚出的这本书<阿里巴巴大数据实践-大数据之路>,到亚马逊一看才是预售状态,拍下直到8月才拿到. 翻看目录一看,欢喜的很,正好出差两天就带在身边,由于在机场滞留超过12个小时,就把它读完了. 用"品"字有以下几个原因,一是市面上充斥着太多的大数据平台技术的书,诸如hadoop,spark等占据了大部,但对于如何管好大数据却缺乏真知灼见,二是这本书的确干货很多,诚意实足,明显来自阿里实操人员的经验,从作者是阿里巴巴数据技术与产品部就可知道,三是内容跟笔者的专

阿里巴巴大数据实践之数据建模

随着DT时代互联网.智能设备及其他信息技术的发展,数据爆发式增长,如何将这些数据进行有序.有结构地分类组织和存储是我们面临的一个挑战. 为什么需要数据建模 如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置:如果把数据看作城市的建筑,我们希望城市规划布局合理:如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措. 数据模型就是数据组织和存储方法,它强调从业务.数据存取和使用角度合理存储数据.Linux的创始

阿里首度公开大数据系统架构《大数据之路:阿里巴巴大数据实践》来了

絮絮叨叨了很久,说阿里数据要出书.每天被催,什么时候写好,什么时候出版.终于,千呼万唤始出版了!!!! 点击阅读详情,即刻试读!!!   曾鸣教授作序 CSDN.ChinaUnix.ITPUB.segmentfault多家技术社区联名力荐 阿里巴巴官方首度公开大数据系统架构与技术细节 <大数据之路--阿里巴巴大数据实践>预售了 书籍内容简介 在阿里巴巴集团内,数据人员面临的现实情况是:集团数据存储已经达到EB级别,部分单张表每天的数据记录数高达几千亿条:在2016年"双11购物狂欢节