使用LDRA Testbed进行编译插装与动态分析

需积分: 49 24 下载量 32 浏览量 更新于2024-08-10 收藏 1.59MB PDF 举报
"LDRA Testbed 是一款用于软件测试和验证的工具,特别强调在静态和动态分析中的应用。本文档详细介绍了如何在Python核心编程(第二版)的背景下,使用LDRA Testbed进行编译插装后的代码分析,以获取白盒覆盖率报告。 在编译插装后的代码时,首先需要理解并非所有被测系统的源文件都需要被插装。用户可以选择插装一个或全部文件。为了逐步熟悉过程,建议从测试小部分文件开始,而非整个系统。插装后的代码可以在开发环境中编译,并在实际环境中运行,无需在Testbed中直接进行编译和执行。 插装后的代码在执行时,会生成一个历史文件,记录分支执行信息。在LDRA Testbed的动态分析设置中,需要指定这个历史文件的位置,以便进行动态覆盖率分析。手动替换原文件并执行测试用例后,可以在系统中找到历史文件,并在Testbed中配置分析。 在掌握了初步的手动过程后,可以转向自动过程。自动过程允许在不直接依赖于LDRA Testbed的情况下编译和执行插装后的文件,Testbed仅关注历史文件的处理。例如,对于VC++的编译环境,工具提供了自动化编译和执行的功能。 LDRA Testbed的使用还涉及编译器的配置,包括命令行安装、测试编译器是否正常以及针对不同编译器如VC++和Borland的特定设置。此外,Testbed提供了图形用户界面,包含菜单和快捷键,方便用户进行源代码分析,支持单个文件或多文件的分析,以及各种静态和动态分析选项,如静态数据流、交叉索引、信息流、数据对象分析和动态覆盖率分析。 通过动态分析,可以执行插装程序,选择相应的动态覆盖率选项,并观察执行结果。更深入的动态分析可能需要多次执行插装后的程序,以获取更全面的测试覆盖率。Testbed还支持以集(set)的方式组织和分析文件,便于批量处理和结果查看。 LDRA Testbed 是一个强大的工具,用于提升软件质量,确保代码符合特定的质量模型,并通过静态和动态分析提供详尽的测试覆盖率报告。用户可以通过手动和自动方式结合,逐步实现高效和全面的软件验证。"