测试用例生成方法和装置的制造方法

文档序号:8339508阅读:407来源:国知局
测试用例生成方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机应用领域,尤其涉及一种测试用例生成方法和装置。
【背景技术】
[0002]随着计算机技术的发展,软件也成为人们日常工作不可或缺的资源。但随着软件开发技术的发展,软件系统规模的日益扩大,软件的复杂程度越来越高,由于软件故障造成的危害也逐渐得以显现。软件质量成为制约计算机发展的瓶颈之一。
[0003]面向对象程序设计作为一种具有结构良好和更规范的编程风格,极大地优化了数据使用的安全性,提高了代码的重用率,但另一方面也影响了软件测试的方法和内容,例如:封装性对测试的影响、类的封装机制给软件测试带来困难等。由于面向对象的软件系统在运行时由一组协调工作的对象组成,对象具有一定的状态。所以对面向对象的程序测试来说,对象的状态是必须考虑的因素,测试应涉及对象的初态、输入参数、输出参数、对象的终态。在工作过程中对象的状态可能被修改,产生新的状态。
[0004]面向对象软件测试的基本工作就是创建对象(包括初始化),向对象发送一系列消息然后检查结果对象的状态,看其是否处于正确的状态。但是对象的状态往往是隐蔽的,若类中未提供足够的存取函数来表明对象的实现方式和内部状态,则测试者必须增添这样的函数。软件测试是软件质量保证的重要环节之一,在软件开发中有着不可替代的重要地位。因此,软件测试的工作量很大。据统计,测试时间会占到总开发时间的40%,一些可靠性要求非常高的软件,测试时间甚至占到开发周期的60%。由于测试的许多操作和过程是重复性的,因此在整个软件过程中软件测试工作可以应用自动化方法实现。测试自动化是通过开发和使用一些测试工具自动测试软件系统,特别适合于测试中重复而繁琐的活动,它可以使某些测试任务比手工测试执行的效率高,并可以运行更多更频繁的测试。
[0005]对程序的新版本可以自动运行已有的测试,特别是在频繁的修改过程中,一系列回归测试的开销应是最小的。可以执行一些手工测试困难或手工无法实现的测试,例如对于系统的并发测试,用手工进行并发操作几乎是不可能的,但自动测试工具可以模拟大量并发输入。测试具有一致性和可重复性。对于自动重复的测试可以重复多次相同的测试,如不同的硬件配置、使用不同的操作系统或数据库等,从而获得测试的一致性,这在手工测试中是很难保证的。一旦一系列测试已经被自动化,则可以更快地重复执行,从而缩短了测试周期,使软件更快地推向市场。
[0006]近些年来,虽然软件测试自动化技术与方法有了很大的发展,但还远没有成熟,现有的测试用例自动生成技术还无法满足当前软件测试的实际需要,大量的软件测试工程师还沦陷在缺乏理论指导和实用测试工具的测试泥潭中。

【发明内容】

[0007]本发明提供了一种测试用例生成方法和装置,解决了测试用例自动生成技术无法满足当前软件测试的实际需要的问题。
[0008]一种测试用例生成方法,包括:
[0009]分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列,以所述唯一输入输出序列作为对应的非初始状态的预测消息序列;
[0010]将每一个所述非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例;
[0011 ] 将所述测试用例的UML状态图转换为EDPN图;
[0012]运行所述EDPN图,生成最终测试用例。
[0013]优选的,分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列具体为:
[0014]使用U1序列方法分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列。
[0015]优选的,将所述测试用例的UML状态图转换为EDPN图包括:
[0016]将所述UML状态图的团点转换为EDPN图的数据地点;
[0017]将所述UML状态图的状态转换为EDPN图的EDPN转移;
[0018]将所述UML状态图中与状态转移关联的输出转换为EDPN图的端口输入事件地占.
[0019]对照测试的类,设计所述EDPN图的样本场景标记。
[0020]优选的,运行所述EDPN图,生成最终测试用例包括:
[0021]当触发一个转移时,从该转移的每个输入地点分别删除一个标记,且在该转移的每个输出地点增加一个标记。
[0022]优选的,被触发的转移的所有输入地点包含一个以上的标记。
[0023]本发明还提供了一种测试用例生成装置,包括:
[0024]预测消息序列确定模块,用于分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列,以所述唯一输入输出序列作为对应的非初始状态的预测消息序列;
[0025]第一测试用例生成模块,用于将每一个所述非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例;
[0026]转换模块,用于将所述测试用例的UML状态图转换为EDPN图;
[0027]第二测试用例生成模块,用于运行所述EDPN图,生成最终测试用例。
[0028]优选的,所述转换模块包括:
[0029]第一转换单元,用于将所述UML状态图的团点转换为EDPN图的数据地点;
[0030]第二转换单元,用于将所述UML状态图的状态转换为EDPN图的EDPN转移;
[0031 ] 第三转换单元,用于将所述UML状态图中与状态转移关联的输出转换为EDPN图的端口输入事件地点;
[0032]第四转换单元,用于对照测试的类,设计所述EDPN图的样本场景标记。
[0033]本发明提供了一种测试用例生成方法和装置,分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列,以所述唯一输入输出序列作为对应的非初始状态的预测消息序列,将每一个所述非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例,将所述测试用例的UML状态图转换为EDPN图,运行所述EDPN图,生成最终测试用例。实现了测试用例的自动生成,解决了测试用例自动生成技术无法满足当前软件测试的实际需要的问题。
【附图说明】
[0034]图1为样本场景的标记示意图;
[0035]图2为本发明的实施例二提供的一种测试用例生成装置的结构示意图;
[0036]图3为图2中转换模块203的结构示意图。
【具体实施方式】
[0037]下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0038]本发明的实施例提供了一种测试用例生成方法和装置,其实现原理如下:
[0039]在运用EDPN模型生成测试用例的过程中,对EDPN做标记,EDPN(P, D,S,In,Out)的一个标记M,是一个P元组的序列M =〈ml, m2,…mp>,其中:p = k+n, k和η是端口事件集合P和数据地点集合D中的元素个数,P元组中的个体项表示事件或数据地点中的标记个数,个体项的排列约定为:数据地点放在开头,随后是输入地点和输出地点。一个EDPN可以有任意数量的标记,每个标记对应附图中EDPN(网络)图的一个执行。EDPN中当一个事件被允许发生、一个转移被触发时,不应该存在相同的输出地点(不同元素的输出地点不同),否则难以保证基于规约的预期结果,只要EDPN中一个转移的每个输入地点至少有一个标记,该转移才允许发生和被触发,EDPN的每一个标记都是确定的,使得EDPN在执行时存在转移允许发生和触发或者处于事件静止状态。
[0040]拟将事件驱动的EDPN模型的较好的耦合性以及与UML状态图类似的支持并发状态的特点运用到面向对象软件的类测试技术中,研究解决以上问题的新的面向对象的类测试模型及测试用例自动生成算法。根据这种算法,我们可以根据需要使用不同的编程语言来实现测试用例的自动化生成。基于EDPN的状态覆盖率是类测试充分性的标准之一,能提高测试人员对测试质量的信任度。利用U1法唯一输入输出序列(Unique Input OutputSequence, U1S)能唯一的识别一种状态,即对象处在该状态时接收了对应的WOS中的输入时,所产生的输出不同于该状态集中的任何其它状态在接收此输入时所产生的输出,从无限的测试用例中选出有限的能达到覆盖要求的测试用例。
[0041 ] 首先结合附图,对本发明的实施例一进行说明。
[0042]本发明实施例提供了一种测试用例生成方法。
[0043]首先,使用U1法为各种输入输出状态集合的状态集中的每一个不同于初始状态的状态(以下称为非初始状态)找到一个唯一输入输出序列作为预测消息序列,然后,为每一个非初始状态找到一条从初始状态到该状态的测试消息序列,将每一个非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例。
[0044]然后,将UML状态图转换成EDPN图,转换时需要将状态图的“团点”变成数据地点,用圆圈表示;状态转移变成EDPN转移,用小矩形表示;引起状态转移的事件成为端口输入事件地点,用三角形表示;与状态转移关联的输出变成端口输出事件地点,也用三角形表示。对照测试的类,列表描述EDPN中的元素,如基于事件驱动的转移、事件静止状态、端口输入输出的事件等设计样本场景标记。样本场景的标记如图1所示。然后描述样本场景标记,就可以生成一个测试用例。
[0045]最后,运行EDPN,自动生成测试用例。如附图1,运行EDPN必须遵循:只有当一个转移的所有输入地点中至少有一个标记(上表中用“I”表示),该转移才允许发生;当触发一个转移时,要从该转移的每个输入地点分别删除一个标记,且在其每个输出地点增加一个标记。执行时,dl被初始化(步骤m0),网络处于事件静止状态,如果事件tl发生(步骤ml),si允许发生,Si被触发,状态被转移到地点d31和d41,如果有输出端口事件地点,则产生相应的输出。此时,d31和d41均增加一个标记,同时dl的标记被删除。由于在UML状态图中,2是两个并发状态3和4,因而3.1和4.1同时被激活
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1