遗留系统的自动化策略

简介: 遗留系统的自动化策略


维基百科:遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序,“属于或与以前的、过时的计算机系统有关” ,但仍在使用中。通常,将系统称为“遗留系统”意味着它可能已经过时或需要更换。


什么样的系统是遗留系统


Martin Fowler说过Let’s face it, all we are doing is writing tomorrow’s legacy software today.这句话说出了残酷的现实,我们团队现在写的每一行代码最后都会变成遗留系统的代码,这也变相的说明每一个研发工程师都脱离不了改造遗留系统的宿命。从Martin Fowler对遗留系统的描述中我们不难看出来,遗留系统并不是单靠系统的第一行代码距离现在的时间来衡量的,还包含了代码的质量、架构设计、DevOps流水线、支持系统等。很多遗留系统的代码质量都非常差,没有单元测试、API自动化测试、UI自动化测试等自动化的质量保障活动;架构设计混乱,各种设计方式、技术交织在一起;没有交付流水线,所有的交付流程仰仗于某几个研发工程师等等问题才是遗留系统需要面对的痛点。


Michael Feathers在他的书《Morking Bfectively with Legacy Code》中给出了遗留系统的定义:没有自动化测试的系统就是遗留系统。虽然这个定义并不是所有人都认同,但是已经足以看出没有自动化测试的遗留系统对于参与修改的开发工程师是一个灾难。那么对于一个遗留系统,并不是每次都可以启动重构大法完成项目的改进,通过弥补自动化测试解决遗留系统变更的痛点也是不失是一个好办法。



没有自动化测试的遗留系统如何弥补


遗留系统弥补自动化测试实践的首要原则就是”让自动化测试那些你修改的代码“。这句话指导我们所有自动化测试的解决方案,包含了单元测试、API自动化测试、UI自动化测试,甚至也覆盖了静态代码扫码(技术债)。


在面对一个没有任何自动化测试的系统的时候,往往束手无策,尤其是面对几百个小时的技术债务的时候。依据上面的首要原则,要完成所有变更部分的技术债务偿还,也就是修改了那个Class,就要修复该类中的技术债务(也就是静态代码扫码的问题)。并针对变更代码完成单元测试的补充,目标可以定的高一些,例如单元测试增量代码行覆盖率为80%(这个指标也并不是通用的,但是更期望于定一个增量代码行覆盖的高指标,这样可以促使快速还清自动化测试缺失的债务)。


在API自动化测试部分,对应代码变更的API要完成APi自动化测试的开发,并加入到DevOps流水线中发挥增量接口覆盖率100%的门禁检查(很多开源的流水线并不支持这个指标,因此要靠二次开发)。UI自动化则是站在主要业务之上,如果流程中有对一个逻辑的代码发生了变更,那么对应的UI自动化测试就要完成开发并交由流水线触发,并且设置100%成功的质量门禁约束制品晋级。


通过如上的办法,逐渐地将有变更、常变更的代码用自动化测试建立起质量保障的门禁。其他的没有发生过变更的代码,可以在需要变更的时候再补充自动化测试,这样既能发挥自动化测试的优越性也不会给制品团队太大的自动化测试的债务压力,最重要的是不会让开发工程师不敢修改遗留系统的代码。













目录
相关文章
|
2月前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
267 116
|
2月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
331 113
|
2月前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
290 114
|
3月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
390 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
2月前
|
存储 人工智能 自然语言处理
拔俗AI自动化评价分析系统:让数据说话,让决策更智能
在用户体验为核心的时代,传统评价分析面临效率低、洞察浅等痛点。本文基于阿里云AI与大数据技术,构建“数据-算法-应用”三层智能分析体系,实现多源数据实时接入、情感与主题精准识别、跨模态融合分析及实时预警,助力企业提升运营效率、加速产品迭代、优化服务质量,并已在头部电商平台成功落地,显著提升用户满意度与商业转化。
|
5月前
|
JavaScript 前端开发 测试技术
Playwright自动化测试系列课(4) | 异步加载克星:自动等待 vs 智能等待策略深度解析​
本文深度解析Playwright自动化测试中的等待策略,对比自动等待(零配置防御机制)与智能等待(精准控制异步场景)的核心差异。通过实战案例讲解等待机制的选择标准、常见失效原因及调试技巧,帮助开发者有效解决页面异步加载问题,提升测试脚本的稳定性和执行效率。
|
5月前
|
运维 Prometheus 监控
系统崩了怪运维?别闹了,你该问问有没有自动化!
系统崩了怪运维?别闹了,你该问问有没有自动化!
186 9
|
8月前
|
jenkins 测试技术 Shell
利用Apipost轻松实现用户充值系统的API自动化测试
API在现代软件开发中扮演着连接不同系统与模块的关键角色,其测试的重要性日益凸显。传统API测试面临效率低、覆盖率不足及难以融入自动化工作流等问题。Apipost提供了一站式API自动化测试解决方案,支持零代码拖拽编排、全场景覆盖,并可无缝集成CI/CD流程。通过可视化界面,研发与测试人员可基于同一数据源协作,大幅提升效率。同时,Apipost支持动态数据提取、性能压测等功能,满足复杂测试需求。文档还以用户充值系统为例,详细介绍了从创建测试用例到生成报告的全流程,帮助用户快速上手并提升测试质量。
|
9月前
|
存储 人工智能 API
OWL:告别繁琐任务!开源多智能体系统实现自动化协作,效率提升10倍
OWL 是基于 CAMEL-AI 框架开发的多智能体协作系统,通过智能体之间的动态交互实现高效的任务自动化,支持角色分配、任务分解和记忆功能,适用于代码生成、文档撰写、数据分析等多种场景。
1805 13
OWL:告别繁琐任务!开源多智能体系统实现自动化协作,效率提升10倍
|
11月前
|
监控 运维
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控

热门文章

最新文章