速度和质量不可兼得,为什么DevOps落地如此困难?
扫描二维码
随时随地手机看文章
据 Veritis 发布的《2019 年 DevOps 状况报告》显示,正确实施 DevOps 的组织有着明显的竞争优势:软件部署频率提高 208 倍,事件恢复速度提高 2604 倍,变更失败率降低 7 倍。这项结果让更多企业看到了DevOps的高效之处,同时也使得 DevOps 在近年来慢慢有成为主流的趋势。
近期,Techstrong Research 和 Testlio 对1000 多名工程师和 DevOps 专业人士进行了调查,以了解他们对人才短缺、自动化和左移的看法。调查结果发现,大部分企业都面临人才短缺的问题,同时,很多团队为了提高软件交付速度,而不得不牺牲软件质量。
以下是调查结果中的几组数据:
80% 的企业缺少 QE 人才
在软件开发过程中,质量工程师(Quality Engineer,QE)是一个关键的岗位,其主要工作是把一些手动、可重复的任务自动化,使流程更高效且不易出错。Techstrong Research 的数据显示,仅有 12% 的团队拥有合适的 QE 人才,超过 80% 找不到 QE 来支持测试和自动化,其中有大量团队没有足够的人才招聘预算。
事实上,不仅仅是 QE面临人才短缺,而是所有 DevOps 技能职位都面临人才短缺。Gartner 曾预测,由于人才的短缺,到 2022 年75% 的 DevOps 计划将无法达到预期。
81% 的企业无法实现全自动化测试
测试自动化是测试团队的关键能力之一,调查发现,已经有过半的团队利用自动化来进行测试,但其中仅有 19% 的团队能够实现全自动化测试,12% 的企业仍然采用手动测试,还有26% 的受访者表示希望能够在测试中利用自动化。
在各种类型的测试中,自动化的最佳用途是回归测试。自动化回归测试可以节省测试人员的时间,让他们可以有更多时间专注于新功能的探索性测试。如果实施得当,自动检查可以在最少或没有监督以及人工干预最少的情况下自动运行。
不过,当拥有了自动化测试工具时,也要警惕一种观念:自动化所有的测试,是为了摆脱所有“手动测试人员”。
54% 的企业无法满足用户需求
还有一个值得关注的调查是,用户对新软件的特性、功能和更新的持续需求,增加了企业快速交付的压力。54% 的受访者表示,无法满足用户对开发新软件和更新软件的需求。
而那些声称“能做到”的公司,通常会牺牲质量以换取速度。比如,为了节省时间,在发布前进行不完整或表面测试,这样开发出来的软件,虽然可以跟着发布计划走,但并不能达到消费者对软件质量的预期。随着时间推移,这些质量问题最终会暴露出来,从而造成用户不信任甚至用户流失。
为了平衡速度和质量,Testlio 合作伙伴生态系统副总裁 Emeka Obianwu 建议避免零和游戏。快速迭代和开发高质量的软件不需要相互阻碍。在高度优化的软件开发周期中,开发速度和软件质量应该共同发展。
79% 的企业在CI/CD 管道集成测试
由于项目团队在交付无缺陷产品方面承受着巨大压力,许多人正在采用左移方法、持续测试策略和严格封闭的反馈循环,以便将测试集成到 CI/CD 管道的每个部分。Techstrong Research 调查显示,将测试集成到 CI/CD 管道的企业达到了79% ,不过他们大部分都处于浅层次实践之中。
应用程序测试在平衡速度和质量方面扮演着至关重要的角色,为了跟上对速度的需求和持续的技能短缺,将自动化和测试集成到 DevOps 流程中至关重要。
58% 的企业认为“左移”意味着实现持续测试
“左移”这一口号在 DevOps 市场上已经讨论了好几年,并且正在扩展到业务的其他部分。但是,当涉及到测试时,“左移”意味着什么呢?Techstrong Research 发现,58% 的企业认为“左移”意味着实现持续测试。这表明,整个行业发生了巨大的变化,在过去几年中,“左移”就是将测试负担转移到开发人员身上的代名词。
在软件开发生命周期 (SDLC) 中,检测和修复软件缺陷的成本随时间呈指数增长。越在开发过程的早期测试修复问题,左移测试对成本的降低越显著。它通过使代码与早期测试用例保持一致来减少初始开发阶段的错误,缺陷在刚发现时就被修复,而不是在最终的测试周期之后进行修复,以此节省维修成本和宝贵的开发时间。
一个典型的测试周期是 DevOps 团队交付代码,测试人员运行测试然后发回问题,然后循环重复,而左移则可以消除开发和测试之间的冗长来回。 接受左移并避开标准的两周黑盒测试周期,使测试成为 CI/CD 管道中的支柱,团队能够满足覆盖率、质量和速度要求。
Techstrong Research调查结果所暴露出的人才短缺、测试自动化程度不高、牺牲质量换速度等问题,并不是突然出现的,而是一直以来就存在的。
有许多关注DevOps的企业一直在寻求解决之法,通过利用工具来完善流程成为业界共识。因此有许多DevOps工具应运而生,如提供 bug 跟踪和敏捷项目管理功能的问题跟踪器JIRA、自动化构建Java项目的Maven等,但市面上的大部分工具能解决的都只是一部分问题,不能从根本上扫除企业在DevOps进程中的障碍。
如何从根本上扫除DevOps实践过程中的障碍,成了大家急需解决的痛点,也正是看到这一点,飞算云智总裁陈定玮在六年前就开始了飞算 SoFlu 软件机器人的研发。他说,DevOps 的实施对人才的依赖性强,且对人员的基本素质要求非常高,这也是很多 IT 公司在实践 DevOps 时不得不以失败告终的原因。
以上文提到的测试问题为例,飞算 SoFlu 软件机器人的全自动测试平台能够优化DevOps在企业中的实施,它能够以自动化的方式,实现测试生命周期管理、测试用例自动生成、测试数据管理、精准回归测试等一系列功能,不仅降低了测试门槛,让初学者轻松上手,还可以减少测试对资源的占用,提高执行效率。
此外,飞算SoFlu软件机器人还采用了通用的技术功能模块,支持循环、条件判断、函数调用等组件,用户只要根据业务逻辑,通过拖拽方式进行参数配置,就能完成编程。而且,平台统一了代码规范,不依赖人工编码、审码,因此可以从源头上保证代码高质量。总而言之, 飞算SoFlu 软件机器人通过可视化编程的方式满足低门槛开发需求,输入流程图即可实现自动开发。
飞算 SoFlu软件机器人能解决的不只是开发问题。事实上,在软件项目开发过程中,风险几乎无处不在。项目进度是否正常、软件质量是否严格把控、技术是否成熟、系统架构是否符合性能指标等问题,都会威胁到软件的最终交付结果。有效地识别、控制和管理风险,对项目的成功起着至关重要的作用。
而通过飞算 SoFlu软件机器人,一人就能完成开发、测试一整套流程,不仅提高了开发和测试效率,保证了代码质量,还使软件工程全流程摆脱对人力的依赖,解决了人才不足的问题。用飞算SoFlu软件机器人进行开发,可以真正实现“一人一项目,十人抵百人”。