让测试告别点点点:ZadigX 全流程自动化测试解决方案
01、测试行业现状分析
快速获得反馈以了解在软件交付生命周期内更改所产生的影响,是构建高质量软件的关键。以前,团队依靠人工测试和代码检查来验证系统的正确性。此类检查和测试工作通常在开发完成后的一个单独阶段进行。然而,这种方法存在一些缺点:
- 手动回归测试耗时且费用高昂,成为整个流程中的瓶颈,导致无法频繁发布软件,开发者无法快速获得反馈。
- 人工检查和测试不可靠,人们在手动回归测试等重复性任务中通常表现不佳,并且很难通过检查来预测复杂软件系统的更改会产生什么样的影响。
- 开发者必须等待很长时间才能获取其更改的相关反馈,并且需要大量工作来对缺陷进行分类和修复。性能、安全性和可靠性问题通常需要进行设计更改,如果在此阶段发现这些问题,费用更高。
- 较长的反馈周期让开发者难以了解如何构建质量代码,质量有时会被视为“其他人的问题”。
- 开发者不负责测试自己的代码,很难了解如何编写可测试的代码。
- 对于不断改进的系统,及时更新测试文档需要大量的努力。
相反,团队应该:
在软件交付生命周期内持续执行所有类型的测试。
创建并定制快速可靠的自动化测试套件,在持续交付流水线[1]中运行自动化测试。
ZadigX 具备管理软件开发全生命周期能力,几乎支持市面上所有测试工具和服务、以及平台系统,同时支持多种测试框架和不同的测试类型,通过强大的运行时环境治理和自定义工作流能力,为测试团队提供强有力的工程支撑
ZadigX 帮助测试团队,将测试服务和能力左移、右移到开发团队、运维团队等全生命周期中,尽早发现问题,让其他角色也参与到质量建设中来,规避因修复此类问题而造成额外成本。
02、持续测试实践思路
持续测试[2]是一种具体的工程实践,旨在确保系统在可靠性、安全性、操作性能和可用性方面的稳定性。它涵盖了多种测试类型,包括左移测试、右移测试、冒烟测试、单元测试、集成和消息传递测试、性能测试、功能测试、回归测试和用户验收测试等等。将持续测试[3]融入 ZadigX 的整个 DevOps 流程,能够实现高效的业务部署、快速发现和修复错误、改善用户体验,并最小化业务中断的成本。
03、用 ZadigX 落地持续测试
编排不同测试类型
静态代码扫描
支持主流的静态安全工具例如 SonarQube、Coverity,和任何自定义扫描工具。
如何配置:以 SonarQube 示例,新增代码扫描,指定扫描工具 <SonarQube>,配置待扫描的代码库、扫描脚本,开启质量门禁检查并配置触发器,具体的配置步骤可参考文档:如何配置静态代码扫描[4]。
如何编排:编辑自定义工作流,在指定阶段(比如:构建之前)添加<代码扫描>任务即可。
单元测试
支持对 Java、Golang、Python、C++、JavaScript、C#、PHP、Ruby 等各种语言的技术栈执行单元测试
如何配置:新增测试,配置基本信息、代码信息和测试脚本,在<测试报告配置>中指定报告目录,添加触发器配置并增加 IM 通知,具体的配置步骤可参考文档:如何配置测试[5]。
如何编排:编辑自定义工作流,在指定阶段(比如:部署之后,执行自动化测试)添加<测试>任务即可。
集成测试
支持的测试类型包括但不限于:API 接口测试、UI 测试、端到端测试、压力测试、场景测试...
配置过程和单元测试类似,此处不再赘述。具体编排:编辑自定义工作流,添加<测试>任务并填写配置,以下图示例说明参数:
任务名称:根据实际语义配置,比如 apitest-for-service
任务类型:选择服务测试
服务组件:选择待测试的服务组件,配置服务组件和测试的关联,当部署服务后将会运行指定的测试
此外,为自定义工作流配置触发器和通知,实现基于代码变更自动运行测试、测试结果及时同步 IM。参考文档:触发器配置[6]、通知配置[7]。
系统测试
支持产品级别的测试,对产品进行全面的系统测试,从整体充分把握系统质量。测试配置中的任务类型选择<产品测试>,其他的配置和集成测试类似,此处不再赘述。
运行持续测试场景
开发阶段:静态扫描打基础
流程:代码实现 > 代码提交 > 自动触发静态代码扫描质量门禁 > 开发人员及时获得反馈 > 有的放矢改进
代码开发完毕提交 PR 后会自动触发代码扫描执行,可有效拦截未通过质量门禁的代码变更。扫描结果会自动 comment 在代码变更中,开发人员可点击快速获得扫描结果,针对反馈进一步优化代码。从代码源头来规避质量风险,做到 fail fast > feedback fast > fix fast。
测试阶段:组合策略赋能力
流程:静态扫描(开启质量门禁) > 构建 > 部署 > 自动化测试 > IM 通知
ZadigX 可一键拉起独立的开发、测试环境(参考文档:创建环境[8]),只需要将测试编排进自定义工作流中就可以实现在开发环境、测试环境分别建设自动化测试套件,将测试能力编排进团队日常合作的每一个环节中:
开发自测阶段,更新开发自测环境并执行自动化测试。
多名开发联调测试阶段,可以将多人的改动同时部署更新进行集成测试验证。
-
测试工程师验收阶段,可在 ZadigX 中分析测试报告,并根据覆盖情况持续补充自动化用例集,确保自动化测试套件与业务功能一同迭代,持续为团队提供价值,测试工程师的能力也在平台中得到充分展现。
此外,工作流运行结果可及时通知到 IM 群中,团队内每个人都能及时感知自动化执行情况,为质量负责。
发布阶段:多重保障保质量
流程:发布质量门禁 > 发布委员会人工审核 > 分批次灰度发布 > 系统测试 > IM 通知
测试验收通过后进行发布上线操作,建议几种配置策略:
建设发布门禁,通过自定义任务自动获取安全扫描、单元测试、集成测试等质量结果来判断是否允许上线,作为上线过程的卡点,确保版本验收通过并且符合质量要求后再做上线操作。
灵活编排蓝绿、金丝雀、分批次灰度、Istio 等发布策略,以确保发布可靠性,可参考:发布工作流[9]。
发布工作流适当增加测试团队人工审批,以确保业务流程上的发布合规性。
04、One More Thing:如何度量持续测试效果
任何实践都要讲求投入产出比,而持续测试的效果可以通过:测试的编写人员比例,发现的 Bug 数量,自动化测试的有效性,以及是否在 CI/CD 中运行自动化测试来衡量等方面来度量,具体如下:
05、小结
通过 ZadigX 支撑持续测试和自动化测试的实施,帮助测试团队更好地应对当前的测试行业挑战,确保软件交付的质量和稳定性,提高开发和交付过程的效率。
参考链接
阅读原文 https://mp.weixin.qq.com/s/meO6yqzZdMQfBoEsAcr1Ig
[1]持续交付流水线:https://continuousdelivery.com/implementing/patterns/#the-deployment-pipeline
[2]持续测试:https://cloud.google.com/architecture/devops/devops-tech-test-automation
[3]持续测试:https://www.ibm.com/cn-zh/topics/continuous-testing
[4]如何配置静态代码扫描:https://docs.koderover.com/zadig/ZadigX%20v1.5.0/project/scan/
[5]如何配置测试:https://docs.koderover.com/zadig/ZadigX%20v1.5.0/project/test/
[6]触发器配置:https://docs.koderover.com/zadig/ZadigX%20v1.5.0/project/common-workflow/#触发器配置
[7]通知配置:https://docs.koderover.com/zadig/ZadigX%20v1.5.0/project/common-workflow/#通知配置
[8]创建环境:https://docs.koderover.com/zadig/ZadigX%20v1.5.0/project/env/k8s/
[9]发布工作流:https://docs.koderover.com/zadig/ZadigX%20v1.5.0/project/release-workflow/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
数据平台流量回放最佳实践|精选
1 背景与挑战 1.1 数据平台业务背景 数据平台利用大数据智能分析、数据可视化等技术,对公司内外部经过采集、建设、管理、分析的多源异构数据进行呈现和应用,实现了数据共享、日常报表自动生成、快速和智能分析,深度挖掘数据价值,满足企业各级部门之间的数据分析应用需求。因而也具有数据量大,场景多,数据准确性要求高,查询性能要有保障等特点。 1.2 传统测试方法 基于数据平台的特点,使得我们在线下进行数据测试或者回归测试时成本比较高,难度也比较大。所以我们希望能有一种有效的手段来降低测试的成本和门槛,实现测试的标准化。一直以来我们都是通过编写自动化测试来实现的。但是传统的自动化测试其实是有很多弊端的,比如成本高,覆盖场景有限,标准化难度高等。 1.3 传统自动化的弊端 1.3.1 成本高: 人工编写、维护自动化用例成本高 较低的测开比无法跟上迭代的速度 1.3.2 覆盖场景有限: 线下构造测试场景难度大 场景覆盖度有限 1.3.3 标准化难度高: 强依赖QA个人经验和能力 开发独立排查自动化问题难度高,推动开发自测效果差 因此我们希望利用线上的流量来搭建一个流量回放的平台,与自动化测试结合,来...
- 下一篇
酷瓜云课堂(内网版)v1.0.7 发布,局域网课程点播+直播解决方案
更新内容 升级layui-v2.8.2 增加全站复制屏蔽 增加试卷全文搜索 增加收藏|错误练习题型过滤 增加开始学习 优化最后学习 修正验证登录空口令 优化课程等Me相关信息 优化文章和问答 优化用户中心 优化分享URL 优化Providers 系统介绍 酷瓜云课堂内网版,采用C扩展框架Phalcon开发,使用本地基础服务,无营销相关功能,主要适用于公司,学校等内部网络环境使用。 系统功能 实现了点播、直播、专栏、问答、积分等。 友情提示: 演示系统配置低,带宽有限,切莫压测 课程数据来源于网络(无实质内容) 管理后台已禁止数据提交,私密配置已过滤 系统演示: 前台演示 后台演示 演示账号:100015@163.com / 123456 (前后台通用) 项目组件 后台框架:phalcon 3.4.5 前端框架:layui 2.8.2 全文检索:xunsearch 1.4.9 即时通讯:workerman 3.5.22 基础依赖:php7.3, mysql5.7, redis5.0 项目文档 运行环境搭建 系统服务配置 客户终端配置
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址