DevOps模式下测试变化--学习与思考

公司逐渐由敏捷模式向DevOps模式转型,作为测试人员的工作有着什么样的变化,DevOps给测试带来的改变有什么,需要好好学习了解下。记录学习过程有用的知识点及好的学习资料。

DevOps拼写

是开发(development)和运维(operations)的缩写DevOps

DevOps产生背景:

为适应市场的快速变化,要求企业的产品快速迭代,柔性应对用户需求,滋生了DevOps。

软件开发模型主要经历了以下几个阶段:

DevOps模式下测试变化--学习与思考_第1张图片

 瀑布模型解决了分工协作困难的问题,但是一年1~2次的发布流程太慢,且无法满足日益变化的需求变更。

敏捷开发解决了需求频繁变更、上线慢的问题。但是未解决开发和运维的鸿沟,甚至给开发和维护之间增加了非常多困难和争议。

DevOps在敏捷的基础上,主要解决开发和运维、运营之间的隔阂,更强调自需求设计至生产部署的端到端协同运作,更强调精益、高效;更强调想尽办法剔除每个环节的浪费,极致追求每个环节的高生产率,达到快速、高质量上线的目的。

聊聊DevOps下的测试技术(1) 聊聊DevOps测试-云社区-华为云----上述来源: 聊聊DevOps下的测试技术(1) 聊聊DevOps测试-云社区-华为云

DevOps价值追求

价值探索和快速验证。

价值探索是快速发现和识别外部客户的真实需求,为其创造价值点。

"快速验证环"要求企业在找到业务问题制定业务目标后,快速实现和落地价值点。

测试属于"快速验证环",过程中要求开发/测试/运维的角色紧密配合,高效高质地落地验证新特性。

DevOps落地价值

业务响应能力提升

DevOps的落地,在提升效率的同时可以提升交付的质量,自动化程度的提升可以提升对业务需求迭代的响应能力,研运吞吐量可以得到几何级的提升。

研发交付规范提升

不同项目或产品的研发团队,在同一套平台上开展研发交付活动,通过平台预先制定的流程、规则等约束不同研发团队的交付活动,从而实现研发交付规范与标准的统一,实现企业级的优化提升与改进。

研发交付效率提升

通过针对研发交付过程中的环境准备、编译构建、代码质量检查、系统测试、软件部署等过程的自动化实现,降低人工操作或等待人工操作时间,全面提升研发交付过程的自动化水平,提升研发交付效率。

研发交付质量提升

研发交付质量的从现有的部署结果质量保障,延伸到源代码质量保障、测试覆盖度保障等过程,从而实现从源代码到部署全过程的质量检查与提升,全链路提升研发交付质量

研发交付管控提升

针对研发交付的需求、开发、测试、发布和部署等过程,进行全面的数据化和度量,针对重点关注指标建立质量门禁,从而实现自动化的技术管控,结合已有的行政管控,由单一的结果管控,实现研发交付“过程+结果”管控,提升管控力度。

研发交付持续优化

基于DevOps平台,通过流水线过程数据收集,以及进一步的度量分析,实现研发交付过程的持续优化,既包括DevOps平台的优化,也包括研发交付流程、标准规范等方面的优化。

----上述参考来源:【干货】DevOps的演进与落地价值_业务

DevOps下测试改变

(1)按部就班集中测试-》高频快速测试

(2)手工测试占比重-》自动化测试占比提升,接口自动化、契约自动化测试、功能自动化被大量使用,用来提高上线测试进度

(3)注重开发完成后测试流程单个环节,忽略开发前及开发中测试人员的参与,部署上线后产品运行控制及质量参与-》强调测试左移,测试右移,测试活动已经贯穿到DevOps全环节,开发团队也要承担起测试的任务,测试团队也会接入到开发阶段的测试及测试指导活动

(4)UT弱化,API和契约测试更被愿意接受:UT自动化依旧存在,由于UT维护工作量巨大,且需求变化快,导致UT的投入产出不成比例,UT自动化权重下降,使用API和契约、Mock等测试替代。

(5)部署自动化,灰度发布越来越受欢迎:服务的部署已经完全被自动化工具替换,测试基于部署的环境进行自助测试。同时,灰度发布和A/B测试很好的解决了流程过快导致的全局性风险,升级和回退成为常规活动。

(6)测试人员对平台工具依赖越来越高:DevOps流程环节打通后,更加依赖平台工具的能力做支撑。

部分摘至:聊聊DevOps下的测试技术(1) 聊聊DevOps测试-云社区-华为云

测试左右移

测试左移:是指测试人员更早地参与到软件项目前期的各项活动中,在功能开发之前定义好相关的测试用例,提前发现质量问题。早期引入测试过程有助于防止缺陷,并为开发人员提供了在整个开发阶段应用动态变更的灵活性。

测试右移:就是直接在生产环境中监控,并且实时获取用户反馈。在这种方法中,从用户侧收集反馈,根据用户反馈持续改进产品的用户体验满意度,提高产品质量。测试右移有助于更好的响应意外情况。

--------对DevOps测试的一些思考---------

DevOps中质量保证(QA)不再是测试人员的专属责任,而是全体人员都要为之努力的方向。测试人员提前介入到开发工作中,与开发人员一起制定测试计划;开发人员可以参与配置部署;运维人员可以向自动化测试用例库填写测试用例;测试人员随时将自动化测试用例配置到持续交付链中,所有成员的共同目的都是交付高效、高质量的产品。

持续测试要求测试人员具有一定的编码能力。测试人员不但要掌握常用的测试工具、版本控制工具和集成工具的使用,还要能读懂代码,检查构建日志,不断的优化整个测试策略和测试用例。测试人员还必须参与到整个持续交付过程中,以最高效的方式保证产品的质量。

测试人员应该专注于测试策略的不断优化。自动化测试固然是实现持续集成最重要的方式,但并不是所有的测试都适合自动化,比如易用性测试和界面一致性测试等。测试人员需要集中在不断的测试策略优化上,通过调整各种测试用例的比例、增加测试覆盖度、提高测试用例的质量以及快速的反馈来提高测试效率,实现全面的质量保障。DevOps时代测试应该如何应对?_开发https://www.sohu.com/a/292575150_753085https://blog.csdn.net/wetest_tencent/article/details/111195675https://blog.csdn.net/wetest_tencent/article/details/111195675

你可能感兴趣的:(DevOps,devops)