技术文章

高层测试和低层测试的结构覆盖收集与合并

时间:2024-02-01

作者·孟煜翔

在机载软件的验证过程中,基于需求的测试分为基于高层需求的测试和基于低层需求的测试。高层需求的测试通常基于系统测试台或Mini测试台环境开展,低层需求的测试可借助测试工具开展。在软件验证过程的结构覆盖分析阶段,会分别收集高层需求测试和低层需求测试的结构覆盖信息。为了使结构覆盖分析活动更便捷与高效,并能够更充分地展示结构覆盖分析的适航符合性,可将高层需求测试和低层需求测试的结构覆盖信息进行合并,得到总的结构覆盖报告。

LDRA Testbed工具套件可实现基于需求的测试和结构覆盖信息的收集与合并。Testbed工具套件包含TBrun模块和结构覆盖分析模块,其中TBrun模块可实现部件级/组件级(多个.c文件集合)或函数级测试;结构覆盖分析模块具备灵活可定制的插装模板和分析报告选项,支持多种插装方式与覆盖类型,一键自动插装、自动分析生成报告。此外,只要使用相同的模板对被测代码插装,Testbed即可轻松实现结构覆盖信息的合并。

 

一、结构覆盖信息的收集

 

基于系统测试台或Mini测试台的测试,将完整软件的可执行文件加载至目标机运行,主要通过上位机的仿真设备提供输入激励和输出观测。此类测试在结构覆盖分析时,利用Testbed工具生成插装后的源代码,再将插装后的源代码编译生成可执行文件并加载至目标机,在用例执行后从串口或其他输出方式中获得结构覆盖信息(.exh文件)。

基于Testbed工具实现部件级/组件级(多个.c文件集合)的测试,需将部件/组件中所有的.c文件创建一个集合Set,进入TBrun模块中的Integration Unit / Module Test模式开发用例。

基于Testbed工具实现函数级的测试,选择函数所在的.c文件,进入TBrun模块中的Unit Test Only模式开发用例。

基于Testbed工具的测试在结构覆盖分析时,先由Testbed对源代码插装,再通过TBrun模块执行测试用例,由工具在用例执行结束后自动从测试输出中分离提取结构覆盖信息(.exh文件)。

 

二、结构覆盖信息的合并

 

在进行结构覆盖信息合并时,将所需的结构覆盖信息(.exh文件)放置于执行历史目录下,导入Testbed进行动态覆盖率分析,工具会自动实现结构覆盖信息的合并,生成合并后的结构覆盖报告。

为了实现高低层需求测试结构覆盖信息的正确合并,应注意以下事项:

  • 确认高低层插装点一致

         高层测试和低层测试须使用相同的插装模板和插装方式对源代码进行插装,否则,结构覆盖信息的对应关系将会紊乱,出现异常的合并结果。

  • 处理对结构覆盖产生影响的宏定义

        若被测代码在头文件中定义的宏含有分支结构(例如在宏中使用三元运算符),在插装时应将宏定义展开,否则,未展开的宏将作为语句处理。

 

创景适航审定服务团队结合多年工程项目经验,精心打造《结构覆盖率收集与分析指南》,可为软件验证过程中的结构覆盖分析活动提供指导。此外,针对LDRA Testbed工具结构覆盖分析模块,创景还可提供配套的TQL-5工具鉴定支持服务。

参考文档:

RTCA/DO-178C 机载系统及设备合格审定中的软件考虑;RTCA;SC-205;2011年12月13日。

技术文章

姓名

公司

电话

邮箱