news 2026/4/18 11:23:53

17、以变更为中心的软件测试:原理、方法与实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
17、以变更为中心的软件测试:原理、方法与实践

以变更为中心的软件测试:原理、方法与实践

在软件开发过程中,代码的变更不可避免。为了确保这些变更不会引入新的问题,我们需要进行有效的测试。以变更为中心的测试方法能够帮助我们更精准地定位需要测试的代码范围,提高测试效率和质量。本文将详细介绍这种测试方法的相关概念、操作步骤以及实际应用案例。

理解调用者 - 被调用者依赖关系和测试用例到源文件的映射

要理解代码变更在可执行文件中的传播影响,我们首先需要清楚可执行文件中各种方法之间的调用者 - 被调用者关系。调用图生成工具在生成此类信息方面非常有帮助。

例如,在一个示例可执行文件中,方法之间存在着静态的调用者 - 被调用者关系。方法 f2 和 f3 使用方法 f1 的功能,方法 f5 和 f9 使用方法 f3 的功能,依此类推。同时,方法可以从多个父方法继承功能,也可以与下游的多个方法共享其功能。

当方法 f3 发生变更时,所有调用 f3 的后续方法及其子方法的行为都可能受到影响,即使它们本身没有改变。不过,根据经验数据分析,与实际变更相隔三度的方法通常是安全的,因为 f3 变更的影响在测试变更方法及其相关的两度分离方法的功能时就会被发现。

理论上,如果我们能够识别并运行涉及方法 f3、f5、f9 和 f8 代码的测试用例,就可以评估 f3 变更对可执行文件的影响。

生成可执行文件中调用者 - 被调用者函数的调用图

虽然许多有经验的测试人员熟悉静态代码分析工具,但为了生成可靠的调用者 - 被调用者函数图,我们应该使用动态二进制分析(DBA)和插桩工具。

Valgrind 是广泛使用的开源 DBA 工具之一,其中的 Callgrind

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 11:35:23

22、测试驱动开发:驱动软件之美的新标准

测试驱动开发:驱动软件之美的新标准 1. 迈向易读的规范 创建特定领域测试语言(DSTL)可使脚本更易读,前提是规范词汇具有声明性,并以业务领域目标和现实世界对象来表达。例如,DSTL的某一行可能等同于测试脚本的多行内容。不过,读者仍需从这些高级语句中拼凑出业务规则。…

作者头像 李华
网站建设 2026/4/17 21:11:00

在Artix-7平台上实现vivado安装教程2018从零实现

从零搭建 Artix-7 开发环境:Vivado 2018 安装实战全记录 你是不是也曾在深夜对着黑屏的 Vivado 安装界面抓狂?下载了几十GB的安装包,结果双击就卡死;好不容易跑起来,又提示“Device not found”;或者刚打开…

作者头像 李华
网站建设 2026/4/18 3:33:36

38、分布式团队协作:面对面交流与沟通变革

分布式团队协作:面对面交流与沟通变革 在分布式团队的协作中,偶尔的面对面交流能带来诸多益处。不同团队采用的方式各不相同,常见的有种子访问、接触访问和派遣流动大使等,同时在沟通方式上也需要做出相应的改变。 面对面交流的方式 种子访问 :这是一种非常受欢迎的方…

作者头像 李华
网站建设 2026/4/18 6:27:51

43、软件团队人力资源、设施与工作空间优化指南

软件团队人力资源、设施与工作空间优化指南 1. 人力资源理念与人员问题 在软件开发领域,人员问题是不可避免的。以SAS公司为例,它坚信充满活力的脑力工作能带来卓越的表现和更优质的产品,该公司不会用股票期权来激励员工,而是以更具挑战性的项目作为对出色工作的认可。 …

作者头像 李华
网站建设 2026/4/16 10:36:29

系统学习汽车诊断协议中27服务工作机制

深入理解汽车诊断中的“数字门禁”:UDS 27服务全解析 你有没有遇到过这样的场景?在刷写ECU固件时,明明流程正确、报文无误,却始终卡在“Security Access Denied”这一步。或者,在调试某款新车型的诊断功能时&#xff0…

作者头像 李华
网站建设 2026/4/18 18:06:56

如何免费打造个性化macOS光标:Mousecape完整使用指南

厌倦了macOS千篇一律的鼠标指针?想要为你的Mac增添独特个性色彩?Mousecape这款完全免费的macOS光标管理器,正是你需要的解决方案!无论你是追求视觉美化的普通用户,还是需要特殊光标效果的专业人士,Mousecap…

作者头像 李华