DevOps

过程、方法与系统的统称
不同于传统的瀑布式开发,开发人员不再是“流水线上的工人”,DevOps更关注软件开发人员和操作人员之间的有效协作,我们可以把DevOps看作开发、技术运营和质量保障(QA)三者的交集。


在理想的DevOps周期中,遵循着这样步骤——开发人员编写代码,在QA环境中构建并部署二进制文件,执行测试用例,以稳定的集成流程将成果部署至生产环境当中。很明显,这种方法非常强调构建、部署与测试环节的自动化。使用持续集成(CI)工具,自动化测试工具已经成为DevOps周期中的一种规范性因素。

敏捷测试与DevOps测试之间仍存在着不少细微差异,但熟悉敏捷开发人员一般能够快速适应DevOps。事实上,敏捷原则主要体现在开发及QA迭代当中,但在运营领域则普及度不高。DevOps的核心,正是纠正这一差距。现在,DevOps不再单纯强调持续集成,而更多强调“持续开发”。在流程中,编写出的代码将被提交至版本控制系统,而后在生产环境中进行构建、部署、测试与安装,之后交付最终用户使用。

由于整个环境与流程严格遵循标准化要求,各环节中的每位参与者都将因此受益。链内各项操作都以自动化方式进行,利益相关方能够将精力集中在设计并编码高质量的可交付成果之上,彻底摆脱构建、运营与QA流程带来的负担。从编写代码、到提交代码、再到生产部署以供最终用户使用,整个周期被显著缩短到3到4个小时之内。

DevOps中的QA角色

在传统的软件测试中,QA人员会在指定环境中对已部署的build成果进行功能与回归测试,并投入几天时间持续测试,关注现有成果还有哪些问题。但这一切在DevOps当中都变得完全不同。比如,QA人员需要在DevOps周期内协同工作,保证所有测试用例全面实现自动化,并获得接近100%的代码覆盖率;他们需要保证环境标准化,实现环境与QA框架间的自动对接;所有预测试任务、清理、后测试任务等全部自动执行,与持续集成周期保持统一。

DevOps要求交付链内的各项功能实现高度协同。这也意味着链内各参与者的角色定位有所变化,或者说开始相互融合,这为开发人员赋予了一定的部署权限。部署工程师可以将测试用例添加至QA repo当中,QA工程师则负责提供自动化测试用例。总体而言,链内的每位参与者都将为交付成果的质量与及时性负责。

DevOps与测试自动化

为了实现这种强大的速度与敏捷性,最重要的就是实现测试流程的全面自动化,确保其能够在QA环境中完成部署并自动运行。为此,我们需要构建起专门的自动化测试工具与持续集成工具,建立一套成熟的自动化测试框架,借此快速编写出新的测试用例,具体来看有以下几点。

第一,为特定build挑选合适的测试用例;第二,测试执行在本质上应该遵循精益原则;第三,QA与开发人员需要当面交流,确定特定build中可能产生重要影响的具体因素,同时执行针对性测试与健壮性测试;第四,需要配置专门的代码分析与覆盖率工具,确保能够实现接近100%的代码覆盖率;第五,回归测试的结果将很快过时,必须熟悉持续测试这一全新理念;第六,需要明确指定与新功能相关的测试策略,将临时build交付给QA人员,QA人员创建测试脚本并在临时build上运行自动化测试,直到代码稳定性达到要求并足以部署至生产环境中为止;第七,所有测试环境必须实现标准化,且部署流程必须全面自动化;第八,使用多种自动化技术,确保QA人员能够在多种跨平台环境或浏览器内运行自动化测试;第九,并发执行测试以缩短存活时间,这又将反过来促进DevOps的成功实施;第十,为每轮测试运行设置退出标准,确保在将测试结果反馈给流程后,由其做出明确的通过或未通过决策;第十一,在生产环境中部署代码之前,需要报告并修复已发现的问题或严重bug,相关信息通过同一事件链进行传递。

除此以外,应用程序监控的工作也不容忽视。QA人员还应及早发现问题并主动报告,在生产环境上设置监控机制以便在bug引发实际故障之前将其识别出来,还可以设置专门的计数器,如响应时间、内存与CPU利用率等,为最终用户提供全面的洞察能力。举个例子,如果在各个build中,登录的平均响应时间逐渐增加,则后续build很可能因为响应时间过长而影响到最终用户的实际使用体验。

同样的,QA人员还可以在生产环境中定期执行部分现有高优先级测试用例,借此主动监控运行环境。此项策略可以捕捉到“偶发性”或者“无法重现”的bug,最终提升应用程序稳定性、增强最终用户满意度。最终,这些监控结果都能够以丰富的报告形式,如包括故障日志与屏幕截图等自动收集并发布。

结语

瀑布式流程让位于V-Model,V-Model又被敏捷化取代。软件开发理念就是这样一代代快速更迭。毫无疑问,DevOps代表着未来。这样一种持续改进周期,将让软件开发流程获得全面的动态特性。我们有必要接纳DevOps、理解DevOps并最终贯彻DevOps。以往的测试概念仍然有效,将这些宝贵的经验与自动化、特别是更高水平的自动化相结合,正是实现DevOps成功的核心前提。

DevOps冲击下的软件测试相关推荐

  1. 5G冲击下,软件测试行业面临的新挑战和机遇

    背景 1G:1G是已经淘汰的以模拟技术为基础的蜂窝无线电话系统,在那个时代,由于技术限制,设计上因为使用模拟调制.FDMA(频分多址),其抗干扰性能差,频率复用度和系统容量都不高. 2G:由于1G有着 ...

  2. DevOps交付模式下,软件测试的那些事

    众所周知,近10年IT领域有两个关键的风向转变,传统IT向云计算转变,传统瀑布和迭代开发模式向敏捷开发模式转变.这两个转变促成了DevOps产品交付模式的出现.互联网行业竞争激烈,许多公司专注于产品和 ...

  3. 【华为云实战开发】16.DevOps交付模式下的软件测试

    文:华为云DevCloud  兵东 众所周知,近10年IT领域有两个关键的风向转变,传统IT向云计算转变,传统瀑布和迭代开发模式向敏捷开发模式转变.这两个转变促成了DevOps产品交付模式的出现.互联 ...

  4. 物联网、自动化的冲击下未来20年职场六大趋势

    您的行业,20年后还会在吗?在物联网.自动化的冲击下,许多人担心自己的工作即将不保,就算暂时幸免于难,也可能在5年.10年后发现走错行. 在快速变化的时代,要预测一个行业的存亡的确愈来愈困难,不过澳洲 ...

  5. 大数据冲击下图书出版编辑转型策略探析(非原创)

    一.引言 图书出版编辑工作作为一项系统工程,具有传播和积累科学技术和文化知识,弘扬优秀民族文化,丰富和提高人民精神生活的重要作用.当前,图书出版编辑工作正面临大数据的冲击挑战,在这种形势下,图书出版工 ...

  6. DevOps背景下的分合之事

    DevOps倡导"谁开发,谁运维"和开发运维一体化.那么是不是简单地把开发和运维人员放在一起就完事了呢? 01 - "插队"的故事 小明入职时是运维专员,原来隶 ...

  7. 在大数据冲击下的工业质量管理对策

    ZDNET至顶网CIO与应用频道 03月20日 综合消息:说起大数据,人们很容易想起电商.银行.电信等行业.殊不知,传统的制造业也正在(甚至更早地)面临着大数据的冲击,在产品研发.工艺设计.质量管理. ...

  8. 疫情冲击下,探讨大数据交易市场的数据资产的管理与定价

    原创 | 点宽学院 作者 | 陈亮威 全文字数3129字,建议阅读时长 9 分钟. 大数据资产是企业重要的资源,结合国内外研究热点,大数据资产定价这一问题是业内重要的研究课题,也是其中的研究难点.同时 ...

  9. 知识就是力量,图谱路在何方 | ChatGPT冲击下,招商银行如何“抢救”知识图谱?...

    "知识就是力量"我们耳熟能详,但培根的这句话其实还有后半句"更重要的是运用知识的技能".对于人工智能来说,知识图谱就是其如何对知识进行运用的技能体现.在金融领域 ...

最新文章

  1. How Vmware snapshots works
  2. 创建线程的两种方式:继承Thread类和实现Runnable接口
  3. ubuntu下OpenPose的安装、使用、初步介绍
  4. TJU_SCS_软件测试_Lab1
  5. OSChina 周三乱弹 ——别拿熊猫不当熊!
  6. 软件项目经理应具备的素质和条件_软件企业项目经理应具备的基本能力
  7. 序列标注 | (4) Hierarchically-Refined Label Attention Network for Sequence Labeling
  8. 内网代理神奇Venom
  9. flutter 获取定位_Flutter 获取定位
  10. antd菜单使用动态图标
  11. 0xffffffff是多少?
  12. 字体的大小(pt)和像素(px)如何转换?
  13. overleaf模板导入后中文无法识别问题解决方案
  14. bzoj2876 [Noi2012]骑行川藏 [二分+拉格朗日乘数法]
  15. c 常用数据结构解析
  16. 2021-06-13早龙广告视频脚本 ——《世间不过是一顿早餐》
  17. Vue 中 store 基本用法
  18. python3 协程爬虫,爬取豆瓣排行榜json数据
  19. “跳槽啦”一个广告菜鸟的自白
  20. Photoshop-avi-gif-合集

热门文章

  1. SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉刷新
  2. Highcharts使用=====通过指定日期显示曲线
  3. ftp文件传输协议的匿名用户、系统用户的实现详解过程
  4. cacti监控Memcached
  5. springboot租房管理系统答辩PPT模板
  6. linux命令grep和find怎么用,Linux下find和grep常用命令及区别介绍
  7. 基于机器视觉的细小金属件表面污渍检测
  8. 对花不准(错版、套版不准、错花)的原因
  9. 详解印染产品纬斜疵病产生原因及如何预防
  10. 用于机器学习的Python和HDFS