一种面向复用的嵌入式软件测试方法及其测试系统的制作方法

文档序号:6354865阅读:531来源:国知局
专利名称:一种面向复用的嵌入式软件测试方法及其测试系统的制作方法
技术领域
本发明涉及软件测试领域,尤其涉及一种面向复用的嵌入式软件测试方法及其测试系统。
背景技术
软件测试是提高软件可靠性、保证软件质量的重要手段,软件测试活动已经融入软件全生命周期的各个阶段中,软件测试采用的各类技术方法以及测试工具已经日趋成熟,相关的标准、体系也在不断完善,软件测试正在朝着规范化不断发展。 目前随着嵌入式系统的广泛应用,嵌入式软件的质量越来越受到业界的关注,而关于嵌入式软件的测试方法也成为人们研究的重要方向。由于嵌入式软件具有软\硬件结合密切的特点,测试过程中往往采用仿真的方法进行测试,以提高测试充分性和有效性。然而仿真测试过程通常需要根据不同的被测试软件建立大量的仿真模型以支持测试,测试过程费时费カ且效率不高,所以如何提高仿真测试过程的可复用性、可控性和规范性,进而提高测试的效率成为仿真测试领域的主要难题。

发明内容
本发明的目的在于提供一种可以通过复用提高测试效率的嵌入式软件测试方法,本发明还提供ー种实现该方法的测试系统。为了实现上述目的,本发明采用的技术方案如下本发明的面向复用的嵌入式软件测试方法,包含以下步骤在系统中设置模型库,并在其中存储以下各种测试模型被测软件模型描述了被测软件的各种测试需求;交联环境模型描述了外部各种接ロ变量的变量名称、变量描述、变量特性、有效取值范围及其与所述的各种测试需求的对应关系,还描述了系统与环境之间信息交互的动态特性,包括时间特性以及顺序关系;测试用例模型每ー个测试需求对应ー个测试用例模型,每个测试用例模型中描述了其对应的测试需求的测试场景、具体输入取值及测试预期,所述的测试预期包括预期结果与评估准则;测试执行模型每ー个测试用例模型对应ー个测试执行模型,所述的测试执行模型中描述了其对应的测试用例模型的可执行状态、执行的前置条件,还描述了各个测试用例模型的执行顺序;测试结果模型描述了各测试用例模型的测试结论;测试时,系统根据操作者的指令从所述的模型库中选取相应的被测软件模型,并根据该被测软件模型依次选取其对应的交联环境模型、测试用例模型、测试执行模型,如果系统中没有符合要求的相应模型,则根据操作者的指令建立各测试模型,并存入所述模型库;测试执行模型是能够直接在测试环境中执行的模型,执行后得到测试执行結果,将测试结果转换成与所述预期结果相同的表达方式;并与预期结果进行比对,判断是否符合评价准则如果一致,则结束流程;如果不一致,则做进一歩判断如果测试用例错误,则修改用例,重新执行;
如果测试环境错误,则修改测试环境,重新执行;如果被测软件错误,则记录软件失效,描述软件问题;系统利用测试执行模型的执行结果作为测试结论输出构建测试结果模型并显示给操作者。优选的,所述的被测软件模型通过如下方法构建S21 :分析软件需求与设计相关文档,得到软件质量属性列表;S22 :根据软件质量属性确定软件测试类型;S23 :对测试类型进行分解,得到测试意图,并确定测试方法;S24 :根据测试方法对测试意图进行具体分析,得到测试需求。优选的,所述的被测软件模型中还描述了所述的软件质量属性、软件测试类型,所述的测试需求分别和所述的软件质量属性、软件测试类型对应。优选的,所述的交联环境模型通过如下方法构建S31 :分析软件需求与设计相关文档,得到软件外部接ロ关系表,所述的软件外部接ロ关系表中包括交联设备和接ロ类型、接ロ变量;S32 :确定外部接ロ变量信息表,包括变量名称、变量描述、变量特性、有效取值范围;S33 :建立测试需求与接ロ变量的对应关系。优选的,所述的交联环境模型中描述了所述的交联设备和接ロ类型,所述的接ロ变量和所述的交联设备和接ロ类型对应。优选的,所述的测试用例模型通过如下方法构建S41 :构建测试场景依据测试需求确定用例输入序列;S42 :构建测试用例输入取值确定测试输入具体取值;S43 :确定预期包括预期结果与评估准则。优选的,所述的测试执行模型通过如下方式构建S51 :确定物理测试用例-确定用例的可执行状态;S52 :建立初始化环境-确定用例执行的前置条件;S53 :定义测试规程-安排用例执行顺序。优选的,所述的测试结果模型中还描述了测试异常分析和反馈信息,所述的预期测试结果和所述的测试异常分析和反馈信息对应,系统在获得测试结果后调出其对应的测试异常分析和反馈信息显示,当预期测试结果没有对应的测试异常分析和反馈信息,系统根据操作者的指令补入测试异常分析和反馈信息,并更新测试结果模型,系统能够根据操作者的指令更新所述的测试异常分析和反馈信息,并将所述的反馈信息返回给所述的测试用例建模组件用作下一次测试的依据。本发明还提供一种面向复用的嵌入式软件测试系统,包括
模型库,在所述的模型库中存储有以下各种模型被测软件模型描述了被测软件的各种测试需求;交联环境模型描述了外部各种接ロ变量的变量名称、变量描述、变量特性、有效取值范围及其与所述的各种测试需求的对应关系,还描述了系统与环境之间信息交互动态特性,包括时间特性以及顺序关系;测试用例模型每ー个测试需求对应ー个测试用例,每个测试用例中描述了其对应的测试需求的测试场景、具体输入取值及测试预期,所述的测试预期包括预期结果与评估准则;测试执行模型每ー个测试用例模型对应ー个测试执行模型,所述的测试执行模 型中描述了其对应的测试用例模型的可执行状态、执行的前置条件,还描述了各个测试用例模型的执行顺序;测试结果模型描述了各测试用例模型的测试结论;还包括测试需求建模组件,用于根据用户指令从所述的模型库中调取所述的被测软件模型、交联环境模型作为一次测试所用的被测软件模型、交联环境模型;测试用例建模组件用于调取所述模型库中的所述测试用例模型、并根据测试需要模型的输入构建一次测试的测试用例模型;测试执行模型建模组件用于调取所述模型库中的所述测试执行模型、井根据测试用例模型的输入构建一次测试的测试执行模型;测试结果模型建模组件用于调取所述模型库中的所述测试结果模型、井根据测试执行模块的测试结构构建一次测试的测试结果模型,并将模型中的自带反馈信息或者根据用户指令生成的反馈信息返回给所述的测试用例建模组件用作下一次测试的依据;控制模块用于根据用户的指令控制各建模组件调取、构建各个模型,并对测试过程进行控制;测试执行模块根据所述控制模块的调用、按照所述测试执行模型执行各测试用例,得到测试结果,并对测试结果进行判断如果一致,则结束流程;如果不一致,则做进一歩判断如果测试用例错误,则修改用例,重新执行;如果测试环境错误,则修改测试环境,重新执行;如果被测软件错误,则记录软件失效,描述软件问题;将判断结果输出给所述的测试结果模型构建组件构建测试结果模型或者根据判断结果启动下一次测试。本发明的有益效果如下本发明的软件测试方法是ー种针对嵌入式系统软件的有效测试方法,在测试过程中可以产生可复用的测试产品,同时也可以直接使用模型库中的可复用产品,在提高测试效率的同时也避免了许多人为错误与不确定因素的产生,保证了仿真测试过程的可控性和规范性。在对不同软件进行测试时,测试模型成为测试过程中复用的有效组件,尤其对于产品线软件,可以极大的減少测试过程中的重复性工作,最大限度的提高测试效率。


图I为本发明的仿真测试方法的原理图;图2为被测软件模型的构建过程;图3为交联环境模型的构建过程;图4为测试设计模型的构建过程;图5为测试执行模型的构建过程;图6为测试结果模型的构建过程;图7为本发明的测试系统的结构图。
具体实施例方式參见附图1,为本发明的测试方法的原理图,本发明的方法的测试过程是在不同的测试模型间的转换过程中实现的;本发明所说的测试模型是指将测试过程中的各类信息按照测试阶段的不同进行组织,并利用某种形式进行描述得到的結果;在本发明中根据测试阶段的不同,共设置四类测试模型测试需求模型、测试设计模型、测试执行模型和测试结果模型。测试需求模型主要描述一次软件测试的目标以及内容,包括两部分,即被测软件模型,用来对被测试软件的质量属性与测试类型等信息进行描述;交联环境模型,用来对被测试软件的外部环境进行分析,为构建测试用例模型和测试环境奠定基础。测试设计模型是根据测试需求模型而构建的ー类模型,又称之为测试用例模型,主要对测试用例所包含的测试输入条件、预期結果、测试结果判别条件等信息进行描述,通常采用表格的方式进行描述。测试执行模型是测试用例的执行过程信息描述,测试执行模型是根据测试环境信息对测试用例模型的进ー步演化,主要包括测试用例的最終可执行状态和测试用例的执行顺序等信息。测试结果模型是最后一个阶段的模型,也是测试的最終结论,通常利用记录表的形式将每ー个测试用例的执行过程进行详细的记录,包括测试结果与预期结果的一致性,测试异常的记录、软件缺陷的描述等信息。本发明的测试方法中设置各类模型,一方面极大地提高了软件测试过程的规范性 和自动化程度,同时测试模型可以作为测试过程的产品,进入到测试模型库中,有效地解决同类软件测试过程中大量重复性工作带来的测试效率低下问题,而且在一定程度上提高了测试的质量。本发明的关键步骤就在于如何构建各种测试模型,下面结合一个实施例对各模型的构建过程进ー步进行阐述,该实施例中以ー个惯性导航系统为被测软件,惯性导航系统是飞机中的ー个重要系统。它记录了飞机中的关键操作属性,然后通过飞机中的其他子系统提供加速度,速度,方位,航向,姿态,以及实时信息。用于实现惯性导航系统的计算机是嵌入式系统的典型应用。将这样的计算机与传感器网络相结合,并放置在一个盒子中作为ー个独立的子系统。INS中的软件是典型的实时嵌入式系统,它被存储于一个静态存储器中。I、构建测试需求模型
测试需求模型包括两类被测软件模型和交联环境模型,这两种模型根据测试对象和测试目标建立。这两类模型都是ー种平台无关模型,即测试需求模型中的信息与测试执行所需要的测试环境是无关的。测试需求模型是对被测软件的相关质量属性建立的信息模型,是整个测试过程的初始模型,是驱动后续测试模型建立的原动カ。I)被测软件模型(SUT模型)被测软件模型(SUT模型)是根据测试目标以及被测软件的信息在测试需求阶段建立的与被测软件同构的ー类测试对象信息模型。SUT模型是对作为测试客体的被测软件的信息进行建摸。软件具有多方面众多类型的信息,SUT模型是根据测试目标对与本次测试相关的信息进行描述,而忽略其他方面的信息。对SUT进行建模的过程实际上就是对被测软件进行分析,得到测试对象的细化信息的过程,需求阶段建立的SUT模型是从测试角度出发对被测软件某一方面属性的重新描述。这种描述有利于测试分析的进行,并且保持了与被测软件之间的同构关系。 如图2所示,SUT模型的构建一般分为四个步骤I、分析软件需求与设计等相关文档,得到软件质量属性列表;2、根据软件质量属性确定软件测试类型;3、对测试类型进行分解,得到测试意图,并确定测试方法;4、根据测试方法对测试意图进行具体分析,得到测试需求。在本发明的方法中,每ー个被测试的软件都需要构造出ー个被测软件模型。以惯性导航系统为例,其被测软件模型如表I。表I被测软件建模表
权利要求
1.一种面向复用的嵌入式软件测试方法,其特征在于,包含以下步骤 在系统中设置模型库,并在其中存储以下各种测试模型 被测软件模型描述了被测软件的各种测试需求; 交联环境模型描述了外部各种接ロ变量的变量名称、变量描述、变量特性、有效取值范围及其与所述的各种测试需求的对应关系,还描述了系统与环境之间信息交互的动态特性,包括时间特性以及顺序关系; 测试用例模型每ー个测试需求对应ー个测试用例模型,每个测试用例模型中描述了其对应的测试需求的测试场景、具体输入取值及测试预期,所述的测试预期包括预期结果与评估准则; 测试执行模型每ー个测试用例模型对应ー个测试执行模型,所述的测试执行模型中描述了其对应的测试用例模型的可执行状态、执行的前置条件,还描述了各个测试用例模型的执行顺序; 测试结果模型描述了各测试用例模型的测试结论; 测试时,系统根据操作者的指令从所述的模型库中选取相应的被测软件模型,并根据该被测软件模型依次选取其对应的交联环境模型、测试用例模型、测试执行模型,如果系统中没有符合要求的相应模型,则根据操作者的指令建立各测试模型,并存入所述模型库;测试执行模型是能够直接在测试环境中执行的模型,执行后得到测试执行结果,将测试结果转换成与所述预期结果相同的表达方式;并与预期结果进行比对,判断是否符合评价准则 如果一致,则结束流程; 如果不一致,则做进一歩判断 如果测试用例错误,则修改用例,重新执行; 如果测试环境错误,则修改测试环境,重新执行; 如果被测软件错误,则记录软件失效,描述软件问题; 系统利用测试执行模型的执行结果作为测试结论输出构建测试结果模型并显示给操作者。
2.根据权利要求I所述的嵌入式软件测试方法,其特征在于,所述的被测软件模型通过如下方法构建 521:分析软件需求与设计相关文档,得到软件质量属性列表; 522:根据软件质量属性确定软件测试类型; 523:对测试类型进行分解,得到测试意图,并确定测试方法; 524:根据测试方法对测试意图进行具体分析,得到测试需求。
3.根据权利要求I所述的嵌入式软件测试方法,其特征在于,所述的被测软件模型中还描述了所述的软件质量属性、软件测试类型,所述的测试需求分别和所述的软件质量属性、软件测试类型对应。
4.根据权利要求I所述的嵌入式软件测试方法,其特征在于,所述的交联环境模型通过如下方法构建 S31:分析软件需求与设计相关文档,得到软件外部接ロ关系表,所述的软件外部接ロ关系表中包括交联设备和接ロ类型、接ロ变量;.532:确定外部接ロ变量信息表,包括变量名称、变量描述、变量特性、有效取值范围; . 533:建立测试需求与接ロ变量的对应关系。
5.根据权利要求4所述的嵌入式软件测试方法,其特征在于所述的交联环境模型中描述了所述的交联设备和接ロ类型,所述的接ロ变量和所述的交联设备和接ロ类型对应。
6.根据权利要求I所述的嵌入式软件测试方法,其特征在于,所述的测试用例模型通过如下方法构建 541:构建测试场景依据测试需求确定用例输入序列; 542:构建测试用例输入取值确定测试输入具体取值; 543:确定预期包括预期结果与评估准则。
7.根据权利要求I所述的嵌入式软件测试方法,其特征在于,所述的测试执行模型通过如下方式构建 551:确定物理测试用例-确定用例的可执行状态; 552:建立初始化环境-确定用例执行的前置条件; 553:定义测试规程-安排用例执行顺序。
8.根据权利要求I所述的嵌入式软件测试方法,其特征在于,所述的测试结果模型中还描述了测试异常分析和反馈信息,所述的预期测试结果和所述的测试异常分析和反馈信息对应,系统在获得测试结果后调出其对应的测试异常分析和反馈信息显示,当预期测试结果没有对应的测试异常分析和反馈信息,系统根据操作者的指令补入测试异常分析和反馈信息,并更新测试结果模型,系统能够根据操作者的指令更新所述的测试异常分析和反馈信息,并将所述的反馈信息返回给所述的测试用例建模组件用作下一次测试的依据。
9.一种面向复用的嵌入式软件测试系统,其特征在于包括 模型库,在所述的模型库中存储有以下各种模型 被测软件模型描述了被测软件的各种测试需求; 交联环境模型描述了外部各种接ロ变量的变量名称、变量描述、变量特性、有效取值范围及其与所述的各种测试需求的对应关系,还描述了系统与环境之间信息交互动态特性,包括时间特性以及顺序关系; 测试用例模型每ー个测试需求对应ー个测试用例,每个测试用例中描述了其对应的测试需求的测试场景、具体输入取值及测试预期,所述的测试预期包括预期结果与评估准则; 测试执行模型每ー个测试用例模型对应ー个测试执行模型,所述的测试执行模型中描述了其对应的测试用例模型的可执行状态、执行的前置条件,还描述了各个测试用例模型的执行顺序; 测试结果模型描述了各测试用例模型的测试结论; 还包括测试需求建模组件,用于根据用户指令从所述的模型库中调取所述的被测软件模型、交联环境模型作为一次测试所用的被测软件模型、交联环境模型; 测试用例建模组件用于调取所述模型库中的所述测试用例模型、井根据测试需要模型的输入构建一次测试的测试用例模型; 测试执行模型建模组件用于调取所述模型库中的所述测试执行模型、井根据测试用例模型的输入构建一次测试的测试执行模型;测试结果模型建模组件用于调取所述模型库中的所述测试结果模型、并根据测试执行模块的测试结构构建一次测试的测试结果模型,并将模型中的自带反馈信息或者根据用户指令生成的反馈信息返回给所述的测试用例建模组件用作下一次测试的依据; 控制模块用于根据用户的指令控制各建模组件调取、构建各个模型,并对测试过程进行控制; 测试执行模块根据所述控制模块的调用、按照所述测试执行模型执行各测试用例,得到测试结果,并对测试结果进行判断 如果一致,则结束流程; 如果不一致,则做进一歩判断 如果测试用例错误,则修改用例,重新执行; 如果测试环境错误,则修改测试环境,重新执行; 如果被测软件错误,则记录软件失效,描述软件问题; 将判断结果输出给所述的测试结果模型构建组件构建测试结果模型或者根据判断结果启动下一次测试。
全文摘要
本发明公开了一种面向复用的嵌入式软件测试方法,该方法在测试系统中设置模型库,并在其中存储被测软件模型、交联环境模型、测试用例模型、测试执行模型、测试结果模型,该测试方法在各模型的转换过程完成测试。本发明的软件测试方法是一种针对嵌入式系统软件的有效测试方法,在测试过程中可以产生可复用的测试产品,同时也可以直接使用模型库中的可复用产品,在提高测试效率的同时也避免了许多人为错误与不确定因素的产生,保证了仿真测试过程的可控性和规范性。在对不同软件进行测试时,测试模型成为测试过程中复用的有效组件,尤其对于产品线软件,可以极大的减少测试过程中的重复性工作,最大限度的提高测试效率。
文档编号G06F11/36GK102650966SQ20111004450
公开日2012年8月29日 申请日期2011年2月24日 优先权日2011年2月24日
发明者王轶辰 申请人:北京赛若科技有限公司, 王轶昆, 王轶辰
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1