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

预警:传统的QA岗位将被DevOps淘汰

导读在大多数机构或公司里,软件开发过程主要遵循一个或多个开发模型,例如瀑布模型或敏捷模型。在瀑布模型中,测试活动一般都在后期进行。软件开发完成后,缺陷被QA

导读 在大多数机构或公司里,软件开发过程主要遵循一个或多个开发模型,例如瀑布模型或敏捷模型。在瀑布模型中,测试活动一般都在后期进行。软件开发完成后,缺陷被QA团队找出,然后再被修复。后两个活动不断循环和重复,指导管理者认为软件可以被公开发布为止。

如果你是一名软件质量保障人员(QA),那么是时候去找一份新的工作了(或者get新技能准备升级转型)。绝大多数情况下,软件开发过程包括如下几个主要活动:

  • 进行需求分析
  • 创建软件产品的规格说明书
  • 构建软件
  • 软件(或服务)质量调查
  • 发现、修复缺陷
  • 部署软件到实际生产环境

在大多数机构或公司里,软件开发过程主要遵循一个或多个开发模型,例如瀑布模型或敏捷模型。在瀑布模型中,测试活动一般都在后期进行。软件开发完成后,缺陷被QA团队找出,然后再被修复。后两个活动不断循环和重复,指导管理者认为软件可以被公开发布为止。

在敏捷模型中,包括QA在内的个人和团队在一起紧密工作,在一种持续的基础上不断发布、更新软件,而在某个时间一起部署整个软件。DevOps,就像我们在之前的文章中已经提到过的,是下一代的敏捷开发模型。敏捷是一种在软件开发中不断思考的方式,而DevOps则更进一步发展,是实现组织内开发哲学的具体开发文化的变革。

而且这种实现方式消除了QA作为组织中一个单独实体的存在意义,将质量保障的工作分散给不同的开发团队,尽管许多人认为原来的质量保障的规则仍然需要通过这种或其它的方式存在。

过去对DevOps中QA的理解

其中一种常见的观点认为DevOps位于开发团队、运营团队、QA团队的中心(见上韦恩图):“一方面,QA团队和开发团队一起工作,尽量将他们的测试融入到系统的持续集成中。测试必须做到没有人力干预,独立产生他们自己的测试数据。另一方面,QA团队和运营团队一起合作完成监控工具,也可能一起不断对产品进行Smoke Test。有一种可能是运营团队在开发系统备份和恢复、部署回滚的脚本或者灾难恢复的脚本。”

在NeoTYS的Tim Hinds则从不同的角度看待这个问题,他认为“DevOps QA”的作用是预防缺陷的发生而不是检测缺陷:“QA在组织中担任非常关键的角色,因为他们有足够的能力和权限能够在系统正常工作时将其发布出去并且在发现系统不工作时将其回滚。这和10年前的QA团队的观念相比是非常不同的,当时认为QA团队的主要职责是发现缺陷。今天QA团队则被要求避免缺陷被暴露给公众。”

但是客观的说,上述的观点都是错误的。

为什么DevOps不需要(传统型的)QA

DevOps通常使用持续集成(CI)和持续交付(CD)。在持续集成中,开发人员利用各种持续集成工具来不断将代码整合到共享代码库中,甚至每天多次提交,而且DevOps依赖自动化来确保版本质量。如果想要进行持续角度,就不能有人工干预,这样才能确保在任何一个时间都可以发布代码库中的任何一段代码的任何一个版本。

基本上,传统的QA不可能在完整的持续集成/持续交付的环境中工作。在旧的结构中,软件产品的质量保障的责任是在QA的手里、而今天,它则是DevOps的开发文化和开发哲学的一部分——所有开发人员都有这个责任而非仅仅组织中的一个独立的团队拥有这个责任。

具体来说,DevOps需要使用诸如BUGtrack、JIRA和Github等产品和工具来不断汇总和报告软件中的错误和缺陷。Selenium、Cucumber、Junit、TestNG和JMeter等自动测试工具则用于管理、执行和度量功能测试等。

最后总结一下,如果在开发团队和运营团队中间还阻隔了一层人员,那么你就不能无缝执行持续集成和持续交付,也就不能进行DevOps。因此,要想正确的运行DevOps操作,则根本不能拥有(传统型的)QA团队。

QA的未来

那么对于QA工作者来说他们之后会怎么样呢?作为曾经美国最最幸福的工作之一的QA,随着越来越多的组织使用DevOps,传统型的QA工作者们的位置会变得越来越冗余。

根据美国劳工统计局(BLS)的报告,软件质量工程师是高新技术职业中增长速度预计将比平均水平慢的职业之一:

然而,美国劳工统计局的统计数字可能太泛化了因此劳工局还没有将DevOps认定为一个独立的职业:

作为证据,仅仅看一下Google趋势中搜索数据的相对数量就会发现“sqa jobs”的搜索数量正在缓慢下降然而“devops jobs”的搜索数量则在迅速增长:


本文转载自:http://www.linuxprobe.com/oa-to-devops.html

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/


推荐阅读
  • 关于ScrumXPDevOps的学习
    最近听了ECUG大会上孙敬云老师的分享感觉受益匪浅,毕竟大学课本上只讲到瀑布模型就没有下文了,工作以后一直贯彻的都是Scrum路线,一直也没有时间好好的去学习整理这部分的知识,直到 ... [详细]
  • 无论你是刚毕业的大学生,还是想在职业中寻求进步的经验丰富的IT专家,这些提示都可以帮你成为DevOps工程师。DevOps工程是一个备受称赞的热门职业。不管你是刚毕业正在找第一份工 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 持续集成概述与实践指南
    本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文整理了Java中com.atlassian.jira.issue.Issue.getDueDate()方法的一些代码示例,展示了Issue.getDue ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 自动化部署服务——AWS CodeDeploy 快速入门
    https:amazonaws-china.comcnblogschinagetting-started-with-codedeploy作为DevOps和微服务的深入践行者 ... [详细]
  • 本文整理了Java中com.atlassian.scheduler.config.JobConfig类的一些代码示例,展示了JobConfig ... [详细]
author-avatar
mobiledu2502924733
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有