本公开涉及一种用于自动化的测试用例增广(augmentation)的方法。
背景技术:
:可用的基于模型的开发工具能够显示某些模型元素的不可达性。一些工具能够生成测试输入,其满足准则(criteria)覆盖目标以及用户定义的测试目标和要求。这些测试输入也能够与使用测量的数据所定义的测试相组合,使得模拟相对于模型覆盖、要求和现实世界情形进行测试。但是,一些重要覆盖准则(例如掩蔽修改的条件/判定覆盖(mc/dc))没有受到可用的基于模型的开发工具所支持,以及生成冗余测试用例以满足某些覆盖准则。此外,一些常规开发工具没有提供增广测试用例以满足覆盖准则的能力。软件认证准则(例如do-178c)要求安全关键软件(例如航空软件)采用严格测试覆盖(包括mc/dc)来测试。这些准则能够要求测试可能单独影响判定的各条件。人工检查模型/代码以识别将内部变量驱动到特定值的输入序列是困难并且费时的,特别是当航空软件系统较大和复杂时。本发明提供了如下技术方案:提供了技术方案1:一种用于自动化的测试用例增广的方法,所述方法包括:在自动化的测试增广系统从基于模型的开发工具来接收设计模型和模型覆盖间隙信息;将所述模型覆盖间隙信息转化为机器可读数学测试目标表达式;通过转化所述机器可读数学测试目标表达式来开发一组测试目标算子;定位所述设计模型内的所述所识别的覆盖间隙的对象算子;将所述测试目标算子附连到所述设计模型的对象算子,以创建测试模型;通过将在所述对象算子的测试目标传播到所述设计模型的测试节点算子来增广所述测试模型;以及由测试生成器来运行所述增广测试模型以得到所述测试用例来覆盖所述覆盖间隙和所述模型覆盖间隙的原因。提供了技术方案2:如技术方案1所述的方法,所述覆盖准则转化包括使用准则转换表。提供了技术方案3:如技术方案2所述的方法,包括从所述基于模型的开发工具来得到所述准则转换表。提供了技术方案4:如技术方案1所述的方法,包括分类以及识别所述覆盖准则至少之一。提供了技术方案5:如技术方案4所述的方法,包括生成所述覆盖准则的一个或多个转换规则。提供了技术方案6:如技术方案1所述的方法,包括生成更新的设计模型参数,所述设计模型参数使关联的覆盖间隙由测试用例可达。提供了技术方案7:一种非暂时计算机可读介质,具有指令存储在其上,所述指令在由控制处理器运行时使所述控制处理器执行用于自动化的测试用例增广的方法,所述方法包括:在自动化的测试增广系统从基于模型的开发工具来接收设计模型和模型覆盖间隙信息;将所述覆盖间隙转化为机器可读数学测试目标表达式;通过转化所述机器可读数学测试目标表达式来开发一组测试目标算子;定位所述设计模型内的所述所识别的覆盖间隙的对象算子;将所述测试目标算子附连到所述设计模型的对象算子,以创建测试模型;通过将在所述对象算子的测试目标传播到所述设计模型的测试节点算子来增广所述测试模型;以及测试生成器运行所述增广的测试模型以得到所述测试用例来覆盖所述覆盖间隙和所述模型覆盖间隙的所述原因。提供了技术方案8:如技术方案7所述的非暂时计算机可读介质,所述指令还使所述控制处理器通过包括使用准则转换表来执行所述覆盖准则转化。提供了技术方案9:如技术方案8所述的非暂时计算机可读介质,所述指令还使所述控制处理器从所述基于模型的开发工具来得到所述准则转换表。提供了技术方案10:如技术方案7所述的非暂时计算机可读介质,所述指令还使所述控制处理器执行分类以及识别所述覆盖准则至少之一。提供了技术方案11:如技术方案10所述的非暂时计算机可读介质,所述指令还使所述控制处理器生成用于所述覆盖准则的一个或多个转换规则。提供了技术方案12:一种用于自动化的测试用例增广的系统,所述系统包括:包括控制处理器的计算机,所述控制处理器配置成运行程序指令;链接到所述控制处理器的间隙转换器单元,所述间隙转换器单元配置成将设计模型的一个或多个模型覆盖间隙转换成数学测试目标表达式;链接到所述控制处理器的测试生成器单元,所述测试生成器单元配置成从测试模型内的所述测试目标来开发一组测试用例;间隙转换器单元还配置成将所述数学测试目标表达式转化成测试目标算子,并且通过将所述测试目标算子附连到所述设计模型中的对应算子来创建测试模型;提供了技术方案13:如技术方案12所述的系统,配置成从基于模型的开发工具来接收所述模型覆盖间隙。提供了技术方案14:如技术方案12所述的系统,所述测试目标定义一个或多个测试目的。提供了技术方案15:如技术方案12所述的系统,所述测试目标算子是能够附连到所述设计模型的测试目标算子。提供了技术方案16:如技术方案12所述的系统,包括用于存储测试目标、测试模型和覆盖间隙转换规则的数据存储。提供了技术方案17:如技术方案12所述的系统,所述控制处理器还配置成运行使所述控制处理器执行下列操作的程序指令:通过将在所述对象算子的测试目标传播到所述设计模型的所述测试节点算子来增广所述测试模型;以及对所述增广的测试模型来运行所述测试生成器以得到所述测试用例来覆盖所述覆盖间隙和所述模型覆盖间隙的所述原因。提供了技术方案18:如技术方案17所述的系统,所述控制处理器还配置成运行程序指令,所述程序指令使所述控制处理器通过使用准则转换表来转化覆盖准则转化。提供了技术方案19:如技术方案18所述的系统,所述控制处理器还配置成运行程序指令,所述程序指令使所述控制处理器从所述基于模型的开发工具来得到所述准则转换表。提供了技术方案20:如技术方案17所述的系统,所述控制处理器还配置成运行使所述控制处理器执行下列操作的程序指令:分类或者识别所述覆盖准则至少之一;以及生成用于所述覆盖准则的一个或多个转换规则。附图说明图1描绘按照实施例的自动化的测试用例增广系统;图2描绘按照实施例的自动化的设计模型测试用例增广的过程流程图;图3描绘按照实施例的基于模型覆盖间隙的测试模型创建的过程流程图;图4描绘按照实施例的图1的系统的用户界面;以及图5描绘按照实施例的设计模型和覆盖分析报告。具体实施方式按照实施例,系统和方法提供对基于模型的开发环境中的安全关键软件的开发的支持。模型测试覆盖间隙能够在针对设计模型运行基于高级要求的测试用例之后通过基于模型的开发环境的模型覆盖分析工具来识别。覆盖间隙指示尚未通过基于高级要求的测试用例来运用的测试准则。实施系统和方法能够自动增广测试用例以覆盖所述覆盖间隙。实施系统和方法将覆盖间隙信息转化成机器可读数学测试目标,使得覆盖间隙信息能够附连到用于自动化的测试用例增广的设计模型,其中(一个或多个)设计模型以基于模型的开发语言来编写。实施系统和方法采用测试生成器,其能够对具有所附连测试目标的(一个或多个)设计模型来执行模型校验、约束求解和/或可达性解析(resolution)技术,以自动识别和填充安全关键软件的(一个或多个)设计模型的测试覆盖间隙。另外,实施系统和方法还能够识别模型缺陷—例如无用代码、非预计功能、停用功能等。实施系统和方法能够实现覆盖间隙转换规则,其能够将覆盖间隙转换成测试目标。如果输入序列能够激活测试目标,则输入序列能够填充覆盖间隙。在测试生成器中分析测试目标连同设计模型,以生成测试用例。识别若干覆盖间隙模式,并且定义其转换规则。能够填充各种常规的基于模型的开发工具中开发的设计模型的模型测试覆盖间隙。安全关键软件(例如航空软件)被软件认证准则(例如do-178c)要求采用严格测试覆盖来测试(例如修改的条件/判定覆盖(mc/dc)),其要求各条件单独影响判定。人工检查模型/代码以识别将内部变量驱动到特定值的输入序列是困难并且费时的,特别是当航空软件大小比较大并且复杂度增长时。支持不同的覆盖准则(例如语句覆盖、判定覆盖、mc/dc、掩蔽mc/dc、状态覆盖、转变(transition)覆盖等),其中一个或多个转换规则被实现以适应不同准则从覆盖间隙信息到机器可读数学测试目标的转化。实施系统和方法能够识别准则,查找对象(target)设计/代码的位置,执行测试目标转化和附连,经过设计架构来传播测试目标,并且基于测试目标来生成测试用例。图1描绘按照实施例的设计模型的自动化的测试用例增广系统100。系统100包括控制处理器110,其运行计算机指令以控制系统及其组件的操作。控制处理器110能够位于计算机或服务器中,并且经由通信链路120来互连到各种组件。通信链路可以是内部总线、电子通信网络等。系统100能够基于安全关键软件的所接收设计模型130连同所接收模型覆盖间隙135来生成增广的测试用例以满足模型覆盖。设计模型能够以常规的基于模型的开发语言(例如simulink/stateflow、scade等)来编写。间隙转换器单元140构造成基于覆盖间隙转换规则158(其能够存储在数据存储150中)将模型覆盖间隙转换成测试目标152。测试目标定义和/或设置测试生成器单元160的目的。测试目标则附连到设计模型中的对应算子(operator),以创建测试模型156。测试生成器应用测试模型作为输入,从所述测试模型中,所述测试生成器开发完成测试目标的一组测试用例154。图2描绘按照实施例的自动化的设计模型测试用例增广的过程200。模型覆盖间隙能够从对基于模型的开发工具的模型覆盖间隙分析器单元180的调用来得到(步骤210)。基于设计模型130和模型覆盖间隙135来创建测试模型(步骤220)。对驱动输入以覆盖模型覆盖间隙的测试模型运行测试生成器(步骤230)。基于测试生成器执行的结果,确定模型覆盖间隙的潜在原因(步骤240)。图3描绘按照实施例的用于基于模型覆盖间隙(图2的步骤220)的测试模型创建的过程300。测试模型基于设计模型130和模型覆盖间隙135来创建。覆盖间隙分析器单元180识别设计模型中的覆盖间隙(步骤305)。覆盖间隙被分类,并且基于分类来转化为机器可读数学测试目标表达式(步骤310)。按照实现,转换能够使用准则转换表(其对每种类型的覆盖准则预先创建)来完成。表i是按照实施例的从覆盖间隙到测试目标表达式的转换的示例。表i准则转换表分类覆盖准则模式,并且定义每个准则模式的测试目标。覆盖准则转换能够支持不同覆盖准则,例如语句覆盖、判定覆盖、修改的条件/判定覆盖(mc/dc)、掩蔽mc/dc、状态覆盖、转变覆盖等。转化数学测试目标表达式然后转化为能够附连到设计模型一组测试目标算子(步骤315)。(一个或多个)测试目标算子附连到设计模型中的(一个或多个)对象算子。(一个或多个)对象算子基于设计模型内的所识别的覆盖间隙来定位(步骤320)。按照实现,为了完成定位,能够解析覆盖间隙信息,以得到覆盖间隙对象算子。覆盖间隙信息能够包括间隙发生在哪里以及不满足什么准则。此外,附连测试目标算子以连接与(一个或多个)对象算子中的信号对应的测试目标来创建测试模型(步骤325)。测试目标还一路传播到可以在模型分级结构中的更高等级的测试节点算子,使得测试目标在测试节点算子等级能够是可见的(步骤330)。测试生成器识别测试模型的测试目标,并且找到在测试节点算子等级输入序列,以激活测试目标,并且覆盖对应模型覆盖间隙。实施系统和过程能够基于测试生成器结果来确定覆盖间隙的潜在原因。能够对下列条件连同某种设计信息来进行确定:1)如果测试目标识别为可达(即,能够找到输入序列以激活测试目标),并且对应覆盖间隙的源没有追溯到高级要求或者所推导要求,则对应覆盖间隙通过不充分的高级或所推导要求来引起;2)如果测试目标是可达的,并且它上溯到高级要求,则对应覆盖因不充分的基于高级要求的测试而缺失;3)如果测试目标是可达的,并且它上溯到软件设计人员所指定的所推导要求,则对应覆盖因所推导要求而缺失;4)如果测试目标不可达(即,数学证明不能找到可能的输入序列以激活测试目标),则测试生成器能够通过包括作为对设计模型的输入的设计模型参数而再次运行。在这种情况下,测试生成器能够生成更新的设计模型参数,其包括闭合(close)与输入设计模型参数关联的覆盖间隙的变化。4a)如果测试目标仍然识别为不可达,则覆盖间隙是非预计功能或无用代码;4b)如果覆盖间隙识别为可达,则覆盖间隙是停用功能。能够生成设计模型参数值,其使覆盖间隙是可达的。图4描绘按照实施例的系统100的用户界面400。用户界面能够是具有多个窗格的交互式图形界面。用户能够通过点击“openmtcreport”按钮来选择包括模型覆盖间隙的报告。缺失项窗格410显示所选报告中的设计模型覆盖间隙的列表。用户能够选择覆盖间隙的子集以生成测试用例。测试用例窗格420显示作为系统100的结果的生成的测试用例,以覆盖窗格410中的所选覆盖间隙。如果对应的覆盖间隙是可达的,则显示生成的测试用例的目录。如果对应的覆盖间隙不可达,则显示“unreachable”。状态窗格430在其执行自动化的设计模型测试用例增广过程时显示来自系统100的状态报告。实施系统和方法从基于模型的开发工具来接收覆盖间隙分析器单元报告,并且将报告中的所识别的模型测试覆盖间隙转换成机器可读测试目标表达式。这些测试目标表达式则自动转换为测试目标算子,所述测试目标算子附连到设计模型本身中的适当位置,以创建测试模型。对测试模型应用测试生成器,以生成测试用例来覆盖所述覆盖间隙,并且识别设计缺陷。图5描绘按照实施例的设计模型和覆盖分析报告500的示例。包含在分析报告中的是设计模型的逻辑流程图。逻辑流程图由自动化的测试用例增广系统100来注释,以指示测试覆盖间隙位置510、520、530,在所述测试覆盖间隙位置没有对所指示逻辑流程测试真或假值。分析报告也作为测试用例增广系统操作的结果来注释,以指示没有测试逻辑流程的条件分支—例如“否则”框540指示为未测试。按照实施例,覆盖分析报告能够采取如表ii所示的表格形式:缺失覆盖算子准则1pwlinear::counter/$ifthenelse1真2rollcommandvalidity::rollcommandvalidity/$ifthenelse10假3rollcommandvalidity::rollcommandvalidity/$ifthenelse8真4rollcommandvalidity::rollcommandvalidity/ifblock1:else:else:else:激活表ii按照实施例,在掩蔽mc/dc中,当准则是从算子开始并且在经过算子序列的算子结束的路径时,能够遵循规则。例如,局部变量能够连接从一个路径的结束到另一个路径的开始的路径;以及输出变量能够通过使用文本表达式来连接从一个路径的结束到另一个路径的开始的路径。按照实施例,测试生成器160能够接收自陷条件(测试目标的否定),并且尝试找到自陷条件的反例。如果找到反例,则该反例是满足测试目标的测试用例。如果没有找到反例,则测试目标不可达,意味着没有测试用例能够覆盖对应的覆盖间隙。在这种情况下,覆盖准则能够转换为测试目标表达式,其转化为模型中附连的自陷条件块。按照一些实施例,非易失性存储器、计算机可读介质(例如寄存器存储器、处理器高速缓存、ram、rom、硬盘驱动器、闪速存储器、cdrom、磁媒体等)和/或存储器155中存储的计算机程序应用可包括代码或者可执行指令,其在运行时可指令和/或使控制器或处理器执行本文所论述的方法,例如用于如上所描述的基于模型的开发环境中的安全关键软件的开发的方法。计算机可读介质可以是非暂时计算机可读媒体,包括除了暂时的传播信号之外的所有形式和类型的存储器和计算机可读媒体。在一个实现中,非易失性存储器或计算机可读介质可以是外部存储器。虽然本文已经描述了特定硬件和方法,但是要注意,任何数量的其他配置可按照本发明的实施例来提供。因此,虽然已经示出、描述和指出有本发明的基本的新颖特征,但是将会理解,可由本领域的技术人员进行所示实施例的形式和细节方面及其操作方面的各种省略、置换和变更,而没有背离本发明的精神和范围。还全面预计和预期从一个实施例到另一个实施例的元件的置换。本发明仅针对所随附到其的权利要求书以及其中引述的等效物来限定。配件表:当前第1页12