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

文档序号:8339508阅读:来源:国知局
。这样继续执行,最后再回到初始状态dl
[0046]下面参照附图,以自动咖啡出售机的工作过程为例,对UML状态图到EDPN图的转换、测试用例自动算法的具体实现进行说明。
[0047]基于EDPN模型的类测试模型,设计了从UML图到EDPN图的转换,设计了相应的算法及测试用例自动算法用伪代码描述,提出了基于EDPN有标记的唯一输入输出测试用例的生成方法。
[0048]面向对象测试用例自动化生成设计包括:EDPN模型的类测试模型,从UML图到EDPN图的转换,相应的算法及测试用例自动算法用伪代码描述,其中基于EDPN的状态覆盖率是类测试充分性的标准之一,应用EDPN对类进行状态测试,就必须将UML状态图转换成EDPN图,对照测试的类,列表描述EDPN中的元素,如基于事件驱动的转移、事件静止状态、端口输入输出的事件根据相应的算法及测试用例自动算法思想,完成自动化测试用例的生成。
[0049]测试用例自动算法用伪代码描述如下:
[0050]Generat1n_Testing_Case(DataSite curDataSite){
[0051]//转移集合S’初始化为空集,存放被触发过的转移序列
[0052]if S’ = S then all s e S are triggered and retu rn ;
[0053]Η数据地点集合D中每个子集di的满足ti和di输入时循环
[0054]for each di e D {
[0055]//ti与di相关的端口输入事件
[0056]if (di = curDataSite)then
[0057]if (ti G P is not marked) then
[0058]add a mark to ti ;
[0059]S, = S, U {si};
[0060]Η与di相关的转移Si被触发
[0061]TC = TC U {(di, ti, si)};
[0062]//TC在函数外围初始化为空
[0063]make di’ as an output destinat1n DataSite of si ;
[0064]delete the marks of di and ti ;
[0065]}
[0066]for each destinat1n DataSite di,
[0067]Generat1n_Testing_Case(di,);
[0068]}
[0069]P是端口事件的集合,可以理解为发送的消息调用和行为的输入输出;D是数据地点的集合,可以理解为EFSM模型中的状态;S是转移的集合,可以解释为行为;In是(P U D) XS的有序对偶集合,Out是SX (P U D)的有序对偶集合,In和Out定义的S中的转移输入输出到端口事件地点P和数据地点D。S中的若干转移构成转移序列,在测试过程中,总能够通过转移的输入和输出,构造输入和输出测试序列为每个数据地点设计一个输入元素di e D,di (OdO为初始标记),作为一个唯一输入输出MU1Si的消息预测序列,执行时,dl被初始化,如果事件tl发生,Si允许发生,Si被触发,状态被转移到地点di对应地点,如果有输出端口事件地点,则产生相应的输出。
[0070]下面结合附图,对本发明的实施例二进行说明。
[0071]本发明实施例提供了一种测试用例生成装置,该装置的结构如图2所示,包括:
[0072]预测消息序列确定模块201,用于分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列,以所述唯一输入输出序列作为对应的非初始状态的预测消息序列;
[0073]第一测试用例生成模块202,用于将每一个所述非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例;
[0074]转换模块203,用于将所述测试用例的UML状态图转换为EDPN图;
[0075]第二测试用例生成模块204,用于运行所述EDPN图,生成最终测试用例。
[0076]优选的,所述转换模块203的结构如图3所示,包括:
[0077]第一转换单元2031,用于将所述UML状态图的团点转换为EDPN图的数据地点;
[0078]第二转换单元2032,用于将所述UML状态图的状态转换为EDPN图的EDPN转移;
[0079]第三转换单元2033,用于将所述UML状态图中与状态转移关联的输出转换为EDPN图的端口输入事件地点;
[0080]第四转换单元2034,用于对照测试的类,设计所述EDPN图的样本场景标记。
[0081]本发明的实施例提供的测试用例生成装置,能够与本发明的实施例所提供的测试用例生成方法相结合,分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列,以所述唯一输入输出序列作为对应的非初始状态的预测消息序列,将每一个所述非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例,将所述测试用例的UML状态图转换为EDPN图,运行所述EDPN图,生成最终测试用例。实现了测试用例的自动生成,解决了测试用例自动生成技术无法满足当前软件测试的实际需要的问题。
[0082]本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
[0083]可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0084]上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
[0085]上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
[0086]任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
【主权项】
1.一种测试用例生成方法,其特征在于,包括: 分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列,以所述唯一输入输出序列作为对应的非初始状态的预测消息序列; 将每一个所述非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例; 将所述测试用例的UML状态图转换为EDPN图; 运行所述EDPN图,生成最终测试用例。
2.根据权利要求1所述的测试用例生成方法,其特征在于,分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列具体为: 使用U1序列方法分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列。
3.根据权利要求1所述的测试用例生成方法,其特征在于,将所述测试用例的UML状态图转换为EDPN图包括: 将所述UML状态图的团点转换为EDPN图的数据地点; 将所述UML状态图的状态转换为EDPN图的EDPN转移; 将所述UML状态图中与状态转移关联的输出转换为EDPN图的端口输入事件地点; 对照测试的类,设计所述EDPN图的样本场景标记。
4.根据权利要求1所述的测试用例生成方法,其特征在于,运行所述EDPN图,生成最终测试用例包括: 当触发一个转移时,从该转移的每个输入地点分别删除一个标记,且在该转移的每个输出地点增加一个标记。
5.根据权利要求4所述的测试用例生成方法,其特征在于,被触发的转移的所有输入地点包含一个以上的标记。
6.一种测试用例生成装置,其特征在于,包括: 预测消息序列确定模块,用于分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列,以所述唯一输入输出序列作为对应的非初始状态的预测消息序列; 第一测试用例生成模块,用于将每一个所述非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例; 转换模块,用于将所述测试用例的UML状态图转换为EDPN图; 第二测试用例生成模块,用于运行所述EDPN图,生成最终测试用例。
7.根据权利要求6所述的测试用例生成装置,其特征在于,所述转换模块包括: 第一转换单元,用于将所述UML状态图的团点转换为EDPN图的数据地点; 第二转换单元,用于将所述UML状态图的状态转换为EDPN图的EDPN转移; 第三转换单元,用于将所述UML状态图中与状态转移关联的输出转换为EDPN图的端口输入事件地点; 第四转换单元,用于对照测试的类,设计所述EDPN图的样本场景标记。
【专利摘要】本发明提供了一种测试用例生成方法和装置。涉及计算机应用领域;解决了测试用例自动生成技术无法满足当前软件测试的实际需要的问题。该方法包括:分别确定状态集中各个不同于初始状态的非初始状态的唯一输入输出序列,以所述唯一输入输出序列作为对应的非初始状态的预测消息序列;将每一个所述非初始状态的预测消息序列置后,测试消息序列置前,组成的新的序列作为测试用例;将所述测试用例的UML状态图转换为EDPN图;运行所述EDPN图,生成最终测试用例。本发明提供的技术方案适用于面向对象软件测试,实现了测试用例的自动生成。
【IPC分类】G06F11-36
【公开号】CN104657261
【申请号】CN201510012704
【发明人】黄敏
【申请人】浪潮(北京)电子信息产业有限公司
【公开日】2015年5月27日
【申请日】2015年1月9日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1