Parasoft Jtest——如何征服遗留代码
Parasoft Jtest是一款能够无缝集成Parasoft SOAtest的Java自动化测试工具,重点应用于针对Java代码的静态分析、代码审查、单元测试和运行时错误检测。当您处理遗留代码时,通常需要一种可持续的方式来管理代码的变更。您可以通过利用适当的技术来克服遗留代码给敏捷和DevOps所带来的阻碍**。**
什么是遗留代码
许多人使用遗留代码来表示旧代码,但旧和遗留在一些层面上有一定的区别。本文用遗留代码定义团队里知识有限的任何现有代码。
由于以下几个原因,有关代码的知识可能不完整,例如:
- 团队从该组织的另一部分获得了一个项目。
- 原作者离开了团队,很有可能一起带走了只有他才了解的那部分代码。
- 代码提供的功能不再是保持不变的业务优先级,导致忘记了代码的详细信息。
首先要明确一点,遗留代码是规则而不是例外。当今世界上的许多软件基础架构都运行在遗留代码上。那么当我们需要进行更改时,如何降低与遗留代码相关的风险变得至关重要。
传统代码是敏捷和DevOps的障碍
遗留代码的问题不在于它存在的时间,而是您不了解更改它会如何影响现有功能。如果您正在转换到新的开发方法,例如敏捷或DevOps,那么与遗留代码相关的知识差距可能会成为障碍。
敏捷和DevOps已经成为创建软件的主要方法,因为它们可以帮助团队在最小的市场特性准备就绪后快速迭代和发布应用程序。短暂而频繁的开发周期是迭代开发方法的标志,但是当您处理遗留代码时,这些方法不会为减轻可能存在问题留出空间,尝试快速迭代您不理解的代码可能会引入新问题。
现实情况是,在开始新项目时,这些技术更容易应用。对于已经存在一段时间的项目而言,团队通常使用涉及遗留代码的系统。开发人员可能不知道现有代码库如何工作,但仍必须修复缺陷或扩展功能而不会引入新问题。看似微小的变化也会对应用程序产生重大影响。
更新旧代码的3个步骤
创建基线并将质量活动的范围缩小到受计划更改影响的代码区域,而不是尝试在宏观层面上工作。在进行测量以评估代码的范围和状态之后,您应该创建捕获当前行为的测试,以便团队可以了解更改如何影响现有功能。
然后您可以利用一系列技术来帮助您在重构遗留代码时收集分析,并确保您对代码更改的投入可以提高遗留系统的安全性、保密性和可靠性。
1、定义范围
了解如何影响系统行为至少需要一个数据点,首先选择基线构建并开始跟踪指标,设置范围并查看遗留代码的三个特征:
- 静态分析违规程度。
- 目前的测试覆盖范围。
- 清理代价
Parasoft Jtest提供了一个功能强大的分析平台,用于捕获、关联和分析报告代码中的违规、测试结果、覆盖率和其他软件质量数据。该平台超越了静态报告,它还应用了额外的分析来帮助您识别受变更影响的应用程序部分。
利用资源组的概念,您可以识别一组特定的文件或目录、覆盖范围、静态分析违规以及指向这些特定资源的指标数据。此信息可帮助您在代码库的这些部分进行更改之前为代码库区域创建基线。
2、捕获行为
有了初始数据点的帮助,下一步通过创建测试开始捕获系统的当前行为。构建高质量的回归套件不仅可以捕获现有行为,还可以提高覆盖率,作为确保更改不会破坏功能的安全网。
Parasoft Jtest可以使您能够基于现有代码批量创建JUnit测试的基线和断言。Jtest还包括创建直接访问私有方法的测试的能力,以便在遗留代码最初编写时不考虑可测试性。
最好通过有意义的测试来扩展覆盖范围。在分析覆盖差距期间,Jtest可以识别现有代码中未经测试的克隆和变异的部分。Parasoft在创建现有测试方面做了大量工作,Jtest中的克隆和变异功能增加了创建测试投资的回报。
3、改进隔离的遗留代码
通过捕获系统的行为,您可以开始修复违规、解决PR或应用您想要关注的更改,同时将破坏现有功能的风险降至最低。Parasoft可以帮助您管理现有的技术债务,并将数据(如静态分析违规)放入适当的工作流程中,以便轻松地重新确定优先级,抑制或解决这些数据,从而提高应用程序的整体质量。
解决遗留代码中技术债务的最佳时机是在进行更改时。报告的数据应包括在有关项目的整体统计信息中。技术债务可能不会立即对应用程序产生影响,但您应该应用最佳实践来系统地包含和管理它。您需要在进行更改时重构遗留代码,将有助于您逐步减少技术债务。
确保修改代码的覆盖范围
此过程有助于确保更改范围不会对现有功能产生负面影响,但您还需要确保团队遵循前进的良好实践。随着代码的发展,继续保持高水平的覆盖率并编写或更新测试需要在知识层面上获得支持。
通过分析指定基线构建之间的变化,您可以专注于监控整个代码库中的变化。在整个代码库中实现100%的覆盖率是不切实际的,但通过监控修改后的代码的覆盖范围,团队可以专注于正在积极处理的代码部分,并确保所有更改都经过测试。
总结
世界的软件运行目光正在从团队传递到团队的代码上,处理遗留代码是一种常见的需求。关于代码的知识差距提示了潜在的风险,因为开发人员需要进行更改以维护或扩展功能,而本文提及的Parasoft Jtest对遗留代码的处理流程和技术可以帮助用户获得推进团队中任何代码库的信心。#####
Parasoft Jtest——如何征服遗留代码相关推荐
- 调试代码遗留_如何征服遗留代码
调试代码遗留 At some point in your developer career, your boss will hand you a piece of legacy code - code ...
- Java代码自动化测试工具Parasoft Jtest 2021全新发布,支持更多IDE
Parasoft Jtest通过提供一套工具来加速Java软件开发,以保证您的软件可靠,安全和可维护,从而最大限度地提高质量并最大限度地降低业务风险.全面且可配置的报告使开发人员和管理人员能够理解并优 ...
- Parasoft Jtest让单元测试重获青睐
Parasoft开发了Parasoft Jtest单元测试助手来提高单元测试的效率,因为Parasoft作为软件测试的专业厂商知道它有多重要,同时也了解单元测试是极其耗时的. 众所周知,单元测试的核心 ...
- parasoft Jtest 使用教程:RuleWizard与BugDetective静态分析
2019独角兽企业重金招聘Python工程师标准>>> RuleWizard RuleWizard(仅在Architect and Server edition中提供)允许您为Jav ...
- 如何利用Parasoft Jtest提高Java测试ROI
Parasoft Jtest是一款能够无缝集成Parasoft SOAtest的Java自动化测试工具.为了帮助团队更加可靠地实现质量和安全性,企业可以利用Parasoft Jtest进行Java测试 ...
- Jtest 使用教程之代码标准违例修正与标准规则说明书访问
2019独角兽企业重金招聘Python工程师标准>>> 今天给大家带来parasoft Jtest 自动修正代码标准违例与访问代码标准规则说明书的教程,需要的朋友赶紧收藏了~ par ...
- parasoft Jtest 使用教程:创建并使用参数化测试用例(上)
2019独角兽企业重金招聘Python工程师标准>>> 本次教程的内容是怎样生成和使用参数化的JUnit测试用例,一起来看看吧. parasoft Jtest介绍和试用>> ...
- parasoft Jtest 使用教程:防止特定应用错误的再次发生
2019独角兽企业重金招聘Python工程师标准>>> parasoft Jtest介绍和试用>>> 应用程序的错误是独一无二的错误,它们与标准的行业最佳实践不一致 ...
- parasoft Jtest 使用教程:功能配置之查找错误
2019独角兽企业重金招聘Python工程师标准>>> parasoft Jtest介绍和试用>>> 今天开始为大家带来parasoft Jtest功能配置板块教程 ...
最新文章
- c语言二叉树最小值,C语言递归之二叉树的最小深度
- 估价分类不允许分离估价
- Samba服务器如何与Windows 95共享?
- vue控制多行文字展开收起
- 西门子s7 计算机通讯,PLC与计算机通讯连接
- 大数据可视化技术的作用有哪些
- oracle 之 游标
- .net dropdownlist 動態顯示,指定字段
- 1009 说反话 (20 分)—PAT (Basic Level) Practice (中文)
- 群晖让usb打印机变成网络打印机
- 【数据分析】销售案例——会员分析
- word字体号对应的磅数
- 域名怎样实现自动跳转
- 读文献——《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》
- 计算机播放音乐无声音,笔记本电脑放歌没声音的解决方法
- 《DRM 专栏》| 彻底入门 DRM 驱动
- DBeaver 工具的使用
- Mac M1 nvm install失败问题
- SIKI学院:MySQL数据库从零到精通:八:课时 10 : 09-如何利用MySQL Workbench查看数据库和创建
- python颜色识别原理_python+opencv实现颜色检测、轮廓检测、颜色追踪
热门文章
- javax.validation:validation-api:2.0.1.Final.jar 包常用验证注解解析
- 后端返回数据ios接收精度丢失问题
- 记录一次header manipulation的解决
- 分布式任务调度平台XXL-JOB使用教程
- python pandas excel 修改列_Python中Pandas读取修改excel操作攻略(代码示例)
- Facebook 密钥散列生成及客户端令牌
- java图形用户登录界面_java图形化界面实现登录窗口
- 破坏之王 ddos 攻击 与 防范 深度剖析
- 佳能5d3右下角红灯一直闪_佳能相机红灯一直闪怎么回事 佳能相机为什么黑屏【详解】...
- 安卓QQ闪照获取保存