通过模型反演的功能测试生成的制作方法

文档序号:6354947阅读:657来源:国知局
专利名称:通过模型反演的功能测试生成的制作方法
技术领域
本发明总体涉及测试用例生成,并更具体地涉及利用模型反演技术的功能测试用例的生成。
背景技术
通常,系统开发过程包括需求开发阶段、设计和开发阶段以及验证阶段。需求可描述为所记载的具体的产品或服务应当如何运行的需求。更具体地,要求可被称为确认系统的必要功能、属性、性能、特性或品质的语句。需求说明形式的需求被用作系统开发过程的设计阶段的输入,从而设计对于具体系统来说必要的那些元件和功能。可使用多种语言表述需求说明。这些语言可以本身为图表或文字并可包括但不限于转变系统(例如,状态机)、事件序列图(例如,方案图或序列图)以及结构的英文语言。利用软件或硬件或者利用这两者来实施该系统,通常利用使用传感器实现的接口来感测环境 (包括使用者)输入以及使用致动器控制硬件。在复杂的系统中,特别是安全性为主要关注因素的那些系统中,需要系统的穷尽测试和验证来确保系统的行为满足系统的需求说明。测试和验证系统的普遍方法是形式验证。广义地,形式验证是利用一类状态空间探索方法来证明或反驳构成关于形式说明(也称为性质)的系统的基础的所要实现的算法的正确性的过程。公知的形式验证方法通常仅可应用于设计阶段的系统模型或者应用于系统的软件部分。尽管理论上可行,但整个系统的模型可能不能实现,或者最好的情况是数量极大使得现有的形式方法技术不能适于处理最终的大状态空间。因此,使用系统模拟的测试是相对于系统的需求说明验证系统的唯一方法。然而,由于测试用例(即,设计为产生期望输出的系统的测试输入)由测试者编写,所以测试者仅测试简单的需求说明。这是因为为一时的复杂说明编写测试用例易于发生错误。另外,相对于根据一时的复杂说明的所需输出检查模拟运行还耗费时间和易于发生错误。因此,需要提供一种自动产生可适用于任何规模的系统的测试用例的系统和方法。

发明内容
用于产生测试用例的系统和方法包括设置为产生模型反演的模型反演器;设置为将需求说明转变为至少一个输出方案的转变模块;以及模拟被反演的模型以产生满足需求的测试用例的模型模拟器。通过下面结合附图的描述和所附权利要求,本发明的附加特征将变得更明显。本发明还提供了如下方案
方案1. 一种用于产生测试用例的系统,所述系统包括
设置为产生模型的反演的模型反演器;
设置为将需求说明转变为至少一个输出方案的转变模块;以及设置为基于所述模型的反演和所述至少一个输出方案产生满足所述需求说明的测试用例的模型模拟器。方案2.如方案1所述的系统,其中,所述模型反演器设置为基于所述模型产生一组模型块。方案3.如方案2所述的系统,其中,所述模型反演器将每个模型块转变为反演模型块。方案4.如方案3所述的系统,其中,每个模型块包括函数,其中,每个反演模型块包括相应的反演函数。方案5.如方案2所述的系统,其中,所述模块反演器利用一组替换规则将每个模型块转变为反演模型块。方案6.如方案1所述的系统,其中,所述至少一个输出方案为输出波形。方案7.如方案1所述的系统,其中,所述模型反演器设置为在线产生所述模型的反演。方案8.如方案1所述的系统,其中,所述模型反演器设置为离线产生所述模型的反演。方案9. 一种产生测试用例的方法,所述方法包括 产生模型的反演;
将需求说明转变为至少一个输出方案;以及
通过利用所述至少一个输出方案模拟所述模型的反演来产生满足所述需求说明的测试用例。方案10.如方案9所述的方法,还包括基于所述模型产生一组模型块。方案11.如方案10所述的方法,还包括利用一组替换规则将每个模型块转变为反演模型块。方案12.如方案11所述的方法,其中,每个模型块包括函数,并且其中,每个反演模型块包括相应的反演函数。方案13.如方案9所述的方法,其中,所述至少一个输出方案为输出波形。方案14.如方案9所述的方法,其中,还包括在线产生所述模型的反演。方案15.如方案9所述的方法,其中,还包括离线产生所述模型的反演。方案16. —种包括有形地体现计算机可执行指令的计算机可读介质的系统,所述系统用于
产生模型的反演;
将需求说明转变为至少一个输出方案;以及
通过利用所述至少一个输出方案模拟所述模型的反演来产生满足所述需求说明的测试用例。方案17.如方案16所述的系统,还包括基于所述模型产生一组模型块。方案18.如方案17所述的系统,其中,还包括利用一组替换规则将每个模型块转变为反演模型块。方案19.如方案18所述的系统,其中,每个模块包括函数,并且其中,每个反演模型块包括相应的反演函数。
方案20.如方案16所述的系统,其中,所述至少一个输出方案为输出波形。


图1示出了根据一个实施例的示例测试用例生成系统;
图2是示出根据图1的测试用例生成系统的示例性模型反演算法的流程图;以及图3a和图北示出了与图2所示的反演算法相符的示例模型M的反演构造的非限制性实例。
具体实施例方式下面对本发明的实施例的描述是用于利用模型反演技术的功能测试用例生成的系统和方法。前述的实施例本身仅是示例性的,而绝不旨在限制本发明、本发明的应用或使用。所披露的实施例提供了用于利用模型反演技术的自动生成测试用例的系统和方法,该系统和方法可缩放且计算量小。在系统设计中,模型可表示阐释所设计的系统的设计功能的系统或程序。本文披露的测试用例生成系统包括测试用例生成器,测试用例生成器设置为基于模型和需求说明产生满足具体的覆盖衡量标准的测试用例。测试用例生成器包括模型反演模块和设置为将需求说明转变为输出方案的转变模块。来自反演模块的反演模型和来自转变模块的输出作为输入被发送到模型模拟器,模型模拟器的输出是满足覆盖衡量标准的测试用例。图1示出了具有测试用例生成器12的示例测试用例生成系统10,测试用例生成器12包括模型反演器14、转变模块16以及模型模拟器18 (例如但不限于Matlab )。在一个实施例中,模型反演器14被在线地实现并设置为接收模型或模型块M并作为响应产生模型的反演ΜΛ然而,由于模型的反演结构仅需要产生一次,所以可离线地执行转变。转变模块16设置为接收功能说明需求R并作为响应产生表示模型M期望输出的输出信号0。 在一个实施例中,输出信号0为波形,但本领域的技术人员可以理解的是,转变模块16可设置为产生不同格式的输出信号0。模型模拟器18设置为接收来自模型反演器14的模型反演M—1和来自转变模块16的输出信号0作为输入,输出信号0表示对于被输入到测试用例生成器12中的具体的模型或模型块M的期望输出方案。模型模拟器18模拟模型反演M—1 和输出信号0以产生表示满足一组预定标准(即,覆盖衡量标准)的模型M的输入的测试用例。换言之,对于任意的输出方案,测试用例生成器12找到在给定覆盖衡量标准C情况下使模型M得到满足的输入(即,测试用例)。在一个实施例中,以图表表示的覆盖衡量标准C 是具有输出信号的三角波,输出信号以某一数值V起始、该值的大小以恒定速率R随时间增大,达到阈值T、随后以相同的速率R减小。如图表所示,这种三角波表示需求(或覆盖衡量标准)。问题在于“系统能够输出具有变化速率R的三角形信号吗?”。随后,测试用例生成系统尝试产生测试输入从而通过在给定的三角波的情况下模拟反演模型来满足这种需求。 模拟运行的输出为所需的测试向量。图2是示出根据图1的测试用例生成器12的模型反演器14的示例模型反演算法 20的流程图。在步骤22中,模型M被输入到模型反演器14。在步骤M中,模型M被分离为一组模型块B,其中,每个模型块B都由算法20单独地处理。在步骤沈中,算法20判断是
5否已处理所有的模型块B。如果判断结果为是,则算法20在步骤观输出反演模型ΜΛ如果并未处理所有的模块B,则在步骤30中选择下一模型块B。接着,在步骤32中,算法20 判断模型块B是否可反演。如果判断结果为否,则在步骤34中舍弃模型块B。如果模型块 B可反演,则在步骤36中根据一组替换规则用模型块反演B—1替换模型块B,替换规则可依据应用发生改变。例如,在一种方法中,采用替换规则的算法可指令使用具有1/Κ值的增益块替换具有K值的增益块。类似地,可使用平方根块代替平方块并可分别使用反正弦、反余切以及反正切块代替正弦、余弦和正切函数块。本领域的技术人员还认识到,替换算法可还包括当标准的替换规则产生错误时提供替换选择的逻辑。例如,当平方根块接收到负值作为输入时,可能产生错误。图3a和图北示出了与图2所示的反演算法相符的示例模型M的反演构造的非限制性实例。图3a示出了被输入到模型反演器14中的模型M的示例表示。在该示例中,模型M包括分别表示积分函数、三角函数、增益放大器以及数学函数的模型块Bi、B2、B3以及 B4。如图北所示,模型反演器14依据算法20转变模块M以产生反演模型『,反演模型妒包括反演模型块ΒΓ142^83.1以及Β4Λ具体地,原始模型块中表示的函数的每一个分别转变为它们各自的反演函数。例如,模型块Bl的积分转变为它的反演函数——微分;模块 B2中的三角函数正弦转变为它的反演函数——反正弦;模块B3中的增益放大器转变为负增益;模块B4的平方变量函数转变为它的反演——平方根函数。联合参照图1、图3a以及图3b,可看到,在图3a中,模型M的输入为“输入I”,模型M的输出为“输出0”。利用上述的方法,模块M的“输入I”是未知的,但图3a中的“输出0”表示图1所示的已知的期望输出方案,即转变模块16的输出。当图北的反演模型M—1 以及“输出0”被输入到图1的模型模拟器18中时,结果为“输入I”,即在给定的覆盖衡量标准C的情况下使模型M得到满足的测试用例。可在一个或多个适合的计算装置上实施本文描述的系统,计算装置通常包括可为软件应用程序的应用程序,软件应用程序可被有形地实施为在计算装置中的计算机可读介质上的一组计算机可执行指令。计算装置可为例如个人计算机、处理器、手持计算装置等多种计算装置中的任一者。通常,每个计算装置包括可由上面列出的一个或多个装置执行的指令。计算机可执行的指令可由利用多种编程语言和/或技术(包括但不限于Java 、C、C++、Visual Basic, Java Script、Perl等的一者或多者的组合)创建的计算机程序编译或解释。通常, 处理器(例如,微处理器)例如从内存、计算机可读介质等接收指令并执行这些指令,从而执行一个或多个处理(包括本文描述的一个或多个处理)。可利用多种公知的计算机可读介质储存和传输这些指令和其它数据。计算机可读介质包括参与提供数据(例如,指令)的任何介质,这些介质可由诸如计算机的计算装置读取。这种介质可采用各种形式,包括但不限于,非易失性介质、易失性介质以及传输介质。非易失性介质包括例如光盘或磁盘以及其它的永久存储器。易失性介质包括动态随机存取存储器(DRAM),动态随机存取存储器通常包括主内存。计算机可读介质的普遍形式包括计算机可从其读取的任何介质。应该理解的是,上面的描述旨在是示例性的而不作为限制。本领域的技术人员在阅读上面的描述之后很容易预见到除所给实例以外的许多可替换的方法或应用。本发明的范围不应由上面的描述限定,而应该由所附权利要求以及与这些权利要求等同物的所有的范围限定。应该预见和预计到,本文所述的技术领域中产生的进一步发展以及所披露的系统和方法将被并入到这些进一步的实例中。总之,应该理解的是,本发明能够变型和修改并仅由下面的权利要求限定。具体给出了本发明实施例的展示和描述,但仅作为最佳模式的示例。本领域的技术人员应该理解的是,可在不偏离本发明的原理和范围的情况下利用本文描述的实施例的各种替换物实现权利要求,这些权利要求和它们的等效物范围内的方法和系统由此被覆盖。这种描述应理解为包括本文描述的要素的所有的新式结合和非显著结合,并且可在该描述或下面的描述中权利要求这些要素的任何新式结合和非显而易见的组合。而且,前面的实施例是示例性的,单个特征或要素对于可能在该描述或下面的描述中权利要求的所有可能的结合不是必须的。权利要求中使用的所有的术语旨在给出它们最宽泛的合理的解释以及本领域的技术人员所理解的它们的普遍含义,除非另外指出并非如此。具体地,诸如“一个”、“该”等的单数名词应该解释为列举一个或多个所述要素,除非明确指出并非如此。
权利要求
1.一种用于产生测试用例的系统,所述系统包括 设置为产生模型的反演的模型反演器;设置为将需求说明转变为至少一个输出方案的转变模块;以及设置为基于所述模型的反演和所述至少一个输出方案产生满足所述需求说明的测试用例的模型模拟器。
2.如权利要求1所述的系统,其中,所述模型反演器设置为基于所述模型产生一组模型块。
3.如权利要求2所述的系统,其中,所述模型反演器将每个模型块转变为反演模型块。
4.如权利要求3所述的系统,其中,每个模型块包括函数,其中,每个反演模型块包括相应的反演函数。
5.如权利要求2所述的系统,其中,所述模块反演器利用一组替换规则将每个模型块转变为反演模型块。
6.如权利要求1所述的系统,其中,所述至少一个输出方案为输出波形。
7.如权利要求1所述的系统,其中,所述模型反演器设置为在线产生所述模型的反演。
8.如权利要求1所述的系统,其中,所述模型反演器设置为离线产生所述模型的反演。
9.一种产生测试用例的方法,所述方法包括 产生模型的反演;将需求说明转变为至少一个输出方案;以及通过利用所述至少一个输出方案模拟所述模型的反演来产生满足所述需求说明的测试用例。
10.一种包括有形地体现计算机可执行指令的计算机可读介质的系统,所述系统用于产生模型的反演;将需求说明转变为至少一个输出方案;以及通过利用所述至少一个输出方案模拟所述模型的反演来产生满足所述需求说明的测试用例。
全文摘要
本发明涉及通过模型反演的功能测试生成。一种用于产生测试用例的系统,该系统包括设置为产生模型反演的模型反演器;设置为将需求说明转变为至少一个输出方案的转变模块;以及设置为基于模型的反演和至少一个输出方案产生满足需求说明的测试用例的模型模拟器。
文档编号G06F11/36GK102169457SQ20111004610
公开日2011年8月31日 申请日期2011年2月25日 优先权日2010年2月25日
发明者A.V.耶奥勒卡, R.塞图 申请人:通用汽车环球科技运作有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1