为什么入门测试前一定要先掌握DevOps/TestOps?

Posted 达内软件测试培训

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么入门测试前一定要先掌握DevOps/TestOps?相关的知识,希望对你有一定的参考价值。

最新:软件测试免费课程本月26日火热开讲,点击文末“阅读原文”快速抢报

【推荐阅读】为什么入门测试前一定要先掌握DevOps/TestOps?


天下大势分久必合合久必分,早期的软件开发只有软件工程师一人完成,为了提高效率逐渐实行分工模式:开发、测试、运维。不同角色担任不同的任务。分工越来越细之后带来了问题也越来越突出,那就是各角色之间的沟通成本越来越高。而全栈工程师、DevOps/TestOps相关职位和概念的提出,本质就是把不同的工作集中在一个人身上,或者让一个人涉及到更多方面的工作,从而来降低这种沟通成本。


要想了解TestOps,必须要先了解DevOps。


DevOps 介绍


wikipedia解释:DevOps是一种软件工程文化和实践,旨在统一软件开发(Dev)和软件运维(Ops)。DevOps运动的主要特点是在软件构建的所有步骤中极力提倡自动化和监控,从集成、测试、发布到部署和基础设施管理。DevOps的目标是缩短开发周期,增加部署频率,更可靠的发布,与业务目标紧密结合。

为什么入门测试前一定要先掌握DevOps/TestOps? 

Dev、QA、Ops的交汇处我们认为就是DevOps。实际上,DevOps就是把产品开发过程中各角色交汇处的活给干了,让各部门都专注于干他们自己的活儿。

 

DevOps与持续集成


DevOps是一个完整的面向IT运维的工作流,以IT自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。

 

DevOps 技术栈与工具链


只讲理论是非常空洞的,我们必须通过技术和工具将DevOps落地。这里整理了主流的工具,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,这里补充了一些国内的服务,可以让你更好的执行实施 DevOps 工作流。

  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Gitee


  • 自动化构建和测试:Apache Ant、Maven、Selenium、UnitTest、JUnit、JMeter、Gradle、phpUnit


  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go


  • 容器平台:Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)


  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible


  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere


  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat


  • 日志管理:Logstash、CollectD、StatsD、ElasticSearch、Logstash


  • 监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana


除了这种技术和工具外,在项目中制定出符合DevOps的工作流程是关键,但是,这个东西没有固定模板的,不同的项目、不同的团队和公司文化流程和可能有所不同,只要符合DevOps的理念和思想,你们需要走出一条自己的路。

 

TestOps 介绍


TestOps主要目的是推动整个研发体系与发布体系更多在质量方面。可以这样理解DevOps是从研发推动配合运维和测试,而TestOps是从测试角度推动研发和运维。所以TestOps才是真正把测试落地到整个研发体系的关键岗位。


关于TestOps定义:测试运维,测试角度推动研发、运维、持续测试到持续集成。


新的趋势图:

 

为什么入门测试前一定要先掌握DevOps/TestOps?


测试与开发交叉的工作,通过测试驱动开发(TestDev)来进行。

测试与运维交叉的工作,通过TestOps来完成。

开发与运维交叉的工作,通过DevOps来完成。

三个角色交叉的部分工作,由god来做吧!哈哈。

 

TestOps技能


“TestOps”团队的本质是专注于提供所需的基础设施和平台所有级别的测试,从功能测试到集成测试,再到低级单元和API测试。

  • Dev能力:Java、Python、PHP、Shell

  • Ops能力:Jenkins、Docker、Maven、Ansible、Git、Linux

  • Test能力:测试用例、测试方法、缺陷生命周期、单元测试、接口测试、Selenium


TestOps未来的价值


  • 团队价值:推动先进的团队协作方式,持续交付生命周期的把控,持续集成高质量要求。

  • 个人价值:DevOps和TestOps技能,自动化测试推动持续交付,主导开发流程的生命周期。


DevOps能推动整个测试和运维团队统一整个研发流程,帮助团队更敏捷的提交产品。他能解决流程问题,但无法发现开发过程中的测试的缺陷。只有更专业TestOps的站在专业的测试角度推动开发和运维一起进行。TestOps和DevOps形成一个完整的持续集成和持续交付体系,才是真正提升整个团队的效率。

 

总结


最后,抛开这些概念,我觉得测试人员提升自己的综合能力才是关键:培养自己的编程能力,更早的介入项目测试(单元、接口),提高自己的(接口/UI)自动化能力,提升测试效率。学习运维技术,能够独立部署和维护测试环境。


免费名额火热抢先中

为什么入门测试前一定要先掌握DevOps/TestOps?

好消息,平安产险承保达内学员平安就业教育保障险,帮助达内学员解决就业的后顾之忧,只要你是达内学员,就可以在达内各中心参保,为你的高薪就业保驾护航。

内容推荐:



*声明:内容与图片均来源于网络(部分内容有修改),如有错误或侵权,请与我们联系删除。

▲了解更多软件测试资讯,长按上方二维码


点击“ 阅读原文 ”抢报软件测试免费试听课

以上是关于为什么入门测试前一定要先掌握DevOps/TestOps?的主要内容,如果未能解决你的问题,请参考以下文章

学电脑编程入门要先学习什么

入门运维前,一定要先熟知的28个Unix/Linux的命令行神器!

入门前,必须先熟知的五类软件测试工具

Junit4入门之如何编写好的测试类

Python入门基本语法

Python入门基本语法