一种嵌入式软件的可靠性增长测试自动试验装置及其方法

文档序号:6443859阅读:188来源:国知局
专利名称:一种嵌入式软件的可靠性增长测试自动试验装置及其方法
技术领域
本发明应用于嵌入式软件的可靠性测试领域,具体是一种嵌入式软件的可靠性增长测试自动试验装置及其方法。
背景技术
随着嵌入式系统在民用、工业及国防领域的广泛应用,嵌入式软件发挥的作用越来越大。由于嵌入式软件失效会导致系统失效、经济损失甚至重大事故,引起了人们广泛的关注,因此提高嵌入式软件可靠性具有极其重大的意义。软件可靠性测试,特别是嵌入式软件的可靠性测试是一个极为耗时耗力的测试过程。只有在测试样本(测试数据)非常丰富的情况下,随机抽样产生的测试数据才能更为准确的体现出软件的使用分布,但是测试数据的增加势必带来测试成本和耗时的增大,从而使研究所需的数据收集变得非常困难。这也是现有的软件可靠性研究往往只是数学推导, 而不能广做试验的原因之一。以软件可靠性指标MTBF为10000小时的软件为例,其测试时长通常可能大于10000小时,导致可靠性测试实施起来成本很大。软件测试自动化一直以来是测试领域的发展方向,目前市场上也有一些产品对测试自动化提供了支持,但总体来说,软件测试自动化仍停留在应用部分工具的层次上,在理论方面缺乏完整的测试自动化理论支持。比如用于专项用途的测试工具白盒测试工具、黑盒测试工具、专用代码测试工具等,还有一些功能、性能测试用途工具。软件可靠性增长测试是软件系统测试阶段中的主要任务,它能使软件的可靠性得到明显提高。这种测试是为了满足软件的可靠性指标,进一步发现程序中的缺陷而执行程序的过程,是一种软件测试-修改-测试的动态测试方法,是一个闭环过程。不同于一般的软件测试,在数据收集方面,它除了测试输出结果还需要收集失效时间等数据,然后通过所收集的失效数据进行可靠性分析,从而使软件满足可靠性要求。显然现有的一些软件测试自动化工具并不能满足这些要求,对于软件的可靠性研究非常不利。就目前而言,并没有针对嵌入式软件可靠性增长测试的自动试验装置或试验方法,能够自动执行大量的测试用例并收集相关测试信息以供分析。不但无法以高效率自动执行软件可靠性测试从而节省测试时间和测试精力,还无法获得大量的试验数据用于软件可靠性研究。

发明内容
本发明针对由于软件可靠性增长测试极为耗时耗力,目前缺少对嵌入式软件的可靠性增长测试进行自动实验的技术,以获得用于研究的试验数据非常困难,提出了一种嵌入式软件的可靠性增长测试自动试验装置及其方法。本发明提出的一种嵌入式软件的可靠性增长测试自动试验装置,包括运行在宿主机上的自动测试平台和运行在目标机上的嵌入式试验软件,宿主机和目标机之间通过 RS422串口线和交叉网线两条线路相连。
自动测试平台包括缺陷配置模块、测试脚本转化模块、测试脚本解析模块、测试数据发送与采集模块、测试结果比较模块和测试数据处理模块。缺陷配置模块将用户配置的缺陷配置文件,在测试开始前,发送给嵌入式试验软件,缺陷配置文件中记载有需要给嵌入式试验软件注入的缺陷的类型和数量。测试脚本转化模块将由测试数据生成工具得到的测试用例转化为自动测试平台能识别的测试脚本。测试脚本解析模块识别并解析由测试脚本转化模块转化得到的测试脚本,得到测试输入激励信息和测试辅助信息。测试数据发送与采集模块输出测试输入激励信息和测试辅助信息给嵌入式试验软件,并采集嵌入式试验软件的测试输出信息和测试运行信息。测试结果比较模块根据测试输出信息和预期输出结果是否一致,或软件植入缺陷的路径是否被触发,判断嵌入式试验软件是否出现了问题,若输出信息和预期输出结果不一致,或者植入缺陷的路径被触发,则嵌入式试验软件发生失效。测试数据处理模块将采集的测试输入激励信息和测试输出信息测试信息生成测试结果文件,将测试辅助信息以及测试运行信息生成测试路径文件,将各测试用例的开始时间、执行时间和对应的测试结果生成日志文件。嵌入式试验软件包括功能软件模块、缺陷注入模块、数据采集模块和测试辅助模块。功能软件模块用于实现被测嵌入式试验软件的具体各项功能,根据测试输入激励信息运行被测软件,得到测试输出信息。缺陷注入模块为植入被测嵌入式软件中的各缺陷设置了逻辑控制开关,根据缺陷配置文件打开或关闭对应缺陷的逻辑控制开关,在被测嵌入式软件中植入或关闭对应的缺陷。数据采集模块用于在功能软件模块运行时采集测试运行信息,包括路径覆盖、分支覆盖和缺陷覆盖信息。测试辅助模块用于在测试过程中与自动测试平台通讯,从自动测试平台获取缺陷配置文件、测试输入激励信息和测试辅助信息,将收集的测试运行信息以及测试输出信息反馈给自动测试平台。所述的测试输入激励信息和测试输出信息通过RS422串口线进行传输,所述的缺陷配置文件、测试辅助信息和测试运行信息通过交叉网线进行传输。本发明提出的一种嵌入式软件的可靠性增长测试自动试验方法,包括如下步骤步骤1 自动测试平台中的缺陷配置模块将缺陷配置文件下发给嵌入式试验软件,所述的缺陷配置文件由实验人员配置,记载有需要向嵌入式试验软件注入的缺陷的类型和数量。步骤2 嵌入式试验软件通过测试辅助模块获取缺陷配置文件,缺陷注入模块根据缺陷配置文件,打开或关闭对应缺陷的逻辑控制开关,将嵌入式试验软件切换为一个注入缺陷的软件。具体缺陷注入模块通过修改表示缺陷的逻辑控制开关的变量来控制缺陷是否植入,所述变量的值为1或0,1表示打开缺陷,0表示关闭缺陷。步骤3 自动测试平台加载测试数据集,并加载一个测试用例;所述的测试数据集为使用测试数据生成工具得到的测试用例的集合。步骤4 自动测试平台的测试脚本转化模块将加载的测试用例,转化为自动测试平台能识别的测试脚本形式。步骤5 自动测试平台的测试脚本解析模块逐行解析转化后的测试脚本,得到的测试输入激励信息和测试辅助信息,然后建立RS422串口线的串口通讯和交叉网线的网络通讯。步骤6 自动测试平台的测试数据发送与采集模块通过RS422串口线发送测试输入激励信息给嵌入式试验软件,通过交互网线发送测试辅助信息给嵌入式试验软件。步骤7 嵌入式试验软件通过功能软件模块执行接收到的测试输入激励信息,功能软件模块输出测试输出信息,测试辅助模块通过RS422串口线将测试输出信息返回给自动测试平台,在功能软件模块执行过程中,嵌入式试验软件的数据采集模块采集包括路径覆盖、分支覆盖和缺陷覆盖的测试执行信息,测试辅助模块通过交叉网线将测试执行信息传送给自动测试平台。步骤8 自动测试平台的测试结果比较模块判断收到的测试输出信息是否与对应的预期输出结果一致,或者软件植入缺陷的路径是否被触发,若测试输出信息和预期的输出结果不一致或者植入缺陷的路径被触发,则嵌入式试验软件出现失效,发现了缺陷,执行步骤9,否则,嵌入式试验软件测试通过,执行步骤10。步骤9 记录失效信息,并排除该缺陷,具体是下发新的缺陷配置文件给嵌入式试验软件,在新的缺陷配置文件中,将所发现的缺陷的逻辑控制开关的变量设置为0,嵌入式试验软件根据新的缺陷配置文件,关闭相应的缺陷的逻辑控制开关,然后重新加载当前引起失效的测试用例,转步骤4执行。步骤10 将测试用例执行的测试结果文件和执行路径文件保存起来。步骤11,判断测试数据集中的测试用例是否执行完毕,若没有,则加载下一个测试用例,然后转步骤4执行,若执行完毕,则生成本次测试的日志文件,然后结束本次测试。本发明与现有技术相比,具有以下明显的优势和有益效果利用本发明的测试装置以及方法进行测试时,测试人员只需要根据相应的测试需求生成测试数据,同时确定缺陷注入的类型和个数生成缺陷配置文件。然后再通过测试平台下发缺陷配置文件,加载测试数据集,即可自动批量执行,实现嵌入式软件可靠性增长测试自动试验,极大地减少了测试时间和测试人员精力,从而提高了测试效率。并且除了自动批量执行测试用例外,还可在测试过程中收集相关数据,自动生成相关文件以供后续分析, 为嵌入式软件可靠性相关研究提供验证支持和数据支持。


图1是本发明自动试验装置的整体架构图;图2是本发明自动试验方法的整体流程图;图3是本发明的日志文件的一个实例图;图4是本发明方法测试结果文件的一个实例图;图5是本发明方法的测试路径文件的一个实例图;图6是本发明方法实例的运行界面示意图。
具体实施例方式为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步的详细和深入描述。本发明的嵌入式软件的可靠性增长测试自动试验装置及其方法,建立在对被测软件进行缺陷注入的思想上,基本思路是对应的测试平台通过解析测式脚本,将其中的输入激励分离出来得到相关信号,通过硬件接口与被测软件交互,同时收集被测软件反馈的测试相关信息,然后根据预先设定的条件进行判断,如发现缺陷则予以自动排除,实现可靠性增长测试过程。基于宿主机开发典型的嵌入式软件作为被测软件,该软件具有较为通用的硬件接口,完整的功能和文档,并且便于一些试验数据的采集和自动设置,运行于目标机上;而对应的指的测试平台则运行于宿主机上,能根据被测软件的要求组织被测软件的输入和反馈单元,驱动被测软件运行,同时接收和处理被测软件的反馈和输出结果,从而形成对被测的嵌入式软件的自动、实时、闭环测试。如图1所示,本发明的嵌入式软件可靠性增长测试自动试验装置的整体架构包括布置在宿主机上的自动测试平台1和布置在目标机上的嵌入式试验软件2。嵌入式试验软件2运行于目标机上,在该软件中已经注入了一些缺陷。嵌入式试验软件2能够对自动测试平台1传送来的激励信息进行处理并返回相关结果信息和失效信息。具体嵌入式试验模块2中包括功能软件模块21,实现了被测嵌入式软件的具体各项功能,即使脱离自动测试平台1,功能软件模块21仍是一个完整的软件,也能够处理相应的命令数据。功能软件模块21 运行自动测试平台1发送来的测试输入激励信息,输出测试输出信息给测试辅助模块对。缺陷注入模块22,用于完成在被测嵌入式软件中植入缺陷的功能,可实现被测嵌入式软件的程序在正确与缺陷注入之间的切换。缺陷注入模块22为植入被测嵌入式软件中的各缺陷设置了逻辑控制开关,通过更改逻辑控制开关的变量的值控制逻辑控制开关的打开与否,进而打开或者关闭对应的缺陷。此外,它在已经注入缺陷的路径中植入触发器, 以记录测试中缺陷是否被触发。当测试辅助模块M收到自动测试平台发送过来的缺陷配置文件时,缺陷注入模块22根据缺陷配置文件中记载的缺陷类型和数量,控制功能软件模块21中已注入的缺陷的逻辑控制开关打开或关闭,将缺陷配置文件中所记载的缺陷类型对应的逻辑控制开关的变量修改为1,1表示打开缺陷,若关闭某个缺陷,将该缺陷的逻辑控制开关变量修改为0即可。数据采集模块23用于在功能软件模块21运行时采集软件运行的情况,得到包括路径覆盖、分支覆盖、缺陷覆盖等信息的测试运行信息,以辅助后期的数据分析。测试辅助模块M用于测试过程中与自动测试平台1通讯,如获取缺陷配置文件和测试输入激励信息数据,将测试输出信息和收集的软件的测试运行信息,包括路径覆盖信息、分支覆盖信息和缺陷覆盖信息等,通过串口和网络通信反馈给自动测试平台1。自动测试平台1运行于宿主机上,将用户提供的测试用例数据进行脚本转化、解析并执行,还有进行缺陷配置、记录失效信息以及分析测试结果等,主要包括下面五个模块缺陷配置模块11通过交互网线下发缺陷配置文件给嵌入式试验软件2,以控制嵌入式试验软件2需注入缺陷的类型和数量,所述的缺陷配置文件由用户根据测试需要编写,其中包含需要注入的缺陷类型和数量。测试脚本转化模块12,将由测试数据生成工具得到的测试用例转化为自动测试平台1能够识别的测试脚本。测试脚本解析模块13,负责自动识别并解析由测试脚本转化模块12转化得到的测试脚本,得到测试输入激励信息和测试辅助信息。测试数据发送与采集模块14,将测试输入激励信息通过RS422串口线发送给嵌入式试验软件2并采集嵌入式试验软件2反馈的测试输出信息,将测试辅助信息通过交叉网线发送给嵌入式试验软件2,并接收嵌入式试验软件2发送来的测试运行信息。测试结果比较模块15,读取测试数据发送与采集模块14采集的嵌入式试验软件 2的测试输出信息,根据测试输出信息和输入信息的预期输出结果是否一致,或软件植入缺陷的路径是否被触发,判断嵌入式试验软件2是否出现了问题,若测试输出信息和预期的输出结果不一致或者植入缺陷的路径被触发,则嵌入式试验软件2出现失效。测试数据处理模块16负责收集测试信息,并按照事先约定好的文件格式写入对应的文件,生成测试结果文件、测试路径文件和日志文件。宿主机和目标机之间是通过RS422串口线和交叉网线两条线路相连。其中,RS422 串口线负责传送嵌入式试验软件2所需的测试输入激励信息以及接收嵌入式试验软件2反馈的测试输出信息;交叉网线负责传送和接收测试相关信息,包括缺陷配置文件、测试辅助信息和测试运行信息。测试辅助信息是测试为了将输入输出对应上,包括用例号,某一个测试用例对应的激励号,以及需要重启时的重启标志。测试运行信息包括用例号、输入激励号、测试路径、缺陷号和缺陷路径。测试输出信息是嵌入式试验软件2根据测试输入激励信息运行测试用例得到的输出结果。测试输入激励信息是指测试用例中控制嵌入式试验软件 2功能执行的信息,是一串十六进制的数,比如21174840,其中包含的信息有源、目的、控制字、传递信息4个方面。两条链路互不影响,却又相辅相成,按照约定的通信协议来执行测试,从而实现测试过程的实时通讯。可靠性增长测试过程是发现缺陷并排除缺陷的过程,关于这点本发明所述方法具体实现如下分析嵌入式试验软件2的功能特性,总结不同类型的可能存在的缺陷;然后在嵌入式试验软件2中设有逻辑控制开关,实现正确程序和注入缺陷路径的切换,并在已经注入缺陷的路径中植入触发器,以记录测试中缺陷是否被触发;另外,所需注入缺陷的类型和数量则由自动测试平台1控制,它可将缺陷配置文件下发给嵌入式试验软件2,以实现逻辑控制开关的开、关(即缺陷注入与否);因测试过程中嵌入式试验软件2可采集注入缺陷的程序路径是否走到、缺陷是否触发等信息并传送给自动测试平台1,自动测试平台1可据此下发新的缺陷配置文件来关上所发现缺陷的逻辑控制开关,即排除所发现缺陷。实施所述自动试验方法前,应进行如下部署利用可靠性测试数据生成工具生成测试数据;根据嵌入式试验软件2的特性,确定可靠性增长测试终止条件;确定所需配置缺陷的类型和个数,生成缺陷配置文件;实施自动试验方法时,实验人员只需下发已生成的缺陷配置文件,加载已生成的测试数据,如图2所示,基于上述的自动实验装置,本发明的可靠性增长测试自动试验方法具体步骤如下步骤1,自动测试平台1中的缺陷配置模块11将缺陷配置文件下发给嵌入式试验软件2。所述的缺陷配置文件由实验人员配置,其中包含有需要向嵌入式试验软件2注入的缺陷的类型和数量。 步骤2,嵌入式试验软件2通过测试辅助模块M获取缺陷配置文件,缺陷注入模块 22根据缺陷配置文件修改所需注入的缺陷的逻辑控制开关的变量的值,打开或关闭对应缺陷的逻辑控制开关,将嵌入式试验软件2切换为一个注入缺陷的软件。
步骤3,自动测试平台1加载测试数据集,并加载一个测试用例。所述的测试数据集为使用测试数据生成工具得到的测试用例的集合。步骤4,自动测试平台1的测试脚本转化模块12将加载的测试用例,转化为自动测试平台1可识别的测试脚本形式。将测试用例转化为自动测试平台1可识别的测试脚本, 具体是指遍历该测试用例文件,提取所需要的信息,然后按照约定号的格式生成TXT文件, 所生成的TXT文件能够被自动测试平台1识别。步骤5,自动测试平台1的测试脚本解析模块13逐行解析转化后的测试脚本,得到测试输入激励信息和测试辅助信息。本步骤中还将完成硬件接口通讯,即建立RS422串口线的串口通讯和交叉网线的网络通讯。步骤6,自动测试平台1的测试数据发送与采集模块14通过RS422串口线发送测试输入激励信息给嵌入式试验软件2,通过交互网线发送测试辅助信息给嵌入式试验软件 2。步骤7,嵌入式试验软件2通过功能软件模块21处理接收到的测试输入激励信息, 将处理后得到的测试输出信息由测试辅助模块M通过RS422串口线返回给自动测试平台 1,同时嵌入式试验软件2的数据采集模块23采集软件运行的相关信息,包括路径覆盖、分支覆盖和缺陷覆盖等信息,由测试辅助模块M通过交叉网线传送给自动测试平台1。步骤8,自动测试平台1的测试结果比较模块15判断采集的嵌入式试验软件2的测试输出信息,是否与对应的测试输入激励信息的预期输出结果一致,或者软件植入缺陷的路径是否被触发,若测试输出信息和预期的输出结果不一致或者植入缺陷的路径被触发,则嵌入式试验软件2出现失效,发现了缺陷,执行步骤9,否则,嵌入式试验软件2测试通过,执行步骤10。步骤9,如果发现缺陷则记录失效信息,并排除该缺陷,具体是下发新的缺陷配置文件给嵌入式试验软件2,在新的缺陷配置文件中将所发现的缺陷的逻辑控制开关的变量设置为0,嵌入式试验软件2根据新的缺陷配置文件关闭相应的缺陷的逻辑控制开关,然后重新加载当前引起失效的测试用例,转步骤4执行。步骤10,如果没有发现缺陷,则将测试用例执行的测试结果文件和执行路径文件保存起来。步骤11,判断测试数据集中的测试用例是否执行完毕,若没有,则加载下一个测试用例,然后转步骤4执行,若执行完毕,则生成本次测试的日志文件,然后结束本次测试。最后自动测试平台1通过测试数据处理模块16处理测试数据,生成三种文件日志文件、测试结果文件和测试路径文件。如图3所示为生成的日志文件,日志文件中记录有各测试用例的开始时间和执行时间以及测试结果,测试结果是指是否测试通过。如图4所示为测试结果文件,每个测试用例有一个测试结果文件,测试结果文件中记录有该测试用例的用例号、开始时间、结束时间、发送的控制字、预期的状态字和实际收到的状态字等。如图5所示为测试路径文件,每个测试用例有一个测试路径文件,该测试路径文件中记录有测试用例各控制字执行的路径,包括测试用例的用例号、控制字号、插入的桩数和路径编号。关于测试过程中发现的缺陷号及其所在的用例号,总用例数,总测试时间等失效数据,用户均可从上述这些文件当中获得。日志文件记录的是一次测试的相关信息,这些信息需实时显示在用户操作界面上,便于用户观察。当然,如有需要用户可查阅对应的日志文件。测试结果文件和执行路径文件是一个文件对应一个测试用例,测试结果文件记录的是通过RS422串口线传输的测试输入激励信息和嵌入式试验软件2的测试输出信息,执行路径文件记录的是通过交互网线传输的测试辅助信息和测试运行信息。这两类文件能够帮助用户分析被测嵌入式软件的失效原因、测试用例的路径覆盖情况以及缺陷信息。下面列举实例来说明本发明自动试验装置及其方法的可行性和有效性。进行测试前,利用可靠性测试数据生成工具TCS软件生成测试数据,初步生成1000个测试用例,分为 10组,每组100个测试用例;根据被测嵌入式试验软件2的特性,将两次失效之间所用的测试用例数量达到150个定为可靠性增长测试终止条件;确定配置缺陷的数目和类型一般缺陷20个,严重缺陷5个。在被测嵌入式试验软件2中注入两种级别的软件缺陷严重缺陷妨碍主要功能实现和性能达标;一般缺陷妨碍次要功能实现。搭建完试验环境后,试验人员只需下发缺陷配置文件及加载测试数据,根据终止条件终止可靠性增长测试。测试过程图见图6。由TCS工具生成的测试用例为xml文件,数据格式如下,它不能被自动测试平台1 识别,需要进行转化-〈分支约束条件=〃无〃><变量 > 控制字开头.源=0010</变量>〈变量〉控制字开头.目的=0001</变量〉<变量 > 控制字开头.控制字格式=0001011K/变量></ 分支 >TCS生成的测试数据是XML文件格式,并且一个输入激励信息分开为多个数据信息了,由二进制表示,由上面示例可以看到。针对该示例,转化得到的测试脚本的文件名为用例号,形式为.txt文件,由上述测试用例转化得到的测试脚本如下1 21174840 12174841 02 2114A000 1214A001 03 21151000 12151001|14151001 0H飞机降落过程具体转化过程是遍历.xml文件,提取需要的信息,再按照自动测试平台1所需的格式生成.txt文件。.txt文件就是TXT文件。所述的需要的信息是指测试输入激励信息, 在本示例中需要的信息就是TCS生成的XML文件中二进制表示的数据,所要生成的.txt文件是将XML文件中二进制表示的数据组合并转换为十二进制的形式,每8位是一个测试输入激励信息。所述生成的.txt文件具有一个约定好的格式第一列为测试输入激励序号, 第二列为测试输入激励信息,第三列为预期输出,第四列为重启标志。第一列表示用例中的输入激励序号,第二列为由测试平台发送给试验软件的测试输入激励(十六进制),第三列为需要时添加上的由嵌入式试验软件2反馈的预期输出信息 (十六进制),最后一列为重启标志,“1”表示要重启试验软件。为了实现信息同步,自动测试平台1通过网络向嵌入式试验软件2发送测试辅助信息后,同时自动测试平台1由RS422串口向嵌入式试验软件2发送测试输入激励信息。测试辅助信息用一特定结构体表示,该特定结构体包括以下信息用例号,输入激励号,重启标志。另外,自动测试平台1也接受来自嵌入式试验软件2的反馈测试运行信息和输出信息。所述的测试运行信息采用另一个特定结构体表示,所包含信息为用例号,输入激励号, 测试路径,缺陷号和缺陷路径。例如从图6中可以看到,第37个用例发现了 32号缺陷,接下来自动排除了这个缺陷并重新执行第37个用例,顺利通过。其他的也类似这种情况。下表为最终测试结果表1测试数据
权利要求
1.一种嵌入式软件的可靠性增长测试自动试验装置,包括运行在宿主机上的自动测试平台(1)和运行在目标机上的嵌入式试验软件O),其特征在于,宿主机和目标机之间通过 RS422串口线和交叉网线两条线路相连;所述的自动测试平台(1)包括缺陷配置模块(11)、测试脚本转化模块(1 、测试脚本解析模块(13)、测试数据发送与采集模块(14)、测试结果比较模块(15)和测试数据处理模块(16);缺陷配置模块(11)将用户配置的缺陷配置文件,在测试开始前,发送给嵌入式试验软件O),缺陷配置文件中记载有需要给嵌入式试验软件( 注入的缺陷的类型和数量; 测试脚本转化模块(12)将由测试数据生成工具得到的测试用例转化为自动测试平台(1) 能识别的测试脚本;测试脚本解析模块(1 识别并解析由测试脚本转化模块(1 转化得到的测试脚本,得到测试输入激励信息和测试辅助信息;测试数据发送与采集模块(14)输出测试输入激励信息和测试辅助信息给嵌入式试验软件O),并采集嵌入式试验软件(2) 的测试输出信息和测试运行信息;测试结果比较模块(15)根据测试输出信息和预期输出结果是否一致,或软件植入缺陷的路径是否被触发,判断嵌入式试验软件(2)是否出现了问题,若输出信息和预期输出结果不一致,或者植入缺陷的路径被触发,则嵌入式试验软件 (2)发生失效;测试数据处理模块(16)将采集的测试输入激励信息和测试输出信息测试信息生成测试结果文件,将测试辅助信息以及测试运行信息生成测试路径文件,将各测试用例的开始时间、执行时间和对应的测试结果生成日志文件;所述的嵌入式试验软件( 包括功能软件模块(21)、缺陷注入模块(22)、数据采集模块03)和测试辅助模块04);功能软件模块用于实现被测嵌入式试验软件O)的具体各项功能,根据测试输入激励信息运行被测软件,得到测试输出信息;缺陷注入模块(22)为植入被测嵌入式软件中的各缺陷设置了逻辑控制开关,根据缺陷配置文件打开或关闭对应缺陷的逻辑控制开关,在被测嵌入式软件中植入或关闭对应的缺陷;数据采集模块(23)用于在功能软件模块运行时采集测试运行信息,包括路径覆盖、分支覆盖和缺陷覆盖信息;测试辅助模块04)用于在测试过程中与自动测试平台(1)通讯,从自动测试平台(1)获取缺陷配置文件、测试输入激励信息和测试辅助信息,将收集的测试运行信息以及测试输出信息反馈给自动测试平台(1);所述的测试输入激励信息和测试输出信息通过RS422串口线进行传输,所述的缺陷配置文件、测试辅助信息和测试运行信息通过交叉网线进行传输。
2.根据权利要求1所述的一种嵌入式软件的可靠性增长测试自动试验装置,其特征在于,所述的测试脚本转化模块(1 对测试数据生成工具生成的每个测试用例,遍历该测试用例文件,从中提取测试输入激励信息,然后按照约定好的格式生成TXT文件,所生成的 TXT文件就是能够被自动测试平台(1)识别的测试脚本;所述的TXT文件按照约定好的格式形成,格式为第一列为测试输入激励序号,第二列为具体测试输入激励信息,第三列为预期输出,第四列为重启标志。
3.根据权利要求1所述的一种嵌入式软件的可靠性增长测试自动试验装置,其特征在于,所述的缺陷注入模块0 通过修改表示缺陷的逻辑控制开关的变量来控制缺陷是否植入,所述变量的值为1或0,1表示打开缺陷,O表示关闭缺陷。
4.应用权利要求1所述的可靠性增长测试自动试验装置的一种嵌入式软件的可靠性增长测试自动试验方法,其特征在于,具体包括如下步骤步骤1 自动测试平台(1)中的缺陷配置模块(11)将缺陷配置文件下发给嵌入式试验软件O),所述的缺陷配置文件由实验人员配置,记载有需要向嵌入式试验软件( 注入的缺陷的类型和数量;步骤2 嵌入式试验软件( 通过测试辅助模块04)获取缺陷配置文件,缺陷注入模块0 根据缺陷配置文件,打开或关闭对应缺陷的逻辑控制开关,将嵌入式试验软件(2) 切换为一个注入缺陷的软件;具体缺陷注入模块0 通过修改表示缺陷的逻辑控制开关的变量来控制缺陷是否植入,所述变量的值为1或0,1表示打开缺陷,O表示关闭缺陷;步骤3 自动测试平台(1)加载测试数据集,并加载一个测试用例;所述的测试数据集为使用测试数据生成工具得到的测试用例的集合;步骤4:自动测试平台⑴的测试脚本转化模块(12)将加载的测试用例,转化为自动测试平台(1)能识别的测试脚本形式;步骤5:自动测试平台(1)的测试脚本解析模块(1 逐行解析转化后的测试脚本,得到的测试输入激励信息和测试辅助信息,然后建立RS422串口线的串口通讯和交叉网线的网络通讯;步骤6 自动测试平台(1)的测试数据发送与采集模块(14)通过RS422串口线发送测试输入激励信息给嵌入式试验软件O),通过交互网线发送测试辅助信息给嵌入式试验软件⑵;步骤7 嵌入式试验软件( 通过功能软件模块执行接收到的测试输入激励信息,功能软件模块输出测试输出信息,测试辅助模块04)通过RS422串口线将测试输出信息返回给自动测试平台(1),在功能软件模块执行过程中,嵌入式试验软件(2)的数据采集模块采集包括路径覆盖、分支覆盖和缺陷覆盖的测试执行信息,测试辅助模块04)通过交叉网线将测试执行信息传送给自动测试平台(1);步骤8 自动测试平台(1)的测试结果比较模块(15)判断收到的测试输出信息是否与对应的预期输出结果一致,或者软件植入缺陷的路径是否被触发,若测试输出信息和预期的输出结果不一致或者植入缺陷的路径被触发,则嵌入式试验软件出现失效,发现了缺陷,执行步骤9,否则,嵌入式试验软件( 测试通过,执行步骤10 ;步骤9 记录失效信息,并排除该缺陷,具体是下发新的缺陷配置文件给嵌入式试验软件0),在新的缺陷配置文件中,将所发现的缺陷的逻辑控制开关的变量设置为0,嵌入式试验软件( 根据新的缺陷配置文件,关闭相应的缺陷的逻辑控制开关,然后重新加载当前引起失效的测试用例,转步骤4执行;步骤10 将测试用例执行的测试结果文件和执行路径文件保存起来; 步骤11,判断测试数据集中的测试用例是否执行完毕,若没有,则加载下一个测试用例,然后转步骤4执行,若执行完毕,则生成本次测试的日志文件,然后结束本次测试。
5.根据权利要求4所述的一种嵌入式软件的可靠性增长测试自动试验方法,其特征在于,所述的步骤4具体是自动测试平台(1)的测试脚本转化模块(12)遍历所加载的测试用例文件,从中提取测试输入激励信息,然后按照约定好的格式生成TXT文件,所生成的 TXT文件就是能够被自动测试平台(1)识别的测试脚本;所述的TXT文件按照约定好的格式形成,格式为第一列为测试输入激励序号,第二列为具体测试输入激励信息,第三列为预期输出,第四列为重启标志。
全文摘要
本发明提出一种嵌入式软件的可靠性增长测试自动试验装置及其方法,该装置的自动测试平台和嵌入式试验软件之间通过RS422串口线和交叉网线相连,自动测试平台下发缺陷配置文件、转化和解析测试用例、收集测试输出和运行信息,嵌入式试验软件实现缺陷的注入和软件运行过程中的信息采集。该方法利用缺陷配置文件进行缺陷注入,通过自动测试平台转化和解析测试用例,得到测试输入激励和测试辅助信息,控制嵌入式试验软件运行,并收集测试输出和测试运行信息,在发现缺陷时自动排除,实现可靠性增长测试过程。本发明实现了对嵌入式软件的可靠性增长测试的自动实验,极大地减少了测试时间和测试人员精力,使研究所需的试验数据收集变得容易很多。
文档编号G06F11/36GK102402484SQ201110448700
公开日2012年4月4日 申请日期2011年12月28日 优先权日2011年11月30日
发明者尚京威, 敖麒, 艾骏, 郑峰, 钟芳凌, 陆民燕 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1