Testbed进行静态分析、动态测试或后续单元测试前,需要先建立与真实代码环境一致的测试工程。Testbed怎么配置测试工程,Testbed测试工程加载失败如何检查,重点是把源文件、头文件、编译器及目标平台等信息配置完整。工程能够被软件打开并不代表配置已经正确,如果源码路径失效、工具链环境变化或工程配置文件不完整,后续分析同样可能无法正常进行。
一、Testbed怎么配置测试工程
LDRA Testbed可以针对单个源文件或完整系统执行分析。工程配置时,应尽量按照真实软件构建环境建立分析范围,尤其是编译器相关特性不能直接使用与项目无关的默认设置。
1、创建工程并加入源文件
①启动Testbed后新建分析工程,根据当前项目建立对应的【System】。
②设置工程名称和保存目录,建议单独建立测试目录,不要直接放到编译器产生的大量临时文件中。
③将需要分析的C、C++或其他受支持源文件加入当前【System】。
④检查文件列表,确认正式源码已经加入,同时排除不参与当前构建的旧版本和备份文件。
⑤保存工程后重新查看源码树,确认文件能够正常打开。
如果工程存在多个软件版本,不建议把所有版本源码放入同一个测试工程。不同版本分别建立对应工程,可以减少同名函数、重复定义和条件编译带来的解析异常。
2、配置头文件和宏定义
源文件加入后,还要让Testbed能够按照实际构建方式找到依赖内容。
①进入工程配置,找到【包含路径】相关设置。
②加入项目公共头文件、芯片SDK、第三方库以及编译器头文件所在目录。
③把构建系统实际使用的【宏定义】同步到测试工程。
④存在Debug、Release或不同产品型号时,按照本次测试版本选择对应宏。
⑤重新解析代码,检查是否仍存在大量找不到头文件或未知类型的问题。
条件编译对分析结果影响很大。如果实际产品启用了某个功能宏,而Testbed没有得到相同定义,分析器看到的可能是另一套代码。
3、匹配实际编译器和目标环境
LDRA工具可以针对特定编译器和目标平台进行配置,因此工程测试前应把工具链环境确定下来。
①确认项目实际使用的编译器名称和版本。
②在Testbed中选择与该工具链匹配的【编译器配置】。
③检查目标处理器、数据类型宽度以及编译器扩展语法是否与实际环境一致。
④需要在目标板运行动态测试时,再配置对应的【目标环境】和通信方式。
⑤先执行一次基础静态分析,确认代码能够正常解析,再继续建立测试用例。
如果编译器配置明显不匹配,常见表现包括类型大小异常、关键字无法识别以及编译器内置定义缺失。
二、Testbed测试工程加载失败如何检查
工程无法打开、打开后源码全部失效,或者加载过程中直接报错,应先判断问题来自工程文件本身还是工程引用的外部环境。
1、检查工程路径是否已经变化
①确认原来的工程目录仍然存在。
②检查源码、头文件和配置文件是否被移动到新的磁盘或目录。
③工程从其他电脑复制过来时,重点查看是否仍然引用旧电脑的绝对路径。
④把失效的【源码路径】和【包含路径】重新指向当前文件位置。
⑤保存后关闭Testbed,再重新加载工程验证。
如果只复制工程配置,没有同步源代码和相关依赖,工程本身可能能够被识别,但加载到具体文件时会连续出现路径错误。
2、检查编译器环境是否缺失
工程在原电脑正常,在新电脑加载失败时,编译器环境是另一项需要重点检查的内容。
①确认原工程使用的编译器已经安装。
②检查Testbed中对应的【编译器配置】是否仍然可用。
③确认编译器安装路径没有发生变化。
④检查项目依赖的环境变量是否已经在新系统中建立。
⑤重新选择正确工具链后,再尝试加载和分析工程。
如果新电脑只安装了Testbed,却没有原项目使用的编译器或对应Tool Chain Configuration,部分工程配置就可能无法继续正常工作。
3、检查工程文件是否完整
①先复制一份原工程目录作为备份。
②检查工程配置文件是否出现0 KB、复制中断或修改时间异常。
③确认工程目录没有被同步软件只下载了占位文件。
④尝试使用最近一次正常备份打开。
⑤备份可以加载时,再重新导入当前源码,不要继续使用损坏的工程配置。
三、工程能打开但分析仍然异常怎么处理
有些工程表面能够正常加载,但开始分析后出现大量解析错误,这时更应该检查工程环境是否与实际构建环境一致。
1、从第一条解析错误开始检查
①执行一次较小范围的代码分析。
②找到最早出现的【文件无法找到】【类型未定义】或【语法无法识别】错误。
③根据第一条错误检查对应头文件、宏定义或编译器配置。
④修正后重新分析相同文件。
⑤基础解析错误消失后,再扩大到整个工程。
连续几百条错误经常由最前面一个配置问题引起,因此不需要逐条修改源码。
2、重新建立最小工程验证环境
①新建一个临时【System】。
②只加入一个能够在原开发环境正常编译的源文件。
③配置相同的头文件路径、宏和编译器。
④确认该文件可以正常分析。
⑤最小工程正常后,再逐步加入其他模块。
这种方式可以快速判断问题来自Testbed安装环境,还是原工程长期修改后已经存在配置冲突。
总结
Testbed工程承担的是源码与实际开发环境之间的分析配置关系,工程稳定性会直接影响后续静态分析和测试结果的可信度。Testbed怎么配置测试工程,Testbed测试工程加载失败如何检查,实际项目中应尽量保持源码结构、工具链和测试配置同步,并在版本迁移或更换电脑后及时核对环境差异。希望本文对大家建立和维护Testbed测试工程有所帮助,如需进一步了解Testbed测试工程配置与工程加载失败问题排查,欢迎联系咨询。