《电子技术应用》
您所在的位置:首页 > 其他 > 新品快递 > 基于全数字仿真平台的自动化测试工具 CRESTS/ CodeCAST

基于全数字仿真平台的自动化测试工具 CRESTS/ CodeCAST

2009-11-27
作者:奥吉通

   全数字仿真运行平台CRESTS/CodeCAST是能够满足模拟或仿真外部硬件行为进行软件运行和测试需求的工具。该工具运用国际流行的仿真、测试脚本语言来编写外部硬件逻辑行为所产生外部激励事件以构成嵌入式软件的外部信号激励或数据输入,从而满足软件在全数字仿真运行环境下无须人的干预而闭环运行的要求。
     基于嵌入式应用的特点,嵌入式软件全数字仿真测试支撑平台CodeCAST要为嵌入式系统提供全数字仿真测试环境或测试平台,实现对嵌入式系统进行实时、闭环的系统测试。具体地说CodeCAST要为用高级语言(C,ADA等)编写的嵌入式软件测试提供了有效的、统一的协作平台。在该平台上完成被测软件的分析、运行和测试,最重要的是要实现嵌入式系统外部事件的全数字仿真,使得嵌入式软件就像在真实硬件环境下连续不中断地运行。

 


     从嵌入式软件全数字仿真测试支撑平台(CodeCAST)总体结构图我们可以看出,CodeCAST的工作流程是:
     ·  对被测程序进行插桩处理;
     ·  对被测程序进行静态分析,生成程序理解数据和质量度量数据
     ·  装载在开发环境中交叉编译后的被测软件
     ·  对被测嵌入式软件程序进行测试
     ·  通过全数字仿真模拟端口、中断等外部事件,使被测嵌入式软件程序能够“闭环”运行
     ·  对测试结果进行分析,生成测试报告
     ·  依据CodeCAST的工作流程,CodeCAST能够满足嵌入式软件开发阶段的内部测试和验收阶段的测试的要求,并能够为测试方、被测方及上级主管单位提供可以信赖和再现测试过程与测试问题的测试报告。
     主要性能特点
     CodeCAST要为嵌入式软件提供全数字仿真测试的支撑平台,实现对嵌入式系统进行实时的、闭环的系统测试。具体地说CodeCAST要为用高级语言/汇编语言(包括混合编程)编写的嵌入式软件测试提供了有效的、统一的协作平台。在该平台上完成被测软件的分析、运行、测试,最重要的是要实现嵌入式系统外部事件的全数字仿真,使得嵌入式软件就像在真实硬件环境下能够连续不中断地运行,并进行系统测试。
     建立嵌入式应用的核心——CPU的虚拟目标机
     CPU的虚拟目标机实际上就是嵌入式开发应用中大家常用到的CPU模拟器Simulator。由于嵌入式应用千差万别,CPU的种类和型号多种多样,因此CPU虚拟目标机的实现也是各不相同,但它们的核心内容都是相同的。
     CodeCAST虚拟目标机所要完成的任务有:CPU指令集的解释、CPU时序的模拟、CPU端口动作的仿真和CPU中断机制的实现等等。虚拟目标机中对对程序运行性能的计算及时间统计是基于所对应CPU的指令周期以及CPU的工作主频。这是一个相对量,但它能够指导开发人员优化程序,保证程序的运行性能。而且实际的定时或实时设计就是以它为基础的。
     程序理解与质量分析
     程序理解是测试程序、调试程序和维护程序的基础,也是程序质量度量、评估的基础。国外最新研究成果表明, 维护和逆向工程工作百分之七十的时间花在对系统的理解上。为了帮助软件测试人员进行软件质量评测,知道软件的哪些部分能正常运行, 哪些部分应该加以改进, 哪部分应该重新实现,那些部分要重点测试必须首先研究程序的理解技术。
     CodeCAST在程序理解方面要做的工作是解决高级语言程序单元之间的调用关系、被调用关系以及程序单元内部的控制流程关系的表示和图形显示。
     软件质量是人们十分关心的问题,但软件质量的评价十分复杂。为了准确地评定软件的质量,首先必须对影响软件质量的各个因素进行量化,然后才能通过定性与定量相结合的方法评价软件的质量。软件分析主要是为软件测试人员提供度量被测软件质量的度量数据——度量元。
     CodeCAST在软件质量分析方面要做的工作是在国际软件质量标准ISO/IEC 9126和权威理论(McCabe结构复杂性度量)基础上,给出那些严重影响程序整体质量的度量元。
     软件测试
     软件测试是检验软件质量,验证软件功能、性能及结构正确与否的重要手段。软件测试涉及到很多测试技术,如结构测试(覆盖测试或“白盒”测试)、功能测试(“黑盒”测试)、单元测试、集成测试、系统测试以及回归测试。为完成这些测试类型,需要设计测试用例,编写测试脚本。应用测试用例和测试脚本进行软件测试最大的好处是测试结果可以再现,测试自动化和回归测试能够得到保证。
     CodeCAST的结构测试(覆盖测试或“白盒”测试)是被测软件在CPU虚拟目标机运行环境下按照测试要求运行完成的。在正式运行前,要对被测软件在程序理解和分析的基础上进行插桩。在程序运行以后,就可以给出覆盖信息。覆盖测试的结果可在调用图、控制流图上用醒目的颜色标注,或以统计的数据给出。
     CodeCAST的功能测试(“黑盒”测试)是通过特定输入或输入序列,检验相关输出或输出序列来测试程序处理或程序处理流程的正确性。
     CodeCAST的单元测试是通过配置程序单元的运行环境或构造程序单元运行的驱动并实际运行该程序单元完成的。基于一组正确的程序单元采取自底向上的方法可进行组装测试或集成测试,最终进行系统测试。
     CodeCAST通过实时获取或改变虚拟目标机的数据和状态来支持测试用例或测试脚本的应用。CodeCAST支持用国际上流行的高级脚本语言来编写测试用例或测试脚本。单元测试的测试驱动也要用脚本语言来编写。测试的自动化和回归测试环境的建立都可用脚本编程来完成。
     全数字仿真
     嵌入式软件是通过CPU的各种端口与外部硬件发生关联,全数字仿真是针对嵌入式软件而言的。真实CPU端口所对应的型号是电信号,嵌入式软件在端口读取或输出的信号则是数据信号。因此,通过对端口I/O与中断事件产生的逻辑编程,就能够实现端口、中断或外部事件的全数字仿真。
     CodeCAST提供模拟外部设备产生外部激励信号的机制(全数字仿真),即用脚本语言编写端口事件、中断事件以及其它外部事件的逻辑流程。
     总之,全数字仿真运行平台CRESTS/CodeCAST能够满足软件仿真运行与测试的要求,方便灵活地仿真外部硬件行为,监控程序运行的内部状态,支持软件的覆盖测试和功能测试的需求。
     目前,嵌入式软件全数字仿真的思想越来越受到人们的重视,其方法和技术越来越成熟,应用领域越来越广,成功案例越来越多(军事、国防、交通、电子等有大量的应用例子)。特别是仿真和测试脚本语言的出现,为人们编写仿真程序提供了强有力的手段。反过来,脚本语言又很好地促进了全数字仿真概念的普及和应用的推广。

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。