我国最大的IT项目管理门户网站,国内IT项目管理培训与咨询服务提供商

当前位置:首页 > DevOps > 正文

DevOps与自动化测试之我见

2018-11-15 来源:大连飞创 张慧慧
       1、前言
       自动化测试作为测试实施的必要手段,在各个行业测试中发挥着重要的作用。那么,评价一个自动化测试做的好还是不好的标准是什么?我们以前可能会用自动化测试框架的设计,自动化测试成本投入、自动化测试开发效率来衡量。作者在多年的自动化测试实施过程中,经过总结发现,我们应该更多关注的自动化测试的被使用率,因为即使你的框架设计的再好,脚本写的非常完美,如果没有项目使用,那么就相当于我们只有投入,但是看不到我们想要的期望结果。所以,自动化测试项目做的好坏,应该用使用率来衡量,那么如何提升自动化测试使用率?现在,我们希望能够借鉴DevOps的理念来推广自动化测试的实施,让更多的组织、团队感受到自动化测试的效率提升,同时做到低成本投入。下面从三个方面来介绍:DevOps简介、DevOps三大原则、如何使用DevOps的理念推广自动化测试。
       2、DevOps简介
       DevOps由开发(development)和运维(operations)两个单词组成,其本意就是鼓励不同的软件开发部分共同协作,开发、测试、运维。用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
       3、DevOps三大原则
       ①基础设施即代码(InfrastructureasCode):DeveOps的基础是将重复的事情使用自动化脚本或软件来实现,例如Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)、Vagrant(虚拟化平台)等。
       ②持续交付(ContinuousDelivery):持续交付是在生产环境发布可靠的软件并交付给用户使用。而持续部署则不一定交付给用户使用。
       ③协同工作(CultureofCollaboration):开发者和运维人员必须定期进行密切的合作。开发应该把运维角色理解成软件的另一个用户群体。协作有几个的建议:1、自动化(减少不必要的协作);2、小范围(每次修改的内容不宜过多,减少发布的风险);3、统一信息集散地(如wiki,让双方能够共享信息);4、标准化协作工具(比如jenkins)
       4、自动化测试与DevOps
       从以上可以看到,DevOps的理念就是充分利用资源,做到资源使用最大化,那么自动化测试如何借鉴DevOps的先进理念,让自动化测试实施也达到这个效果?我们首先分析一个自动化测试应用的阶段以及应用的组织或部门,如下面两图所示,不同的部分对应不同的测试阶段,但是这些测试阶段都有两个共同点:黑盒测试、功能测试;这些阶段都在一定程度上满足自动化测试的前提条件,都比较适合开展自动化测试。所以,对于自动化测试实施的问题随之而来,不管哪个测试阶段,我们测试的对象都是同一个被测试系统,只不过不同的测试阶段关注点是不一样的;但是,测试执行的对象以及操作时一样的。所以,不同的测试阶段,不同的组织,团体,对于一个项目,如果都实施自动化测试,那么从自动化测试投入来看,是一样的,无外乎脚本的写法,大同小异。但是资源的投入站在整个项目来看,是反复的投入,是冗余的投入。
       一、如何解决上述问题?如何避免资源的冗余投入?
       根据DevOps的理念,我们对自动化测试实施的想法是:“脚本共享、资源共享”。
       二、目标已经明确,那么我们该怎么做?
       如何做到脚本共享、资源共享?作者认为至少应该达成以下目标:
       1.自动化测试策略不再基于一个项目,或者一个组织、团体,而应该基于项目相关联群体的所有测试需求。如开发组的测试需求是什么?测试组的测试需求又是什么?运维组的测试需求与二者有何区别?我们先梳理清楚。然后有针对性的完善自动化测试策略,设计自动化测试框架,以便能够同时满足不同组织、团队对自动化测试需要,一次投入,共同受益。
       2.对于自动化测试资源,如环境部署、执行机器申请等相关资源或行为,需要建立统一的安排和筹划,这种构想有点类似云服务,对资源进行集中管理,统一分配,不论是开发组、测试组还是运维组,提供统一的申请入口,最大化的合理配置资源,避免资源浪费。从而能够让公司的资产使用更高效,降低反复投入、冗余投入。
       这样,通过以上两点,我们满足了不同的组织对于同一项目的不同测试需求,对资源的需求也做到了最大化使用;并且按照这种模式,自动化测试的后期维护成本也会大幅度的降低。因为我们只需要维护一套脚本,不需要维护多套脚本。最终,自动化测试脚本的使用率能够做大最大化,一次开发,多个组织、团队同时使用,各种资源的利用率也会达到最大化。
       那么,如何实现以上目标?请看下图。在这里,我们引入了一个新的工具Ansible,这是一个开源的自动化运维工具。通过Ansible作为中间件,我们把各个组织、团队对自动化测试的需求与测试资源进行了关联,每个团队成员都可以通过WEB方式,对自动化测试脚本、执行资源以及测试环境进行申请和管理,好处如下:
       1.在这个实施模式中,开发、测试、运维只需要一个组织完成脚本开发,其他组可以共享使用,从而自动化测试脚本的使用率能够得到保证,自动化测试开发成本降到最低
       2.开发、测试、运维不再需要各自申请资源,能够充分利用项目内的所有资源
       3.真正做到在自动化测试方面,彻底打通了组织间的壁垒,彻底挖掘了自动化测试脚本的作用,做到最大使用率。
       以上,就是作者基于多年的自动化测试经验从实施角度对自动化测试的一种想法,因为在过去的职业生涯中,遇到了很多自动化测试项目失败,原因无外乎几点:项目成本投入过大、脚本开发出来了,但是看不到预期效果、资源配置不足,导致不能充分发挥自动化测试的作用,这些问题,都可以通过以上所述解决。通过这篇文章,我们希望能够和行业同事一起分享我们在自动化测试方面的探索及经验,也希望能够与更多的同仁一起对自动化测试进行深入的讨论。谢谢!
 
分享到:

免责声明:
  1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
  2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!

延伸阅读:

more

会议活动

more

公开课

more

PMO

Copyright © 2021 IT项目管理界 版权所有 京ICP备17062359号-4 如转载本站文章,请注明原作者和原发布媒体

本着互联网分享精神,本站部分内容转载于其他网站和媒体,如稿件涉及版权等问题,请联系本站进行删除或修改处理

客服电话:010-89506650 89504891 非工作时间可联系:18701278071(微信) QQ在线:511524637

新闻与原创文章投稿:tougao#cpmta.com 客服邮箱:info#cpmta.com(请将#换成@)

IT项目管理界——我国最大的IT项目管理门户网站,隶属卓橡公司

IT项目管理界官方微信

IT项目管理界官方微信

PMO大会官方微信

PMO大会官方微信