嵌入式软件自动化测试方法

文档序号:6469416阅读:326来源:国知局

专利名称::嵌入式软件自动化测试方法
技术领域
:本发明涉及一种软件测试,尤其涉及一种嵌入式软件自动化测试方法。
背景技术
:软件测试是软件开发工程项目的一个重要的环节。特别是在航空和航天等领域的嵌入式应用系统日趋复杂,嵌入式系统中软件的比重越来越大,而对嵌入式系统软件的可靠性,安全性,准确性和稳定性的要求也日趋严格。同时硬件发展的日益稳定,而软件故障却日益突出,因此对嵌入式系统的软件测试的重要性引起人们的高度重视。软件测试的方法和技术是多种多样的,可以从不同的角度来分类。从是否需要执行被测软件的角度来看,可分为静态测试和动态测试;从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。黑盒测试的主要测试依据是软件需求。它着眼于软件的外部结构,不考虑程序的逻辑结构和内部特性,仅依据软件的需求规格说明书,在软件界面上检查程序的功能是否符合要求。自动化测试是使用自动化测试的工具对软件单元或功能组件及整个系统集成起来进行整体的测试。这种测试方法主要将注意力集中在利用自动测试工具来帮助提高那些费劳力的测试的效率,从而提高软件质量。自动化测试流程至少应包含以下两个条件1、详细的测试用例根据业务功能需求和设计文档编写的测试用例包含可预料的预期结果2、独立的测试环境包含可恢复测试资料的测试环境,以便在应用程序每次更替后可以重复执行这些预先编写好的测试用例。大多数软件测试方法都可以直接或间接地用于嵌入式软件的测试,但是由于操作系统的实时和嵌入式特性,嵌入式软件测试也面临一些特殊的问题。虽然日前已经有一些针对嵌入式软件的测试和调试工具,但是在有些方面仍存在不足,包括许多任务操作系统的并发、非侵入式的测试和调试、嵌入式系统的软件抽象等。对于嵌入式软件测试技术的研究人选测试工具有待开发,仍须要做很多进一步的工作。嵌入式软件的整个工作过程按照事先定义的流程自动运行,一般没有人工干预。对这类软件的故障一般无法准确定位。为进一步验证软件的功能,性能,可靠性和安全性等指标,就需要其进行确认测试。确认测试又称为有效性测试。它的任务是验证软件的功能和性能及其他特性是否与用户的要求一致。通过集成测试之后,软件已完全组装起来,接口方面的错误也已排除,确认测试即可开始。确认测试应检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准。同时,对软件的真他需求,如可移植性、兼容性、出错自动恢复、可维护性等,都要进行测试,确认是否满足要求。现有的对嵌入式软件确认测试通常需要确定测试规程、设计测试用例、准备测试环境等过程。其测试方法主要是用一套仿真器测试环境,将编写好的测试用例按照实现定义的规则在仿真器环境上执行,并通过相应的接口对被测目标进行激励。因此从本质上来说,这是一种黑盒测试。目前航空航天嵌入式软件确认测试的测试环境主要有以下几种,一种是通常的硬件仿真测试环境;另一种是数字仿真测试环境。硬件仿真测试环境由于对不同的型号软件不能通用,常常造成测试工作不能顺利完成。全数字仿真测试环境就是使用计算机仿真的方式,构造嵌入式软件运行所需要的硬件环境及外部数据源,构成全数字的嵌入式软件运行环境,并在此环境上进行各种测试工作。现有的嵌入式软件数字仿真测试环境主要包括dSPACE和RT-LAB半实物仿真测试平台。这些测试环境的共同特点是通过实时运行的系统模型作为被测软件的控制对象模拟。然后通过在模型中加入需要运行的测试用例,通过驱动仿真测试平台上的对应的I/O与通讯接口来激励被测目标机上的软件,并采集被测目标机软件的反馈控制信号。但是,这样的半实物仿真测试平台在使用中存在着如下不足a)自动化测试过程不直观在dSPACE和RT-LAB半实物仿真测试平台上,都需要编辑系统仿真模型。这些模型都是用Simulink来搭建,并将其转化为实时平台上运行的代码。这说明半实物仿真测试平台更侧重于系统的动力学与控制建模,但还缺乏对交联的被测控制器及其软件的开环测试能力与故障注入能力。不能很好的实现自动化测试。b)缺乏对测试用例的管理能力无论是dSPACE还是RT-LAB,都是侧重于对被测软件的控制对象系统的模拟。它们缺乏对测试用例的编辑,组织和执行的管理能力。在使用中,没有一个清晰的界面去控制怎样将测试用例按照测试计划规定的顺序和时刻执行。
发明内容本发明需要解决的技术问题是提供了一种嵌入式软件自动化测试方法,旨在解决上述的问题。为了解决上述技术问题,本发明是通过以下步骤实现的编辑并建立测试用例库;在流程图编辑界面中建立测试流程框架;根据测试任务需求,在测试流程图中插入各种测试用例;利用脚本生成器将编辑的流程图转换为仿真测试平台上的测试序列;驱动仿真测试平台上的I/O与通讯接口,激励被测软件并接收回馈控制信号。与现有技术相比,本发明的有益效果是由于采用流程图方式调度测试用例,可方便的描述被测软件的运行流程,对测试用例进行有效管理,方便进行自动化确认测试;不需要进行Simulink的建模工作,直接用流程图表示测试流程。可以进行开环测试与闭环测试;可以通过不断地加入接口模型来形成功能强大的外围环境仿真库及接口模块库,以减少后续的二次开发,使资源重复利用。图1是整个软件测试系统组成;图2是采用本发明应用在一个具体实施例中步骤2的流程图3是采用本发明应用在一个具体实施例中步骤3的流程图。具体实施例方式下面结合附图和具体实施方式对本发明作进一步详细描述本发明在半实物仿真测试平台的基础上,加入了流程图方式的测试用例管理功能。本发明是通过以下步骤实现的1.编辑并建立测试用例库;2.在流程图编辑界面中建立测试流程框架;3.根据测试任务需求,在测试流程图中插入各种测试用例;4.利用脚本生成器将编辑的流程图转换为仿真测试平台上的测试序列;5.驱动仿真测试平台上的I/O与通讯接口,激励被测软件并接收回馈控制信号。制定测试用例根据测试方案的要求,设计各种测试用例。测试用例分为以下几类-常规功能测试这类测试用例是用于测试功能好坏的常规测试,根据《软件需求规格文档》编制。由于是在半实物环境下工作,故这些测试用例偏重于I/O与通讯接口的测试。-性能测试这类性能测试侧重于对被测软件的注入某种指令的激励,然后通过接收到的控制信号来估算被测软件的相应速度。-边界测试确定输入和输出参数时,大多数情况下都是用边界值分析方法,采用边界值分析设计的测试用例发现程序错误能力最强。-异常和故障注入对可能的输入参数故障,操作故障,以及可能的通讯故障的模拟。上述的测试用例用脚本语言做成功能模块的方式,存储成为测试用例库,可以从树形列表中浏览。编制测试流程图编制基于状态机的测试流程图,主要关注在测试状态转移的正确性。流程图编辑器以图形的方式与用户交互。用户只需要简单地添加相应的图块并对该图块作一些基本设置,可以通过脚本产生工具转换成测试脚本,然后在仿真测试平台上顺序执行。从图块的种类分,流程图主要有两大类第一、一般图块这类图块包括类似于一般流程图的起始块、执行块、判断块,内部没有特殊的设置,具体的函数体需要用户手动输入。第二、特殊图块这类图块是面向一些特定的应用,内部已经嵌入了特定功能体,不需要用户输入函数体,只要作少许的设置即可。如打开串口、串口数据发送、接受等。从组合分,也主要有六类第一、无组合。这类图块以单体的形式进行添加、删除等操作。第二、F0R组合。这类图块以一整块For结构出现,用户只能在内部适当的地方进5行添加、删除等操作。第三、IF组合。第四、D0…..WHILE组合。第五、WHILE....DO组合。第六、SWITCH组合。流程图的操作方法。用户每添加一个视图就相当于添加了一个功能函数。在视图的起始页面处,系统会自动添加一个Start和End的起始和停止块以及它们之间的连接线。在流程图中添加测试用例添加完成后,双击该图块进入编辑界面,可以对其相应的参数进行设置或者直接输入相应的测试用例以及相应的参数。由于测试用例是以脚本语言的功能模块方式实现的。因此很容易在流程图中加入测试用例。自动化测试的运行如图1所示将上述过程产生的流程图框架中的测试用例通过脚本语言产生工具转换成脚本语言,然后可以通过TCP/IP上传到仿真测试平台服务器上。测试脚本序列在运行时,通过驱动仿真测试平台上的1/0驱动与通讯接口,与被测软件进行通讯。激励被测软件做出各种响应。在测试过程中产生的数据可以有选择性地对其进行保存,方便事后分析。以下根据采用上述方法进行的实际测试应用来说明上述方法的应用步骤。测试对象采用某型号弹载计算机作为被测对象(UUT)。测试计算机通过RS422串口与弹载机进行交互。测试计算机的自动测试通过流程图来组织。流程图的每个流程对应弹载机控制软件的软件流程。测试用例在测试流程图中嵌入。测试用例中对发送数据帧进行管理。测试用例实现的功能基本涵盖上文中提到的各种测试功能。测试过程步骤一根据弹载机的输入/输出信号确定数据结构。发送数据结构假设为Tl,接收数据结构假设为Rl。步骤二根据弹载机的正常工作过程和测试用例加载点,将弹载机的正常运行过程划分为N个阶段,每个阶段运行前首先需要加载相应的测试用例,并且该测试用例可能会影响其后的若干阶段。在流程的第一阶段,几个典型的测试用例示意如下<table>tableseeoriginaldocumentpage6</column></row><table>性能测试对应的性能时间指标t=tr-ts。以上测试用例在测试流程图中可以控制循环注入。测试用例的加载是自动进行的。每个测试用例加载后,程序运行完,控制UUT是其运行程序自动巻回,运行下一个测试用例,直到所有测试用例运行完成。步骤三以各个加载过程作为子程序,利用流程图将其全部实现。步骤四将流程图转换成脚本并上传到软件测试环境计算机运行,得到各种测试用例下的弹载机运行数据和状态信息,并在界面图表中对这些信息进行分析。权利要求一种嵌入式软件自动化测试方法,是通过以下步骤实现的编辑并建立测试用例库;在流程图编辑界面中建立测试流程框架;根据测试任务需求,在测试流程图中插入各种测试用例;利用脚本生成器将编辑的流程图转换为仿真测试平台上的测试序列;驱动仿真测试平台上的I/O与通讯接口,激励被测软件并接收回馈控制信号。全文摘要本发明涉及一种嵌入式软件自动化测试方法,是通过以下步骤实现的编辑并建立测试用例库;在流程图编辑界面中建立测试流程框架;根据测试任务需求,在测试流程图中插入各种测试用例;利用脚本生成器将编辑的流程图转换为仿真测试平台上的测试序列;驱动仿真测试平台上的I/O与通讯接口,激励被测软件并接收回馈控制信号;本发明的有益效果是可以进行开环测试与闭环测试;可以通过不断地加入接口模型来形成功能强大的外围环境仿真库及接口模块库,以减少后续的二次开发,使资源重复利用。文档编号G06F11/36GK101739334SQ20081020310公开日2010年6月16日申请日期2008年11月21日优先权日2008年11月21日发明者邹毅军申请人:上海科梁信息工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1