news 2026/2/7 13:41:08

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/2/6 2:20:49

28、以注入缺陷的方式查找缺陷:精妙的变异测试

以注入缺陷的方式查找缺陷:精妙的变异测试 在软件开发周期接近尾声,新功能都已完成且所有测试都通过时,作为测试经理,你是否准备好发布软件?实际上,测试套件全部通过并不一定意味着测试套件足够好。若测试套件不能正确检查程序结果,即便结果错误,测试也可能通过。那么…

作者头像 李华
网站建设 2026/2/6 0:18:50

29、软件测试技术:变异测试与参考测试的魅力

软件测试技术:变异测试与参考测试的魅力 在软件开发过程中,测试是确保软件质量的关键环节。随着技术的不断发展,新的测试方法和工具也不断涌现。本文将介绍变异测试和参考测试这两种重要的测试技术,探讨它们的原理、特点和应用。 变异测试的崛起 随着计算能力的持续提升…

作者头像 李华
网站建设 2026/2/4 14:24:14

郊狼游戏控制器终极指南:让游戏失败成为精彩互动的开始

郊狼游戏控制器终极指南:让游戏失败成为精彩互动的开始 【免费下载链接】DG-Lab-Coyote-Game-Hub 郊狼游戏控制器——战败惩罚 项目地址: https://gitcode.com/gh_mirrors/dg/DG-Lab-Coyote-Game-Hub 你是否厌倦了千篇一律的游戏直播体验?观众只是…

作者头像 李华
网站建设 2026/2/4 10:37:08

突破设备壁垒:Chunker让你的Minecraft世界自由穿梭

突破设备壁垒:Chunker让你的Minecraft世界自由穿梭 【免费下载链接】Chunker Convert Minecraft worlds between Java Edition and Bedrock Edition 项目地址: https://gitcode.com/gh_mirrors/chu/Chunker 还在为PC和手机无法共享Minecraft存档而烦恼吗&…

作者头像 李华
网站建设 2026/2/7 5:17:17

终极Garry‘s Mod模组发布工具gmpublisher完整使用指南

终极Garrys Mod模组发布工具gmpublisher完整使用指南 【免费下载链接】gmpublisher ⚙️ Workshop Publishing Utility for Garrys Mod, written in Rust & Svelte and powered by Tauri 项目地址: https://gitcode.com/gh_mirrors/gm/gmpublisher 作为Garrys Mod模…

作者头像 李华
网站建设 2026/2/5 23:58:22

QDarkStyleSheet:为Qt应用打造专业暗黑主题的终极解决方案

QDarkStyleSheet:为Qt应用打造专业暗黑主题的终极解决方案 【免费下载链接】QDarkStyleSheet A dark style sheet for QtWidgets application 项目地址: https://gitcode.com/gh_mirrors/qd/QDarkStyleSheet QDarkStyleSheet是一个专为Qt Widgets应用程序设…

作者头像 李华