字体大小 [ ]    

  • 科锐时基于真实目标机的软件开发、测试与验证工具CRESTS/RT-TEST
    (CRESTS: Computer Real-time Embedded Software Test RT-TEST :Real time Test)

         CRESTS/RT-TEST 提出一种新的技术途径来解决基于真实目标机的嵌入式软件开发、测试、验证中要求不插桩的关键技术问题,同时能在嵌入式软件调试环境下利用高级符号调试技术、外部事件全数字仿真技术以及其它相关技术实现嵌入式软件的覆盖测试以及单元测试、集成测试和系统测试等功能,并支持测试用例的加载和测试过程的自动化,实现对嵌入式系统进行实时、闭环的和非侵入式(不插桩)的系统测试、验证。
         传统的软件覆盖测试一般都是借助于插桩的方法实现的。插桩使得被测软件的代码膨胀。这对于资源紧张、代码紧凑、实时性强以及软件与硬件紧密相连的嵌入式软件来说,对测试带来很大的不准确性影响。而这让国内嵌入式应用大户——军工、国防企业(如航空、航天、船舶、兵器等)在进行嵌入式软件测试时无法忍受。代码膨胀有可能导致系统错误(被测程序设计中的代码和数据分配受到影响),时序错误(被测程序的中断与端口输入/输出的时序延时),甚至逻辑错误(汇编程序中相对调用或跳转的目的地址可能越界);而且代码膨胀还影响软件运行的真实性和实时性,影响软件的实时跟踪和测试。
         此外,对嵌入式软件进行覆盖测试、功能测试或系统测试需要有测试用例的驱动和外部事件的激励。传统的嵌入式软件覆盖测试工具或“白盒”测试工具共同的问题是测试用例驱动和外部事件激励很难引入,即中断事件、端口输入/输出事件以及其它相关事件无法按应用的逻辑时序产生,无法构造能使被测软件闭环运行的测试环境;而传统的嵌入式软件功能测试工具或“黑盒”测试工具辅助构造被测软件运行平台的外围硬件环境或工作环境,通过仿真外围设备和外围电路的真实信号,为嵌入式系统提供仿真测试环境,实现对嵌入式系统进行实时、闭环的、非侵入式(不插桩)的系统测试。而当前这些“黑盒”工具与“白盒”工具是分离的,很难满足嵌入式软件既要进行“白盒”测试还要进行“黑盒”测试的“灰盒”测试需求。
         CRESTS/RT-TEST 在高级符号调试技术的基础上为嵌入式软件提供半实物的仿真测试支撑平台,实现对嵌入式软件进行实时的、闭环的、非侵入式(不插桩)的系统测试。具体地说它利用高级符号调试环境为用高级语言编写的嵌入式软件测试提供了有效的,统一的协作平台。在该平台上完成被测软件的分析、运行、调试、测试、验证,最重要的是实现了嵌入式系统外部事件的全数字仿真,使得嵌入式软件就像在真实的运行环境下能够连续不中断地运行,并进行系统测试。
         CRESTS/RT-TEST 适用于嵌入式软件产品研发的后半过程,特别是以下场:有了硬件无法产生外围激励;或者有些硬件的接线很复杂,软件测试时需配硬件工程师,耗时、耗力;等等情况。
         CRESTS/RT-TEST 是在目标机上解释执行的,故无需插桩,不影响实时性,这对于嵌入式开发、测试是至关重要的。CRETS/RT-TEST 不仅仅是一个测试工具,也是一个开发、调试、验证工具,它把开发与测试无缝集成了起来。
        

        CRESTS/RT-TEST 的基本工作流程:对被测程序进行语句行处理
         交叉编译、连接被测程序,生成含有调试符号信息的可执行的目标程序装载在开发环境中交叉编译后的可调试的目标程序对被测程序进行静态分析,生成程序理解数据和质量度量数据
         对被测嵌入式软件程序进行调试或测试通过全数字仿真模拟端口、中断等外部事件,使被测嵌入式软件程序能够“闭环”运行通过外部信号激励源仿真外围设备的数字信号或模拟信号对测试结果进行分析,生成测试报告依据上述的工作流程,本项目的最终研究成果能够满足嵌入式软件开发阶段的内部测试、验证和调试以及确认与验收阶段的测试的要求,并能够为测试方、被测方及上级主管单位提供可以信赖和再现测试过程与测试问题的测试报告。