DevOps自动化测试的原则和实践

news/2024/5/14 6:27:52/文章来源:https://blog.csdn.net/IT_LanTian/article/details/126941451

DevOps是为了在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间。在对系统进行变更时,质量很重要。高质量才能让业务价值传递到系统干系人。『自动化测试既是提高质量的一种重要手段,也是实施持续测试必需的能力,因此它是DevOps持续交付流水线中必不可少的环节』。本文简单阐述一下在DevOps持续交付流水线中自动化测试的原则和实践。

1、自动化测试的原则

DevOps实施自动化测试主要有以下原则:全员参与、更早的介入、指标量化和收益至上。

  • 全员参与

在DevOps团队中一般不会有专职的测试人员。DevOps参与的人是系统的干系人,运维、客户、产品经理是首要受众群体,其实是设计师、架构师,最后才是技术团队。

  • 更早的介入

DevOps测试工作贯穿整个软件交付生命周期,在需求阶段即进行业务级的测试设计,在需求特性开发、交付整个过程中同步进行并完成测试任务。

  • 指标量化

所有的测试指标应该量化,且是全团队共同的职责。所有的指标要有阀值,比如代码复杂度要小于<多少,单元测试率要>多少,技术债务中验证类问题不能高于多少。只有通过量化的指标才能进行流水的下一个节点

  • 收益至上

DevOps尤重收益。在自动化技术选型上优先收益率最高是单元测试,其次接口服务测试、最后才界面测试。

2、自动化测试的实践 

自动化测试实践除了依赖自动化的测试服务外,还有其他三个要素即人、过程和方法。

  • 对平台的自动化的测试服务要求

测试服务对象包含一切,“软件定义一切”。『一切即可测试』,包括文档、配置、环境、发布包、脚本、基础设施。

测试服务功能涵盖多种类型,包括代码扫描、功能测试、性能测试、安全测试、兼容性测试、乃至验收测试和用户体验性测试。

测试服务自动触发,通过持续交付流水线节点触发自动化测试服务。DevOps持续交付流水线原则上要求5分钟内结束。这不仅需要分布式的测试执行技术,还要求应用架构能够定义测试优先级以及相配套的快速部署技术。

测试服务基础资源即开即用,借助容器、弹性扩缩等技术让自动化测试能力服务化。

自动化测试服务能力进行分层,自动化测试平台提供基础测试服务和组件接入能力。项目个性化的技术要求和跨系统公用组件由项目组自行建设,测试平台负责接入。

团队技能要求提升,即是全栈开发团队也是全栈测试团队,要求具备各层级测试的能力。团队不再需求基础手工测试人员。但在团队中需要有测试架构师进行整体测试方案设计,负责和平台进行对接事宜。需要有测试领域技术专家按照测试场景进行技术分析和选型,并提供业务和技术组件。需要测试专家能够指导开发工程师进行测试组件和用例的开发。

  • 过程

要实现测试工作前移,必然要修改原来需求、开发、测试、运维串联的过程,采用协同并行工作模式。团队要采用敏捷的开发模式,团队成员数量尽量少、支撑的的业务系统尽量的集中,这样确保每个团队的成员对用户场景有统一认识。

在开发迭代中,做故事澄清、原型设计、数据模型设计时,可以并行进行测试对象分析、测试点分析、测试数据、测试组件等设计。越早的发现问题,修复的成本越低。

同一个故事的开发任务和测试任务安排给同一个人,测试驱动开发的另外一个好处是通过用例,让开发从用户的角度去审视自己的设计从而提升质量。

  • 实施方法

用例管理要坚持“三易”, 用例执行要支持“三更”

用例管理的「三易」

1.易管理:

“比遗留代码更可怕的是遗留的测试代码”,测试代码管理复杂度远高于代码本身。一定要建立统一的管理规范。团队的测试规范包括用例规范、组件规范、过程规范、环境管理规范必须事前先建立。要建立用例的评估把控机制,做到事前评审事后抽查。

2.易维护:

采用分层设计,用例和组件分离,用例本身只关注业务逻辑。区分变化与不变、资源文件、环境信息与用例代码分离。

3.易定位:

测试用例不相互依赖,要求明确的断言信息。

 

用例执行的「三更」

1.更多:

采用各种各样的自动化测试方式来解决业务测试的问题,而不是单一技术手段。

2.更早:

尽早测试,尤其是已知的风险因素,确保在交付生命周期的后期发现的问题更少。

3.更频繁:

不断的重复进行测试,向开发团队提供代码质量的迭代式反馈。

3、总结

实施自动化测试也要重视收益。测试工作应该贯穿整个软件交付生命周期,越早的发现问题,修复的成本越低。在实施自动化测试的过程中,不一定减少测试人员的个数,但能逐步提升测试人员素质。

好的自化测试实践,不仅仅是依赖自动化测试服务。还依赖与团队、任务的协作方式,以及自动化测试建设过程中的一些小技巧。


绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助....

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_10441.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改WebBrowser控件的内核解决方案

首先说一下原理 当下很大浏览器他们都是用了IE的core, 这个core只提供HTML/JS的执行和渲染,并没有给出关于界面和一些特性上的事,所以开发自己浏览器如果基于IE core需要自己完成这些内容。 一张图很好的说明了这个情况,IE浏览器的架构:http://msdn.microsoft.com/en-us/li…

nginx - 负载均衡配置-负载均衡策略

目录 知识点1&#xff1a;网站流量分析指标 什么是pv&#xff1f; 什么是uv&#xff1f; 什么是IP&#xff1f; 知识点2&#xff1a;正向代理和反向代理 知识点3&#xff1a;负载均衡实验 IP地址规划&#xff1a; 实验拓扑图 知识点4&#xff1a;负载均衡策略 1、请求…

Spring5.3学习——from 官网 day1-1

Spring5.3学习——from 官网day1-1Spring5.3学习——from 官网day1-1前言概述Spring的设计理念Spring核心&#xff1a;IOC什么是IOC解释IOC容器的包什么是BeanBeanFactory接口简述ApplicationContext接口简述BeanFactory源码描述以下是Bean工厂创建和销毁bean的完整生命周期流程…

Matlab论文插图绘制模板第48期—平行坐标图(Parallelplot)

​上一期文章中&#xff0c;分享了Matlab帕累托图的绘制模板&#xff1a; 这一次&#xff0c;再来分享一种特殊的线图&#xff1a;平行坐标图。 ‘平行坐标图是一种通常的可视化方法&#xff0c;用于对高维几何和多元数据的可视化……为了克服传统的笛卡尔直角坐标系容易耗尽空…

好心情精神心理科:80%双相情感障碍被误诊,千万注意鉴别

双相情感障碍又称躁郁症&#xff0c;其表现复杂&#xff0c;容易与其他精神疾病&#xff08;包括边缘型人格障碍&#xff09;相混淆&#xff0c;超过80%的患者未能得到正确诊断。 具体如何区分双相情感障碍与边缘型人格障碍&#xff1f;在回答这个问题之前&#xff0c;好心情精…

从规模走向规模经济,锅圈食汇回归餐饮初心

预制菜源自美国&#xff0c;在日本因冷链技术发展而普及。后疫情时代&#xff0c;预制菜在中国餐饮市场加速渗透&#xff0c;成为行业的新风向。 9月&#xff0c;第一财经与CBNData发布“Growth502022中国新消费品牌年度增长力榜单”&#xff0c;预制菜品牌锅圈食汇入选。 锅…

设计模式学习笔记--责任链模式

责任链模式 责任链模式是一种对象的行为模式。在责任链模式里&#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递&#xff0c;直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…

Tuxera NTFS21Mac苹果电脑读取硬盘磁盘软件

我们经常会使用移动硬盘或 U 盘进行大体积文件的分享、携带。但有时候别人提供的NTFS移动硬盘或者U 盘在 Mac 电脑中只能读取&#xff0c;无法将文件导入到其中。这是因为常见的 NTFS 硬盘格式在 Mac 中不能兼容。 当你从 Windows 转到了 Mac 平台&#xff0c;可能会发现之前用…

RocketMQ-流程图-概念

文章目录RocketMq的角色消息发送的流程RocketMq的角色 Producer&#xff1a;消息的发送者&#xff0c;生产者&#xff1b;举例&#xff1a;发件人Consumer&#xff1a;消息接收者&#xff0c;消费者&#xff1b;举例&#xff1a;收件人Broker&#xff1a;暂存和传输消息的通道…

Python数据分析教程(一):Numpy

数据的纬度 一维数据:列表和集合类型二维数据:列表类型多维数据:列表类型高维数据:字典类型或数据表示格式,如json、xml、yaml维度:一组数据的组织形式列表和数组:一组数据的有序结构Numpy Numpy介绍NumPy是一个开源的Python科学计算基础库,包含:一个强大的N维数组对象…

渗透测试神器Nmap使用教程

渗透测试神器Nmap使用教程1.nmap简介2.常用参数3.nmap实战命令1.nmap简介 Nmap &#xff08;网络映射器&#xff09;是Gordon Lyon最初编写的一种安全扫描器&#xff0c;用于发现计算机网络上的主机和服务&#xff0c;从而创建网络的“映射”。为了实现其目标&#xff0c;Nmap…

java计算机毕业设计基于安卓Android的金融保险app(源码+系统+mysql数据库+Lw文档)

项目介绍 计算机信息技术的发展&#xff0c;推动了金融保险信息化管理的进程&#xff0c;并随着互联网概念的提出&#xff0c;各种互联网软件也应运而生。在传统的管理中&#xff0c;各种信息管理难&#xff0c;传播速度慢&#xff0c;需要耗费很长时间统计核查&#xff0c;不…

Oracel中视图相关概念和操作(一)

目录 1.视图概念&#xff08;有必要&#xff09; &#xff08;1&#xff09;视图基本概念 &#xff08;2&#xff09;视图和定义的表的联系 &#xff08;3&#xff09;视图的优点 2.创建视图 &#xff08;1&#xff09;使用SQL DEVELOPER创建视图&#xff08;可视化&#x…

如何正确的审核交易商牌照?这些雷区你不得不防

对于外汇平台来说&#xff0c;交易牌照可以说是重中之重&#xff0c;一个交易没有牌照&#xff0c;可以说是没有任何约束&#xff0c;属于监管裸奔状态&#xff0c;这种平台10个有10个就是黑平台。但也正因如此&#xff0c;无数黑平台也会在牌照上面做手脚&#xff0c;这些人手…

基于stm32单片机甲醛烟雾温湿度检测仪设计

目录 第1章 绪论 1.1 引言 1.1.1甲醛的特性及危害 1.1.2甲醛的来源 1.2甲醛检测仪的种类 第&#xff12;章 概述 2.1系统总概述 2.2总体方案设计 2.3硬件设计 2.4软件设计 第3章 硬件设计 3.1 硬件设计主电路图 3.2 硬件选择 3.2.1 MCU的选择与简介 3.2.3 …

Gimbal Lock欧拉角死锁问题

技术背景 在前面几篇跟SETTLE约束算法相关的文章(1, 2, 3)中&#xff0c;都涉及到了大量的向量旋转的问题--通过一个旋转矩阵&#xff0c;给定三个空间上的欧拉角\(\alpha, \beta, \gamma\)&#xff0c;将指定的向量绕对应轴进行旋转操作。而本文主要就阐述这些旋转操作中&…

复习十二:广义表

一、广义表的定义及其重要特性 广义表简称表&#xff0c;它是线性表的推广。一个广义表是n(n>0)个元素的一个序列&#xff0c;若n0时&#xff0c;则称为空表&#xff1b; 广义表中有两种数据元素&#xff0c;即有两种结构的结点&#xff1a;表结点和原子结点&#xff1b;广义…

大数据ClickHouse进阶(十一):ClickHouse的Join子句

文章目录 ClickHouse的Join子句 一、连接精度

Springcloud的学习笔记(二)

Springcloud学习笔记(一) 目录8 消费者订单模块9 重构10 Eureka服务注册与发现10.1 Eureka基础知识10.2 EurekaServer服务端安装10.3 支付微服务8001入驻进EurekaServer10.4 订单微服务81入驻进EurekaServer10.5 Eureka集群原理说明10.6 Eureka集群环境构建10.7 订单支付两微服…

ASR6500S SIP模块与SX1262系列集成替代SX1278 SX1262内核+RF前端

ASR6500S是一系列LoRa SIP模块,集成了RF前端和LoRa无线电收发器SX1262系列,支持LoRa 和FSK调制。LoRa技术是一种针对LPWAN应用的低数据速率、超远程、超低功耗通信进行优化的 广谱协议。 ASR6500S设计为电池寿命长,有功接收电流消耗4.2 mA,最大发射功率可达+22dBm。该模块实…