在LDRA Testbed的TBrun中,测试用例不仅包含输入值和预期输出,还可能关联全局变量、桩函数、指针数据以及测试序列配置。导入操作本身并不复杂,但如果被测函数接口、编译环境或原测试序列发生变化,就可能出现用例数量正常、部分字段却为空的情况。处理“Testbed怎么导入测试用例,Testbed测试用例导入后数据丢失如何处理”时,应先确认导入文件与当前被测函数是否匹配,再判断缺失的是普通参数、全局数据还是桩函数数据。TBrun本身支持测试用例管理,并可将已建立的测试环境继续用于后续回归测试。
一、Testbed怎么导入测试用例
Testbed通常使用TCF保存测试用例信息。已有测试用例需要迁移到其他测试序列或重新执行回归测试时,应优先使用工具自身的导入、导出功能,不建议直接复制界面数据。
1、先导出原测试用例
如果原工程仍能打开,建议先重新导出一份完整TCF,避免使用来源不明的旧文件。
①打开TBrun,进入原来的测试序列。
②通过【Sequence】→【Export Test Cases(TCF)】导出当前序列中的测试用例。
③给TCF使用容易识别的文件名,并单独保存到项目备份目录。
④导出后记录对应的【源文件】【被测函数】和代码版本,后续导入时用于核对。
现有LDRA快速入门资料中,回归测试流程就是先导出TCF,再通过测试用例导入功能恢复用例。
2、把TCF导入目标测试序列
①在TBrun中打开需要接收测试数据的源文件和函数。
②确认已经建立对应的【测试序列】,并且被测函数接口分析正常。
③选择【Test Case】→【Import Test Cases】。
④选择之前保存的【TCF文件】,执行【Import】。
⑤导入完成后查看测试用例列表,先核对【用例数量】,再检查输入参数和预期结果。
⑥不要立即批量执行,先打开一两个典型用例,确认数组、指针和桩函数数据也已经恢复。
快速入门资料同样给出了通过【Test Case】→【Import Test Cases】载入TCF的操作流程。
二、Testbed测试用例导入后数据丢失如何处理
TCF能够成功导入,却出现部分字段为空,往往说明“测试用例被识别了”,但当前函数接口已经无法与原数据完整对应。此时继续重复导入通常没有意义。
1、先检查函数接口有没有变化
①对比导出TCF时和当前版本的【函数名】。
②检查参数数量、参数名称和参数类型是否发生变化。
③检查指针是否改成数组、结构体成员是否增加或删除。
④查看返回值类型是否调整。
⑤如果接口已经修改,先按新接口重新分析被测函数,再检查哪些旧数据可以继续复用。
例如原函数参数为uint16_t*data,新代码改成结构体指针后,旧TCF中的数据就不能保证自动映射到新的成员。
2、检查全局变量和桩函数数据
普通函数参数都存在,但全局变量或Stub数据消失时,应单独检查测试接口。
①打开当前测试用例,检查原来的【用户全局变量】是否仍被识别。
②查看被测函数调用关系,确认原先的桩函数是否还存在。
③函数签名变化后,重新检查Stub的【输入参数】和【返回值】定义。
④如果重新分析代码后全局变量未出现在测试接口中,先恢复接口识别,再导入测试数据。
⑤不要用新建的空Stub直接覆盖旧配置,否则即使TCF仍在,原来的桩数据也可能无法正常对应。
3、检查编译器和分析环境
测试用例迁移到另一台电脑或另一套工程后,如果编译器配置不同,也可能导致接口解析发生变化。
①检查Testbed中的【Current Compiler】和【Default Compiler】。
②确认两者与原工程使用的目标编译器一致。
③核对头文件搜索路径、宏定义和条件编译配置。
④重新分析源码后,再比较函数参数和全局变量是否恢复正常。
⑤环境确认一致后重新导入TCF,不要在接口仍有解析错误时反复修改测试数据。
已有Testbed操作资料特别强调,使用TBrun前应确认Current Compiler与Default Compiler均为目标编译器,并保持一致。
三、已经出现数据丢失怎么恢复
如果原测试工程已经被修改,或者导入后发现部分用例无法恢复,处理重点应从“重新导入”转为寻找原TCF、工作区备份和仍可读取的测试序列。
1、先找原始TCF和工作区备份
①暂停继续修改当前测试序列,先复制整个【LDRA工作区】作为备份。
②搜索之前手动导出的【TCF文件】,优先使用时间最接近代码修改前的版本。
③检查LDRA工作区下的测试相关备份目录,部分Testbed环境会在tbwrkfls中保留测试用例相关文件。
④找到旧版本后不要直接覆盖当前数据,先建立新的【测试序列】进行试导入。
⑤对比旧序列与新序列,确认哪些数据能够完整恢复,再决定后续迁移方式。
已有Testbed使用资料提到,测试用例发生丢失时可以从LDRA工作区的tbwrkfls相关备份文件中查找恢复数据。
2、只修复真正缺失的部分
①普通输入值完整时,不需要重新创建全部测试用例。
②只有全局变量缺失,就集中恢复【全局变量数据】。
③只有Stub配置不匹配,就重新建立【桩函数接口】后补充对应数据。
④数组或指针长度发生变化时,按照新接口重新设置【数据范围】,不要直接沿用旧长度。
⑤恢复后先运行少量代表性用例,再执行完整回归测试,并检查预期结果与结构覆盖是否仍符合原测试目标。
这样可以最大限度保留原有测试资产,也能避免因为一次接口变化把所有历史用例全部推倒重建。
总结
Testbed测试用例能否顺利迁移,关键在于TCF中的测试数据是否还能与当前函数接口和测试环境正确对应。出现数据缺失时,问题往往不在导入按钮本身,而在代码版本、接口结构或测试配置已经发生变化。保留独立TCF、工作区备份和明确的代码版本关系,可以明显降低回归测试过程中测试资产丢失的风险。如需进一步了解Testbed测试用例导入、TCF数据恢复与测试数据丢失排查,欢迎联系咨询。