LDRA Testbed的测试报告并不是在测试结束后单独“拼”出来的文档,而是根据当前分析范围、测试执行结果、结构覆盖率以及报告配置生成。处理“Testbed怎么生成测试报告,Testbed测试报告内容缺失如何调整”时,需要先确认静态分析、动态测试和覆盖率数据已经完整产生,再选择对应的报告类型。如果前面的分析数据本身没有生成,单纯修改报告选项并不能把缺失内容补回来。LDRA Testbed本身提供静态、动态分析及结构覆盖率报告,TBrun还可以生成正式的单元和模块测试报告。
一、Testbed怎么生成测试报告
生成报告前,应先确定需要的是编码规范检查、质量分析、单元测试结果还是结构覆盖率报告。不同报告引用的数据不同,因此测试流程最好先执行完整,再统一输出。
1、先完成对应的分析或测试
①在Testbed中加载当前项目,确认本次需要分析的源码范围正确。
②需要静态检查时,先执行对应的【Static Analysis】或编码规范分析。
③需要单元测试结果时,在TBrun中运行已经建立的测试序列。
④需要覆盖率数据时,确认测试程序已经完成插桩、执行并成功回收运行结果。
⑤分析结束后先查看界面中的结果,确认已经存在告警、测试状态或覆盖率数据。
TBrun可以保存测试序列并重复运行,也能够输出Statement、Branch/Decision、MC/DC等不同结构覆盖率数据,因此报告内容取决于前面实际执行了哪些测试与分析。
2、根据目的选择对应报告
①打开Testbed或TBrun中的【Reports】相关功能。
②如果需要检查编码规范结果,选择对应的【Code Review Report】。
③需要查看测试用例输入、预期值和执行结果时,选择单元测试相关报告。
④需要验证结构覆盖情况时,生成对应的【Coverage Report】。
⑤生成前检查报告作用范围,确认是当前文件、模块还是完整项目。
LDRA的报告不仅能够给出静态分析结果,还可以展示代码覆盖情况以及测试执行结果;覆盖率还可细分到Statement、Branch/Decision和MC/DC等指标。
3、需要统一交付时使用TBpublish
如果项目需要把多类结果集中整理,TBpublish可以把LDRA工具链产生的分析和测试结果统一发布。
①先完成本次需要纳入交付的全部分析。
②确认静态分析、测试和覆盖率结果已经更新。
③启动【TBpublish】生成发布结果。
④选择需要纳入的项目或分析结果。
⑤生成后检查HTML索引能否正常打开各类报告。
TBpublish会收集LDRA工具套件中的分析和测试结果,并通过HTML索引发布到独立目录,适合评审、审计或项目归档。
二、Testbed测试报告内容缺失如何调整
报告缺少测试用例、覆盖率、文件或规则结果时,应先判断是【源数据没有产生】还是【报告配置没有显示】。这两类问题的处理方法完全不同。
1、先检查测试和分析是否真正执行完成
①回到Testbed结果界面,确认缺失内容在工具中是否已经存在。
②测试用例缺失时,检查对应测试序列是否实际执行。
③覆盖率缺失时,确认目标程序已经运行并成功回收动态分析数据。
④某个源码文件缺失时,检查它是否已经加入当前分析范围。
⑤存在执行失败或数据采集异常时,先修复测试流程,再重新生成报告。
LDRA的结构覆盖数据来自经过插桩后的程序实际执行结果,因此没有运行到的代码会表现为未覆盖,而测试数据未成功采集时,则无法形成完整的动态分析结果。
2、检查报告配置是否过滤了内容
①打开当前报告的【Report Configuration】。
②检查【Report Level】是否限制了输出范围。
③检查是否只显示某一类规则、文件或严重等级。
④需要代码定位信息时,确认【Source File Links】等相关选项已经启用。
⑤恢复必要项目后重新生成报告,对比缺失内容是否出现。
LDRA的Code Review Report支持针对报告级别、规则引用、源码链接以及违规显示方式进行配置,因此分析结果存在但报告中看不到时,应优先检查报告过滤条件。
3、覆盖率内容缺失时检查指标选择
①进入覆盖率相关设置,确认项目要求的指标已经启用。
②只出现Statement而没有Branch/Decision时,检查是否选择了对应覆盖率级别。
③要求MC/DC时,确认当前工具配置、测试流程和许可证支持该指标。
④重新运行测试并采集覆盖率数据。
⑤再次生成报告,确认各指标与项目要求一致。
TBrun支持Procedure Call、Statement、Branch/Decision、MC/DC和LCSAJ等多种结构覆盖指标,不同项目需要根据适用标准选择相应级别。
4、回归测试报告缺项时检查测试序列
①打开当前使用的测试序列或TCF。
②确认新增函数或接口对应的测试用例已经加入。
③检查源码接口变化后原有测试是否仍然有效。
④重新执行完整测试序列,而不是只运行少量失败用例。
⑤报告生成后重新核对测试数量和覆盖率变化。
TBrun的测试用例可以保存在TCF中并用于后续回归。如果源码已经变化但仍使用旧测试集合,报告本身可以正常生成,但内容可能无法完整代表当前版本。
三、报告重新生成后怎么确认内容已经完整
报告内容恢复后,还需要确认它与本次测试范围一致,否则“页面看起来完整”并不代表可以直接用于评审或交付。
1、用测试范围反查报告内容
①列出本次计划测试的文件、函数和测试序列。
②逐项确认报告中存在对应测试结果。
③检查测试用例总数、通过状态和失败状态是否与TBrun界面一致。
④再核对Statement、Branch或MC/DC等覆盖率是否与动态分析结果一致。
⑤发现数量不一致时,回到原始分析结果继续定位,不要手工修改报告。
2、保存同一批次的测试数据和报告
①固定本次测试使用的源码版本。
②保存对应TCF、测试结果和覆盖率数据。
③再生成最终测试报告或TBpublish发布目录。
④后续代码发生变化后重新运行测试,不直接复用旧报告。
⑤把源码版本、测试数据和报告作为同一批次归档。
这样可以避免测试报告与当前代码版本错位,也能让后续回归测试真正判断是覆盖率变化、测试用例变化还是代码本身发生变化。
总结
Testbed测试报告是否完整,取决于前面的分析和测试数据是否完整,而不仅仅是报告模板设置。出现内容缺失时,应先判断对应数据是否已经在Testbed或TBrun中产生,再检查报告范围、显示级别、覆盖率指标和测试序列。把源码版本、TCF、动态测试数据和最终报告统一管理,才能保证报告既能反映当前测试状态,也能用于后续回归和项目审计。如需进一步了解LDRA Testbed测试报告生成、报告内容缺失排查及覆盖率结果配置方法,欢迎联系咨询。