一种软件测试用例的生成方法及装置与流程

文档序号:15216116发布日期:2018-08-21 16:52阅读:279来源:国知局

本发明涉及计算机技术领域,尤其是一种软件测试用例的生成方法及装置。



背景技术:

在软件测试中,执行每一个功能测试用例时往往是没有问题的,但在不同业务流和使用场景下执行这些用例则会触发缺陷。目前软件测试方法一般有两种,第一种是根据功能需求点编写测试用例然后执行测试,第二种是根据业务流和使用场景来编写测试用例然后执行测试;两相对比,第一种方案的每个功能点覆盖较全面,但是没有充分考虑不同功能之间的联系,第二种方案则考虑了不同功能之间的联系但是功能点覆盖不全面。



技术实现要素:

为了解决上述问题,本发明的目的是提供一种软件测试用例的生成方法及装置,在测试时,既能全面覆盖功能点,又考虑到不同的使用场景和业务流,在保证软件测试质量的同时,有利于提高测试效率。

为了弥补现有技术的不足,本发明采用的技术方案是:

一种软件测试用例的生成方法,包括以下步骤:

根据软件需求说明书生成每个功能需求点对应的测试用例,并将这些测试用例放入基础用例库中;

根据基础用例库中的测试用例生成测试用例数据;

根据使用场景和业务流分别获取每个功能需求点被触发的组合条件;

删除所述组合条件中重复的组合,根据余下的组合条件对测试用例数据进行组合调用,获得全部的组合测试用例;

将组合测试用例中可重复使用的测试用例提取出来,并作为共享用例放入基础用例库中。

优选地,根据基础用例库中的测试用例生成测试用例数据,包括:根据基础用例库中的测试用例,利用等价类划分法和边界值分析法生成测试用例数据。

进一步,根据使用场景和业务流分别获取每个功能需求点被触发的组合条件,从而获得a个对应的组合,包括:针对于使用场景,根据功能执行顺序获取b个对应的组合;针对于业务流,根据功能之间的联系获取c个对应的组合;其中,a≥b+c。

进一步,b个对应的组合包括:b1个出现概率为1的组合,b2个出现概率在0到1之间的组合,b3个出现概率为0的组合;其中,b=b1+b2+b3。

一种软件测试用例的生成装置,包括:

测试用例生成模块,用于根据软件需求说明书生成每个功能需求点对应的测试用例,并将这些测试用例放入基础用例库中;

测试用例数据生成模块,用于根据基础用例库中的测试用例生成测试用例数据;

组合条件获取模块,用于根据使用场景和业务流分别获取每个功能需求点被触发的组合条件;

组合调用模块,用于删除所述组合条件中重复的组合,根据余下的组合条件对测试用例数据进行组合调用,获得全部的组合测试用例;

共享用例提取模块,用于将组合测试用例中可重复使用的测试用例提取出来,并作为共享用例放入基础用例库中。

优选地,测试用例数据生成模块利用等价类划分法和边界值分析法生成测试用例数据。

进一步,组合条件获取模块,包括使用场景组合条件获取模块和业务流组合条件获取模块;

使用场景组合条件获取模块,用于根据功能执行顺序获取对应的组合;

业务流组合条件获取模块,用于根据功能之间的联系获取对应的组合。

其中,组合条件获取模块所获取的组合数不小于使用场景组合条件获取模块和业务流组合条件获取模块所获取的组合数之和。

进一步,使用场景组合条件获取模块包括第一模块、第二模块和第三模块;

第一模块,用于获取出现概率为1的组合;

第二模块,用于获取出现概率在0到1之间的组合;

第三模块,用于获取出现概率为0的组合。

其中,第一模块、第二模块和第三模块获取的组合数之和等于使用场景组合条件获取模块所获取的组合数。

本发明的有益效果是:本发明的方法将每个需求点的功能测试和整体场景业务流程融合在一起,既保证了每个需求点的功能,同时在不同场景和业务流下保证各功能之间顺畅运行,不会发生冲突;并且在测试中,本发明可将重复用例提取出来,并作为共享用例置入基础用例库中,能够不断丰富基础用例库的内容,因此组合可更容易地调用基础用例库,有利于准确快速地执行测试用例;因此,本发明生成测试用例的方法快速简单,在执行测试时,既能全面覆盖功能点,又考虑到不同的使用场景和业务流,在保证软件测试质量的同时,有利于提高测试效率。

附图说明

下面结合附图给出本发明较佳实施例,以详细说明本发明的实施方案。

图1是本发明的生成方法的步骤流程图;

图2是本发明的生成方法中获取每个功能需求点被触发的组合条件的步骤流程图;

图3是本发明的生成装置的结构框图。

具体实施方式

实施例一

参照图1,一种软件测试用例的生成方法,包括以下步骤:

根据软件需求说明书生成每个功能需求点对应的测试用例,并将这些测试用例放入基础用例库中;

根据基础用例库中的测试用例生成测试用例数据;

根据使用场景和业务流分别获取每个功能需求点被触发的组合条件;

删除所述组合条件中重复的组合,根据余下的组合条件对测试用例数据进行组合调用,获得全部的组合测试用例;

将组合测试用例中可重复使用的测试用例提取出来,并作为共享用例放入基础用例库中。

具体地,在本实施例中,可根据基础用例库中测试用例的功能需求来直接执行对应的测试用例,也可按照使用场景和/或业务流来执行对应情况下的测试用例,即按照本方法生成软件测试用例后,可任意选择执行相应情况下的用例,单独执行或同时执行均不做限定;每个功能需求点为不可再细分的最小单位,即是执行测试用例的最基础单位;由于在不同场景和业务流的对应关系下可能会出现相同的组合条件,即两者基于不同方面给出组合条件,但归总到一起则有些组合可能会重合,所以需要将这些重复的组合删去。

本实施例的方法将每个需求点的功能测试和整体业务流程融合在一起,既保证了每个需求点的功能,同时在不同场景和业务流下保证各功能之间顺畅运行,不会发生冲突;并且在测试中,本发明可将重复用例提取出来,并作为共享用例置入基础用例库中,能够不断丰富基础用例库的内容,因此组合可更容易地调用基础用例库,有利于准确快速地执行测试用例;因此,本实施例生成测试用例的方法快速简单,在执行测试时,既能全面覆盖功能点,又考虑到不同的使用场景和业务流,在保证软件测试质量的同时,有利于提高测试效率。

其中,优选地,根据基础用例库中的测试用例生成测试用例数据,包括:根据基础用例库中的测试用例,利用等价类划分法和边界值分析法生成测试用例数据。

具体地,等价类划分法和边界值分析法是本领域的常用测试方法,但并不限定,也可用其它的黑盒测试方法。

等价类划分法将程序所有可能的有效或无效输入数据划分成若干个等价类,然后从每个部分中选取具有代表性的数据作为测试用例并进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证了测试用例具有完整性和代表性;利用这一方法设计测试用例可以不考虑程序的内部结构,而是以需求说明书为依据,选择适当典型子集,认真分析和推敲需求说明书的各项需求,尤其是功能需求。

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,通常边界值分析法是作为对等价类划分法的补充,在这种情况下,其测试用例来自于等价类的边界。

其中,参照图2,根据使用场景和业务流分别获取每个功能需求点被触发的组合条件,从而获得a个对应的组合,包括:针对于使用场景,根据功能执行顺序获取b个对应的组合;针对于业务流,根据功能之间的联系获取c个对应的组合;其中,a≥b+c。

其中,参照图2,b个对应的组合包括:b1个出现概率为1的组合,b2个出现概率在0到1之间的组合,b3个出现概率为0的组合;其中,b=b1+b2+b3。

具体地,a、b、c、b1、b2和b3并非是一个限定值,根据不同场景和业务流,其可能会发生变化,但在一般情况下b3为0;

统计不同概率下的组合有利于了解到何种场景下的测试执行得最多,配合功能相互影响的组合,即可方便地了解到场景和业务流下的所有组合;这样,将每个需求的功能测试和整体业务流程融合在一起,在不同场景和流程下保证各功能之间顺畅运行,不会发生冲突。

实施例二

参照图3,一种软件测试用例的生成装置,包括:

测试用例生成模块,用于根据软件需求说明书生成每个功能需求点对应的测试用例,并将这些测试用例放入基础用例库中;

测试用例数据生成模块,用于根据基础用例库中的测试用例生成测试用例数据;

组合条件获取模块,用于根据使用场景和业务流分别获取每个功能需求点被触发的组合条件;

组合调用模块,用于删除所述组合条件中重复的组合,根据余下的组合条件对测试用例数据进行组合调用,获得全部的组合测试用例;

共享用例提取模块,用于将组合测试用例中可重复使用的测试用例提取出来,并作为共享用例放入基础用例库中。

优选地,测试用例数据生成模块利用等价类划分法和边界值分析法生成测试用例数据。

其中,组合条件获取模块,包括使用场景组合条件获取模块和业务流组合条件获取模块;

使用场景组合条件获取模块,用于根据功能执行顺序获取对应的组合;

业务流组合条件获取模块,用于根据功能之间的联系获取对应的组合。

其中,组合条件获取模块所获取的组合数不小于使用场景组合条件获取模块和业务流组合条件获取模块所获取的组合数之和。

其中,使用场景组合条件获取模块包括第一模块、第二模块和第三模块;

第一模块,用于获取出现概率为1的组合;

第二模块,用于获取出现概率在0到1之间的组合;

第三模块,用于获取出现概率为0的组合。

其中,第一模块、第二模块和第三模块获取的组合数之和等于使用场景组合条件获取模块所获取的组合数。

以上内容对本发明的较佳实施例和基本原理作了详细论述,但本发明并不局限于上述实施方式,熟悉本领域的技术人员应该了解在不违背本发明精神的前提下还会有各种等同变形和替换,这些等同变形和替换都落入要求保护的本发明范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1