0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在重构或重新设计时验证代码

星星科技指导员 来源:嵌入式计算设计 作者:Pierre-Henri Stanek 2022-11-25 15:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这些概念之间的主要区别在于:重新设计意味着你修改软件以改变它的功能,而重构是修改它的工作方式。

重新设计和重构软件有什么区别?

这些概念之间的主要区别在于:重新设计意味着你修改你的软件来改变它的功能,而重构是修改它的方式。

重新设计工作有多种原因。例如,由于硬件更改,软件需要在不同的CPU上工作,或者必须处理新的外围设备,因此需要修改或扩展代码以解决这些物理修改并提供新功能。当软件需要与新的或更新的软件接口时,也可能会发生重新设计 3RD-提供新服务的派对库,这些服务将使您的应用程序受益。您可能会发现重新设计的许多其他原因,但在大多数情况下,在此上下文中执行的软件更改会影响修改后的应用程序提供的一般行为或功能。

与重新设计相反,重构是一种优化代码内部实现的努力,以提高其可维护性并降低其总体运营成本。和许多人一样,我相信软件重构的最佳定义之一是由Martin Fowler在他的“重构书”中写的:

“对软件的内部结构进行了更改,使其更易于理解且修改成本更低,而无需更改其可观察的行为。

根据此定义,重构通常由开发人员在以下情况下执行:

需要将技术债务控制在可接受的水平,即低于从头开始重建整个代码似乎更经济的线。

降低复杂性和内部依赖性,使软件更模块化,更易于扩展,更易于开发团队中的新手阅读和管理等。

确保随着时间的推移,原始设计保持可理解和清晰,并保留其预期功能。..。..

鉴于我们现在对重新设计与重构工作有了更清晰的理解,

哪些情况需要重新验证您的软件?

好吧,软件测试的本质是它们主要检查代码是否符合其目的。换句话说,它们根据应用程序的功能要求验证组成系统的每个软件单元是否按预期运行。话虽如此,如果您尝试重新设计代码,则必须对其进行测试以确保根据新引入的要求验证新功能,同时确保这些新扩展不会在现有的通过测试中引入回归。

您可能会争辩说,重构工作只影响软件内部结构,因此不一定影响代码接口和根据应用程序要求交付的一般服务。是的,但是。..像任何其他开发活动一样,重构是引入新错误的一种非常简单的方法,因此您必须重新测试您的软件。维护一组完整而详尽的通过测试将确保重构不会导致代码中的回归错误未被检测到。事实上,每当你做一个小的改变时,你应该重新执行现有的测试作为安全网,以检查你没有修改预期的行为。经过一系列增量更改后,您将以安全的方式达到最初面向的重构状态。

大多数组织希望通过在源代码更改时更新这些测试来保留以前测试投资的价值。但这可能会导致高昂的测试维护成本。该解决方案并不像仅确定受代码更改影响的受影响测试的子集(有时称为测试影响分析或基于更改的测试)那样简单。测试维护的昂贵部分是开发人员花费在识别依赖项和更新相应测试以确保它们与修改后的软件同步上的努力。

那么,适当的测试自动化如何降低这些测试维护成本呢?

1)通过对代码更改和测试依赖关系的初步分析:

·了解对正在测试的代码的更改(通过保留上次测试时的代码信息并将其与更改的代码进行比较)

·确定哪些测试受代码更改的影响

·在单个视图中识别代码中影响测试的所有更改

·识别可能影响现有测试实现的代码覆盖率的代码更改

2) 通过为开发人员提供自动测试更新的指导选择,以便重新同步源代码和测试:

• 对于每个代码更改,建议对测试脚本和案例进行适当的更新

• 自动重构测试脚本,以便节省时间和成本效益

3)对于主要影响软件内部结构的代码更改,自动生成通过测试的安全网或基线,以便:

• 在回归测试或持续集成期间查明故障

• 识别可测试性问题,例如无法访问的代码

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222952
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73151
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux ubuntu上使用riscv-formal工具验证蜂鸟E203 SoC的正确性

    内容:Linux ubuntu上使用riscv-formal工具验证蜂鸟E203 SoC的正确性 步骤: 1、下载和安装riscv-formal工具: bash复制代码 git clone
    发表于 10-24 07:52

    AES和SM4算法的可重构分析

    相似的实现过程,可以进行可重构设计。同时,这两种算法加解密过程中会频繁使用寄存器来存储数据 二、可重构S盒设计思路 GF下,AES的S盒输出公式为 Z=M(X^-1)+V,
    发表于 10-23 07:26

    AS32S601重构(OTA)方案的优化与分析

    摘要 重构(OTA)技术因其航天、工业控制、物联网等领域的高可靠性和持续服务需求而备受关注。本文以国科安芯推出的AS32S601芯片为研究对象,深入分析其OTA方案的设计原理、技术细节及优化
    的头像 发表于 09-13 14:52 2258次阅读
    AS32S601<b class='flag-5'>在</b>轨<b class='flag-5'>重构</b>(OTA)方案的优化与分析

    看不见的安全防线:信而泰仪表如何验证零信任有效性

    刷新后SDP认证失败无法新建对应会话,网络准入验证不通过: Ø 仪表统计显示所有业务会话均建立失败 场景 3: IAM通知DUT对指定令牌进行老化,流量触发DUT重新生成对应缓存表项 Ø 仪表
    发表于 09-09 15:33

    HarmonyOSAI编程编辑区代码生成

    Shift+Ctrl+N点击界面中Shift+Ctrl+N区域,分段逐一拒绝并删除当前生成内容。 点击Inline Edit对话框中Regenerate,将根据当前描述重新生成代码片段;如需开始新一轮问答,点击
    发表于 08-20 15:24

    技术解读 | 光庭信息虚拟ECU技术赋能SOA化MCU软件的早期验证与集成加速

    。当前,传统ECU开发面临两大核心挑战:   1 功能重构后的验证需求: ECU功能经服务化分层重构后,其实现方式发生根本性变化,必须进行全面的重新
    的头像 发表于 07-21 15:43 616次阅读
    技术解读 | 光庭信息虚拟ECU技术赋能SOA化MCU软件的早期<b class='flag-5'>验证</b>与集成加速

    LE Classic BT断开连接后需要重新连接多少时间?

    我们正在做一个使用 CYW20819 模块的项目,所以我们想问一些信息,如下所示: 1。BLE Classic BT 断开连接后需要重新连接多少时间? 2。有支持自动重新连接的示例吗? 3。
    发表于 07-03 07:05

    Linux中,用新设置对CY7C65215重新编程后,如何启用新设置?

    Linux 系统下,如何 1.用 Linux 中的编程新设置配置 CY7C65215? 如\"USB 串口配置实用程序\" 命令行 fwDownload.exe。 2.
    发表于 05-26 08:23

    顶升AGV以创新设重构物流柔性力

    工业4.0与智能制造深度融合的今天,物流设备的灵活性与场景适配性已成为企业竞争的关键。作为AGV领域的核心技术模块,顶升AGV延伸面板的作用有哪些?这一问题的答案不仅关乎设备性能,更直接影响企业
    的头像 发表于 04-25 17:03 504次阅读

    变频器重新设置参数应注意什么?

    进行重新设置参数时,我们必须格外谨慎,以确保设备能够高效、稳定地运行。以下,我们将详细探讨变频器重新设置参数时应注意的关键点。 一、了解变频器与参数基础 1. 熟悉变频器型号与功能:    ● 不同型号的变频器具有不同
    的头像 发表于 03-17 16:00 1108次阅读
    变频器<b class='flag-5'>重新设</b>置参数应注意什么?

    秒验:重构APP用户体验与运营效率

    秒验:重构APP用户体验与运营效率 移动互联网竞争日益激烈的今天,APP用户对便捷性和安全性的需求持续升级。传统短信验证码的“输入-等待-验证”流程,因延迟、操作繁琐等问题,已成为用
    的头像 发表于 02-28 10:40 636次阅读

    新思科技全新升级业界领先的硬件辅助验证产品组合,助力下一代半导体与设计创新

    新思科技 (Synopsys, Inc.,纳斯达克股票代码:SNPS)近日宣布,推出基于全新AMD Versal™ Premium VP1902自适应系统级芯片(SoC)的HAPS®原型验证系统
    发表于 02-18 16:00 472次阅读

    三星电子否认1b DRAM重新设计报道

    据报道,三星电子已正式否认了有关其将重新设计第五代10nm级DRAM(即1b DRAM)的传闻。这一否认引发了业界对三星电子内存产品策略的新一轮关注。 此前有报道指出,三星电子为应对其12nm级
    的头像 发表于 01-23 15:05 862次阅读

    三星否认重新设计1b DRAM

    问题,2024年底决定在改进现有1b nm工艺的同时,从头设计新版1b nm DRAM。 不过,三星通过相关媒体表示相关报道不准确。尽管三星否认了重新设计,但有业内人士透露,三星的目标是提升1b DRAM的性能和良率。据了解,三星启动了名为“D1b - p”的开发项目,
    的头像 发表于 01-23 10:04 1298次阅读

    英诺达发布全新静态验证产品,提升芯片设计效率

    英诺达(成都)电子科技有限公司近日正式推出了两款全新的静态验证EDA工具——EnAltius®CDC跨域检查工具和Lint RTL代码检查工具。这两款产品的发布,标志着英诺达芯片设计工具领域迈出
    的头像 发表于 12-24 16:53 1159次阅读