CN115168229A - 一种覆盖率驱动的嵌入式软件闭环测试平台和方法 - Google Patents

一种覆盖率驱动的嵌入式软件闭环测试平台和方法 Download PDF

Info

Publication number
CN115168229A
CN115168229A CN202210890317.1A CN202210890317A CN115168229A CN 115168229 A CN115168229 A CN 115168229A CN 202210890317 A CN202210890317 A CN 202210890317A CN 115168229 A CN115168229 A CN 115168229A
Authority
CN
China
Prior art keywords
coverage rate
test
embedded software
input
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210890317.1A
Other languages
English (en)
Inventor
杨鹏飞
李伟
杨波
刘卉
王敏君
李敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN202210890317.1A priority Critical patent/CN115168229A/zh
Publication of CN115168229A publication Critical patent/CN115168229A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种覆盖率驱动的嵌入式软件闭环测试平台和方法,属于嵌入式软件开环测试技术领域。本发明利用测试过程中统计嵌入式软件的代码覆盖率指标作为反馈信息,通过比较反馈的覆盖率和目标覆盖率的差异,驱动激励产生器改变嵌入式软件的输入,从而提高嵌入式软件功能测试的覆盖性和充分性,解决传统嵌入式软件开环测试时测试覆盖率有限,测试完备性不易评估,功能测试不充分等问题;利用桩模块记录测试过程中的关键中间变量,解决测试可观测性不足问题;利用测试输入记录技术解决测试输入自动复现问题,提高测试的可重用性。

Description

一种覆盖率驱动的嵌入式软件闭环测试平台和方法
技术领域
本发明属于嵌入式软件开环测试技术领域,具体涉及一种覆盖率驱动的嵌入式软件闭环测试平台和方法。
背景技术
在高可靠、高安全、高实时性要求的产品领域(如航空、航天、核、工业控制、自动驾驶等领域),嵌入式软件应用越来越广泛,且应用时对嵌入式软件的质量要求越来越高。嵌入式软件动态测试作为提高软件质量的重要手段,其功能测试的覆盖性已成为动态测试过程中的重要方面。现有嵌入式软件动态测试技术往往是测试人员根据需求设计测试用例,然后对功能进行逐项测试,测试过程中可能需要手动插桩处理,这种测试方式可重复性不好,测试完备性不易评估,测试质量受测试人员经验水平的限制,且不能考核动态测试是否覆盖了所有软件代码分支。
通过代码覆盖率驱动的功能测试技术可以通过尽可能覆盖软件中各个语句和分支,确保软件中所有的程序至少被执行一次,因此,覆盖率可以用来度量动态测试的完整性以及查找软件中的潜在问题,可以用于评估测试的有效性。另一方面,现有嵌入式软件测试过程中,部分功能测试往往采用打断点的方式查看关键变量的变化情况,这种方式测试可观测性有限,不利于嵌入式软件快速调试。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何解决传统嵌入式软件开环测试时测试覆盖率有限,功能测试不充分,测试完备性不易评估等问题、测试可观测性不足问题、测试输入自动复现问题,提高测试的可重用性。
(二)技术方案
为了解决上述技术问题,本发明提供了一种覆盖率驱动的嵌入式软件闭环测试平台,包括覆盖率目标模块、激励产生器、嵌入式软件、测试结果收集器、参考模型、结果比对器、桩模块、覆盖率数据收集器、覆盖率统计器、覆盖率反馈器、覆盖率差异比较器和测试输入记录仪,其中嵌入式软件对外的接口包括输入接口和输出接口;
所述激励产生器分别和嵌入式软件的输入接口、参考模型相连接,激励产生器根据覆盖率目标模块给出的覆盖率目标为嵌入式软件、参考模型提供相同的测试输入;所述嵌入式软件的输出接口和测试结果收集器相连接,测试结果收集器用于收集嵌入式软件的输出数据;
所述嵌入式软件还和桩模块相连接,桩模块用于对嵌入式代码进行插桩,用于获取代码语句、分支和条件覆盖率信息所组成的覆盖率数组,桩模块还用于记录测试过程中的关键中间变量,在测试结束时,将测试过程中记录的关键中间变量信息发送给测试结果收集器;所述参考模型、测试结果收集器分别和结果对比器相连接,参考模型和测试结果收集器分别为结果比对器提供测试标准解和实际测试结果,结果比对器用于比对该测试标准解和实际测试结果从而给出测试结果的比对结果;
所述覆盖率数据收集器和桩模块相连接,在测试结束时收集桩模块的覆盖率数组;所述覆盖率统计器和覆盖率数据收集器相连接,覆盖率统计器用于读取并合并测试过程中覆盖率数据收集器的覆盖率数组,给出合并后的覆盖率统计信息,并发送给覆盖率数据反馈器;
所述覆盖率反馈器和覆盖率统计器相连接;所述覆盖率目标模块和覆盖率反馈器通过覆盖率差异比较器相连接,覆盖率差异比较器用于将覆盖率目标模块给出的覆盖率目标、覆盖率反馈器给出的覆盖率数组比较后得出覆盖率差异信息;所述覆盖率差异比较器和激励产生器相连接,覆盖率差异比较器给出的覆盖率差异信息和所述比对结果作为激励产生器的输入来源,驱动激励产生器更新测试输入;
所述测试输入记录仪和激励产生器相连接,测试输入记录仪记录激励产生器的时序输入数据,用于在嵌入式软件更改时为回归测试提供输入;测试输入记录仪记录的测试输入数据和功能测试项存在一一对应关系。
优选地,所述输入接口的类型包括AD接口、IO接口、RS422接口、RS485接口、CAN接口、1553B接口、FPGA接口、中断接口、EMIF总线接口。
优选地,所述输出接口的类型包括DA接口、IO接口、RS422接口、RS485接口、CAN接口、1553B接口、FPGA接口、EMIF总线接口。
优选地,所述覆盖率统计器是RTinsight。
本发明还提供了一种利用所述平台实现的嵌入式软件闭环测试平台实现的测试方法,包括以下步骤:
第一步,对被测嵌入式软件进行插桩,获得插桩后的工程;
第二步,根据被测嵌入式软件需求梳理各功能测试项的输入和期望测试结果;
第三步,激励产生器根据覆盖率目标模块给出的覆盖率目标,产生测试输入,该测试输入同时提供给参考模型和嵌入式软件;
第四步,测试结果收集器收集嵌入式软件的输出数据;
第五步,测试结果收集器收集桩模块记录的测试过程中的关键中间变量信息和时序信息,所述时序信息包括嵌入式软件输入量与输出量直接的相对时间关系、中断触发时机、采样时序关系以及命令的响应时间;
第六步,结果比对器比对参考模型输出的测试标准解和测试结果收集器输出的实际测试结果,得到测试结果的比对结果;
第七步,覆盖率数据收集器在测试结束时收集某测试输入条件下桩模块的覆盖率数组,并发送给覆盖率统计器;
第八步,覆盖率统计器统计并合并测试过程中的代码语句、分支和条件覆盖率,并发送给覆盖率数据反馈器;
第九步,覆盖率差异比较器比较覆盖率反馈器和覆盖率目标模块的数据,得出覆盖率差异信息,基于所述覆盖率差异信息和所述比对结果驱动激励产生器更新测试输入,实现对未覆盖分支的测试;
第十步,当嵌入式软件更改时,测试输入记录仪根据所记录的激励产生器的时序输入数据提供对应的回归测试输入。
优选地,基于所述覆盖率差异信息和所述比对结果驱动激励产生器更新测试输入时,按照功能点分析未覆盖率语句和分支,驱动激励产生器产生异常的测试输入;
覆盖率统计器合并新的测试覆盖率数据后,然后判断是否达到覆盖率目标,如果达到覆盖率目标,则测试结束,否则,重新按照功能点分析未覆盖率语句和分支,驱动激励产生器产生异常的测试输入,直至达到覆盖率目标为止。
优选地,所述嵌入式软件对输入、输出接口的操作是对映射后的嵌入式处理器地址空间的读写存储操作。
优选地,所述激励产生器的设计方式是模拟向不同地址空间写入测试输入数据序列,然后按照对应的输入接口时序关系输入到嵌入式软件中,同时,测试结果收集器按照输出接口时序关系采样嵌入式软件的输出数据;另一方面,对于嵌入式软件的外部周期性中断,激励产生器还能够通过定时器周期对中断输入进行模拟。
优选地,所述参考模型的设计方式如下:首先,通过代码审查方式分析嵌入式软件的功能以及各功能的相对时序关系;其次,根据激励产生器的输入产生相应的期望测试结果,期望测试结果包括时序和数据两部分,时序部分给出各设备相对的时序关系,数据部分给出嵌入式软件在对应时序下的期望值和期望的误差;最后,参考模型按照顺序状态机方式将激励产生器的各时序输入下的测试标准解发送给结果比对器。
本发明还提供了一种所述的平台在嵌入式软件开环测试技术领域中的应用。
(三)有益效果
本发明利用测试过程中统计嵌入式软件的代码覆盖率指标作为反馈信息,通过比较反馈的覆盖率和目标覆盖率的差异,驱动激励产生器改变嵌入式软件的输入,从而提高嵌入式软件功能测试的覆盖性和充分性,解决传统嵌入式软件开环测试时测试覆盖率有限,测试完备性不易评估,功能测试不充分等问题;利用桩模块记录测试过程中的关键中间变量,解决测试可观测性不足问题;利用测试输入记录技术解决测试输入自动复现问题,提高测试的可重用性。
附图说明
图1是本发明的一种覆盖率驱动的嵌入式软件闭环测试平台结构示意图;
图2是本发明的一种覆盖率驱动的嵌入式软件闭环测试方法流程图;
图3是本发明的根据反馈的代码覆盖率数据自动调整激励产生器输出的测试输入的示意图。
其中,1、覆盖率目标模块,2、激励产生器,3、嵌入式软件,4、测试结果收集器,5、参考模型,6、结果比对器,7、桩模块,8、覆盖率数据收集器,9、覆盖率统计器,10、覆盖率反馈器,11、覆盖率差异比较器,12、测试输入记录仪。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
采用黑盒测试与白盒测试相结合的测试技术、覆盖率驱动技术、插桩技术和测试数据记录技术,构思了一种覆盖率驱动的嵌入式软件闭环测试平台和方法
如图1所示,本发明提供的一种覆盖率驱动的嵌入式软件闭环测试平台包括覆盖率目标模块1、激励产生器2、嵌入式软件3、测试结果收集器4、参考模型5、结果比对器6、桩模块7、覆盖率数据收集器8、覆盖率统计器9、覆盖率反馈器10、覆盖率差异比较器11和测试输入记录仪12,其中嵌入式软件对外的接口包括输入接口和输出接口。输入接口的类型包括AD接口、IO接口、RS422接口、RS485接口、CAN接口、1553B接口、FPGA接口、中断接口、EMIF总线接口,输出接口的类型包括DA接口、IO接口、RS422接口、RS485接口、CAN接口、1553B接口、FPGA接口、EMIF总线接口。
所述激励产生器分别和嵌入式软件的输入接口、参考模型相连接,激励产生器根据覆盖率目标模块给出的覆盖率目标为嵌入式软件、参考模型提供相同的测试输入;所述嵌入式软件的输出接口和测试结果收集器相连接,测试结果收集器用于收集嵌入式软件的输出数据。
所述嵌入式软件还和桩模块相连接,桩模块用于对嵌入式代码进行插桩,用于获取代码语句、分支和条件覆盖率信息所组成的覆盖率数组,桩模块还可以记录测试过程中的关键中间变量,在测试结束时,可以将测试过程中记录的关键中间变量信息发送给测试结果收集器,增强测试的可观测性;所述参考模型、测试结果收集器分别和结果对比器相连接,参考模型和测试结果收集器分别为结果比对器提供测试标准解和实际测试结果,结果比对器比对该测试标准解和实际测试结果从而给出测试结果的比对结果。
所述覆盖率数据收集器和桩模块相连接,在测试结束时收集桩模块的覆盖率数组;所述覆盖率统计器(可以是RTinsight,但不局限于此)和覆盖率数据收集器相连接,覆盖率统计器用于读取并合并测试过程中覆盖率数据收集器的覆盖率数组,给出合并后的覆盖率统计信息,并发送给覆盖率数据反馈器。
所述覆盖率反馈器和覆盖率统计器相连接;所述覆盖率目标模块和覆盖率反馈器通过覆盖率差异比较器相连接,覆盖率差异比较器用于将覆盖率目标模块给出的覆盖率目标、覆盖率反馈器给出的覆盖率数组比较后得出覆盖率差异信息;所述覆盖率差异比较器和激励产生器相连接,覆盖率差异比较器给出的覆盖率差异信息和所述比对结果作为激励产生器的输入来源,驱动激励产生器更新测试输入,通过改变激励产生器的输出尽可能实现对未覆盖语句和分支的覆盖。
所述测试输入记录仪和激励产生器相连接,测试输入记录仪记录激励产生器的时序输入数据,用于在嵌入式软件更改时为回归测试提供输入;测试输入记录仪记录的测试输入数据和功能测试项存在一一对应关系。
如图2所示,本发明提供了一种利用上述覆盖率驱动的嵌入式软件闭环测试平台实现的测试方法,该方法通过闭环反馈技术提高了功能测试的覆盖率和充分性,其具体工作流程为:
第一步,对被测嵌入式软件进行插桩,获得插桩后的工程;
第二步,根据被测嵌入式软件需求梳理各功能测试项的输入和期望测试结果;
第三步,激励产生器根据覆盖率目标模块给出的覆盖率目标,产生测试输入,该测试输入同时提供给参考模型和嵌入式软件;
第四步,测试结果收集器收集嵌入式软件的输出数据;
第五步,测试结果收集器收集桩模块记录的测试过程中的关键中间变量(关键状态变量)信息和时序信息,所述时序信息包括嵌入式软件输入量与输出量直接的相对时间关系、中断触发时机、采样时序关系以及命令的响应时间;
第六步,结果比对器比对参考模型输出的测试标准解和测试结果收集器输出的实际测试结果,得到测试结果的比对结果;
第七步,覆盖率数据收集器在测试结束时收集某测试输入条件下桩模块的覆盖率数组(数据),并发送给覆盖率统计器;
第八步,覆盖率统计器统计并合并测试过程中的代码语句、分支和条件覆盖率,并发送给覆盖率数据反馈器;
第九步,覆盖率差异比较器比较覆盖率反馈器和覆盖率目标模块的数据,得出覆盖率差异信息,基于所述覆盖率差异信息和所述比对结果驱动激励产生器更新测试输入,实现对未覆盖分支的测试。
第十步,当嵌入式软件更改时,测试输入记录仪根据所记录的激励产生器的时序输入数据提供对应的回归测试输入。
下面是嵌入式软件常用代码结构插桩点示意:
Figure BDA0003767242880000091
Figure BDA0003767242880000101
上面给出的嵌入式软件常用代码结构插桩点中包含了嵌入式软件中常用的语句和分支的插桩情况,包括for循环语句、if-else if-else语句、顺序语句、组合条件表达式分支。图3是以RTinsight覆盖率工具为例说明统计覆盖率信息的插桩模块的设计思路,BUF_MAX_LEN代表软件中最大的语句、分支和条件数,OutputXX桩宏定义用于统计测试过程中语句、分支和条件覆盖情况,其参数代表代码中的语句、分支、条件数,当某个功能测试完成后,收到自定义的覆盖率收集命令start_send_data后,自动将包含覆盖率信息的覆盖率数据g_vmc_buf的数据帧通过Send函数驱动外部接口发送给覆盖率数据收集器,覆盖率数据收集器通过buf数据解析得到原始的覆盖率数据信息。
图3是根据反馈的代码覆盖率数据自动调整激励产生器输出的测试输入的示意图。根据反馈的代码覆盖率数据自动调整激励产生器输出的测试输入流程如下:
第1步,按照需求规格说明的要求,激励产生器产生各功能测试项的正常测试输入;
第2步,覆盖率统计器对各功能测试项正常完成后的覆盖率数据收集并合并,统计实时的覆盖率数据;
第3步,根据实测覆盖率结果和目标覆盖率差异,按照功能点分析未覆盖率语句和分支,驱动激励产生器产生异常的测试输入;
第4步,覆盖率统计器合并覆盖率数据收集器中在第3步的测试覆盖率数据后,重复第3步的过程,然后判断是否达到覆盖率目标,如果达到覆盖率目标,测试结束,否则,重复第三步的过程,直至达到覆盖率目标为止。
所述激励产生器的设计思路如下:所述嵌入式软件对外接口一般是数字接口,对外的输入输出接口有DA接口、AD接口、RS422接口、RS485接口、CAN接口、1553B接口、FPGA接口,上述接口类型从模型上一般都可以归结为EMIF接口,将不同的硬件接口类型映射到嵌入式处理器的不同地址空间,嵌入式软件对上述接口的操作可归结为对映射后的嵌入式处理器地址空间的读写存储操作。因此,激励产生器的开发可以归结为模拟向不同地址空间写入测试输入数据序列,然后按照对应的输入接口时序关系输入到嵌入式软件中,同时测试结果收集器按照输出接口时序关系采样嵌入式软件的输出数据。另一方面,对于嵌入式软件的外部周期性中断,激励产生器可以通过高精度的定时器周期对中断输入进行精确模拟。
所述参考模型的设计思路如下:首先,通过代码审查方式分析嵌入式软件的功能以及各功能的相对时序关系;其次,参考模型的输入来自激励产生器,根据激励产生器的输入产生相应的期望测试结果,期望测试结果包括时序和数据两部分,时序部分给出各设备相对的时序关系,数据部分给出嵌入式软件在对应时序下的期望值和期望的误差;最后,将激励产生器的各时序输入下的参考模型所提供的测试标准解按照顺序状态机方式发送给结果比对器。
可以看出,本发明提供的一种覆盖率驱动的嵌入式软件闭环测试平台和方法,通过覆盖率目标模块、覆盖率差异比较器、激励产生器、嵌入式软件、测试结果收集器、参考模型、结果比对器、桩模块、覆盖率数据收集器、覆盖率统计器、覆盖率数据反馈器和测试输入记录仪实现,其中嵌入式软件中包括输入接口和输出接口。所述激励产生器分别和嵌入式软件、参考模型相连接,为二者提供测试输入;所述嵌入式软件和测试结果收集器相连接,测试结果收集器收集嵌入式软件的输出数据;所述嵌入式软件还和桩模块相连接,桩模块用于对嵌入式代码进行插桩;所述参考模型、测试结果收集器分别和结果对比器相连接,参考模型和测试结果收集器分别为结果比对器提供标准解和实际测试结果,结果比对器给出测试结果比对结果;所述覆盖率数据收集器和桩模块相连接,在测试结束时收集桩模块的覆盖率数组;所述覆盖率统计器和覆盖率数据收集器相连接,覆盖率统计器读取并合并测试过程中覆盖率数据收集器的覆盖率数组,给出合并后的覆盖率统计信息;所述覆盖率反馈器和覆盖率统计器相连接;所述覆盖率目标模块和覆盖率反馈器通过覆盖率差异比较器相连接,二者之间比较后得出覆盖率的差异信息;所述覆盖率差异比较器和驱动产生器相连接,覆盖率差异比较器给出覆盖率差异信息,覆盖率差异信息作为激励产生器的输入来源;所述测试输入记录仪和激励产生器相连接,测试输入记录仪记录激励产生器的时序输入数据,用于软件更改时为进行回归测试提供输入。本发明利用测试过程中统计嵌入式软件的代码覆盖率指标作为反馈信息,通过比较反馈的覆盖率和目标覆盖率的差异,驱动激励产生器改变嵌入式软件的输入,从而提高嵌入式软件功能测试的覆盖性和充分性,解决传统嵌入式软件开环测试测试覆盖率有限,测试完备性不易评估,功能测试不充分等问题;同时利用桩模块记录测试过程中的关键中间变量,解决测试可观测性不足问题;利用测试输入记录技术解决测试输入自动复现问题,提高测试的可重用性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种覆盖率驱动的嵌入式软件闭环测试平台,其特征在于,包括覆盖率目标模块、激励产生器、嵌入式软件、测试结果收集器、参考模型、结果比对器、桩模块、覆盖率数据收集器、覆盖率统计器、覆盖率反馈器、覆盖率差异比较器和测试输入记录仪,其中嵌入式软件对外的接口包括输入接口和输出接口;
所述激励产生器分别和嵌入式软件的输入接口、参考模型相连接,激励产生器根据覆盖率目标模块给出的覆盖率目标为嵌入式软件、参考模型提供相同的测试输入;所述嵌入式软件的输出接口和测试结果收集器相连接,测试结果收集器用于收集嵌入式软件的输出数据;
所述嵌入式软件还和桩模块相连接,桩模块用于对嵌入式代码进行插桩,用于获取代码语句、分支和条件覆盖率信息所组成的覆盖率数组,桩模块还用于记录测试过程中的关键中间变量,在测试结束时,将测试过程中记录的关键中间变量信息发送给测试结果收集器;所述参考模型、测试结果收集器分别和结果对比器相连接,参考模型和测试结果收集器分别为结果比对器提供测试标准解和实际测试结果,结果比对器用于比对该测试标准解和实际测试结果从而给出测试结果的比对结果;
所述覆盖率数据收集器和桩模块相连接,在测试结束时收集桩模块的覆盖率数组;所述覆盖率统计器和覆盖率数据收集器相连接,覆盖率统计器用于读取并合并测试过程中覆盖率数据收集器的覆盖率数组,给出合并后的覆盖率统计信息,并发送给覆盖率数据反馈器;
所述覆盖率反馈器和覆盖率统计器相连接;所述覆盖率目标模块和覆盖率反馈器通过覆盖率差异比较器相连接,覆盖率差异比较器用于将覆盖率目标模块给出的覆盖率目标、覆盖率反馈器给出的覆盖率数组比较后得出覆盖率差异信息;所述覆盖率差异比较器和激励产生器相连接,覆盖率差异比较器给出的覆盖率差异信息和所述比对结果作为激励产生器的输入来源,驱动激励产生器更新测试输入;
所述测试输入记录仪和激励产生器相连接,测试输入记录仪记录激励产生器的时序输入数据,用于在嵌入式软件更改时为回归测试提供输入;测试输入记录仪记录的测试输入数据和功能测试项存在一一对应关系。
2.如权利要求1所述的平台,其特征在于,所述输入接口的类型包括AD接口、IO接口、RS422接口、RS485接口、CAN接口、1553B接口、FPGA接口、中断接口、EMIF总线接口。
3.如权利要求1所述的平台,其特征在于,所述输出接口的类型包括DA接口、IO接口、RS422接口、RS485接口、CAN接口、1553B接口、FPGA接口、EMIF总线接口。
4.如权利要求1所述的平台,其特征在于,所述覆盖率统计器是RTinsight。
5.一种利用如权利要求1至4中任一项所述平台实现的嵌入式软件闭环测试平台实现的测试方法,其特征在于,包括以下步骤:
第一步,对被测嵌入式软件进行插桩,获得插桩后的工程;
第二步,根据被测嵌入式软件需求梳理各功能测试项的输入和期望测试结果;
第三步,激励产生器根据覆盖率目标模块给出的覆盖率目标,产生测试输入,该测试输入同时提供给参考模型和嵌入式软件;
第四步,测试结果收集器收集嵌入式软件的输出数据;
第五步,测试结果收集器收集桩模块记录的测试过程中的关键中间变量信息和时序信息,所述时序信息包括嵌入式软件输入量与输出量直接的相对时间关系、中断触发时机、采样时序关系以及命令的响应时间;
第六步,结果比对器比对参考模型输出的测试标准解和测试结果收集器输出的实际测试结果,得到测试结果的比对结果;
第七步,覆盖率数据收集器在测试结束时收集某测试输入条件下桩模块的覆盖率数组,并发送给覆盖率统计器;
第八步,覆盖率统计器统计并合并测试过程中的代码语句、分支和条件覆盖率,并发送给覆盖率数据反馈器;
第九步,覆盖率差异比较器比较覆盖率反馈器和覆盖率目标模块的数据,得出覆盖率差异信息,基于所述覆盖率差异信息和所述比对结果驱动激励产生器更新测试输入,实现对未覆盖分支的测试;
第十步,当嵌入式软件更改时,测试输入记录仪根据所记录的激励产生器的时序输入数据提供对应的回归测试输入。
6.如权利要求5所述的方法,其特征在于,基于所述覆盖率差异信息和所述比对结果驱动激励产生器更新测试输入时,按照功能点分析未覆盖率语句和分支,驱动激励产生器产生异常的测试输入;
覆盖率统计器合并新的测试覆盖率数据后,然后判断是否达到覆盖率目标,如果达到覆盖率目标,则测试结束,否则,重新按照功能点分析未覆盖率语句和分支,驱动激励产生器产生异常的测试输入,直至达到覆盖率目标为止。
7.如权利要求5所述的方法,其特征在于,所述嵌入式软件对输入、输出接口的操作是对映射后的嵌入式处理器地址空间的读写存储操作。
8.如权利要求5所述的方法,其特征在于,所述激励产生器的设计方式是模拟向不同地址空间写入测试输入数据序列,然后按照对应的输入接口时序关系输入到嵌入式软件中,同时,测试结果收集器按照输出接口时序关系采样嵌入式软件的输出数据;另一方面,对于嵌入式软件的外部周期性中断,激励产生器还能够通过定时器周期对中断输入进行模拟。
9.如权利要求5所述的方法,其特征在于,所述参考模型的设计方式如下:首先,通过代码审查方式分析嵌入式软件的功能以及各功能的相对时序关系;其次,根据激励产生器的输入产生相应的期望测试结果,期望测试结果包括时序和数据两部分,时序部分给出各设备相对的时序关系,数据部分给出嵌入式软件在对应时序下的期望值和期望的误差;最后,参考模型按照顺序状态机方式将激励产生器的各时序输入下的测试标准解发送给结果比对器。
10.一种如权利要求1至4中任一项所述的平台在嵌入式软件开环测试技术领域中的应用。
CN202210890317.1A 2022-07-27 2022-07-27 一种覆盖率驱动的嵌入式软件闭环测试平台和方法 Pending CN115168229A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210890317.1A CN115168229A (zh) 2022-07-27 2022-07-27 一种覆盖率驱动的嵌入式软件闭环测试平台和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210890317.1A CN115168229A (zh) 2022-07-27 2022-07-27 一种覆盖率驱动的嵌入式软件闭环测试平台和方法

Publications (1)

Publication Number Publication Date
CN115168229A true CN115168229A (zh) 2022-10-11

Family

ID=83497733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210890317.1A Pending CN115168229A (zh) 2022-07-27 2022-07-27 一种覆盖率驱动的嵌入式软件闭环测试平台和方法

Country Status (1)

Country Link
CN (1) CN115168229A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117171057A (zh) * 2023-11-02 2023-12-05 沐曦集成电路(上海)有限公司 芯片软硬件联合仿真阶段的软件代码覆盖率确定系统
CN117648696A (zh) * 2023-11-27 2024-03-05 中国电子科技集团公司第十五研究所 一种软件安全性测试方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117171057A (zh) * 2023-11-02 2023-12-05 沐曦集成电路(上海)有限公司 芯片软硬件联合仿真阶段的软件代码覆盖率确定系统
CN117171057B (zh) * 2023-11-02 2024-01-26 沐曦集成电路(上海)有限公司 芯片软硬件联合仿真阶段的软件代码覆盖率确定系统
CN117648696A (zh) * 2023-11-27 2024-03-05 中国电子科技集团公司第十五研究所 一种软件安全性测试方法及装置
CN117648696B (zh) * 2023-11-27 2024-06-04 中国电子科技集团公司第十五研究所 一种软件安全性测试方法及装置

Similar Documents

Publication Publication Date Title
CN115168229A (zh) 一种覆盖率驱动的嵌入式软件闭环测试平台和方法
US4720778A (en) Software debugging analyzer
US5022028A (en) Software verification apparatus
US5517432A (en) Finite state machine transition analyzer
US7519867B2 (en) Test executive which provides heap validity checking and memory leak detection for user code modules
CN107562969B (zh) 航空发动机控制系统软件的集成方法和装置
CN109324601A (zh) 基于硬件在环的机器人控制器或控制系统的测试平台
CN112597006B (zh) 一种嵌入式软件集成测试自动化执行系统及方法
CN102053906A (zh) 用于收集程序运行时信息的系统和方法
CN110543300B (zh) 汽车仪表自动化测试脚本自动生成方法及工具
CN1153347A (zh) 总线分析器及其测试内总线的方法
CN115656792B (zh) 芯片可测性设计的测试方法及测试平台
CN115684896B (zh) 芯片可测性设计测试方法、测试平台及其生成方法及装置
CN108984393A (zh) 一种单元测试代码自动生成方法及装置
CN100456248C (zh) 获得程序代码和函数执行覆盖率及执行效率的装置及方法
CN116126700A (zh) 一种基于SystemC的芯片验证方法及系统
CN110347595A (zh) 一种fpga内部资源甄别与定位方法及系统
CN115656791B (zh) 芯片可测性设计的测试方法及测试平台
CN112685316A (zh) 代码执行路径的获取方法、装置、计算机设备及存储介质
CN115684894B (zh) 芯片可测性设计的测试方法及测试平台
CN110502433A (zh) 一种计算机软件技术开发调试系统
CN115932706A (zh) 一种电能表数据分析方法、电能表以及存储介质
CN100483342C (zh) 量测程序智能生成系统及方法
CN113485879A (zh) 一种基于labview调用vivado-tcl脚本自动化测试方法
CN100383798C (zh) 一种对随机存储器封装文件进行仿真的仿真平台及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination