用于软件模块测试的测试案例生成方法及装置的制作方法

文档序号:6385743阅读:210来源:国知局
专利名称:用于软件模块测试的测试案例生成方法及装置的制作方法
技术领域
本发明涉及计算机软件测试技术,更为具体而言,涉及一种用于软件模块测试的测试案例生成方法及装置。
背景技术
在软件开发的过程中,为保证开发质量,测试是必不可少的手段,而测试工作执行的主要客体就是测试案例,当前测试案例的分析方法分为白盒测试和黑盒测试两种。其中,白盒测试又称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,它是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,清楚盒子内部的东西以及里面是如何运作的;黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用,在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。通过以上描述可知,白盒测试的主体为技术开发人员,而黑盒测试的主体一般为应用人员,而这两种测试分析方法的客体都为测试案例。在实际情况下,两种分析方法设计出发点不同,但最终产生的案例互有交叉;而不管采用哪种测试分析方法,都会因为主体本身的限制而产生案例客体的遗漏。理论上,基于“输入决定输出”的原理,对一个软件模块而言,用其输入栏位的所有取值,包括错误值进行排列组合而达到全部覆盖是最完整的测试方法,排除了案例的遗漏问题,但这种方法会产生巨量的案例,而且其中绝大部分都是没有实际意义的无效案例或者等价案例。因此,用这种方式来进行测试,虽然能得到较高的质量,但其相对成本很高。

发明内容
本发明提供了 一种用于软件模块测试的测试案例生成方法及装置,在保证案例的完整性的同时,提高案例的有效性,从而在质量得到保证的同时,大大降低测试成本。一方面,本发明提供了一种用于软件模块测试的测试案例生成方法,其中,所述测试案例包括正例和反例,所述正例是指按照既定的正确值进行取值,得到预期的逻辑结果的测试案例,所述反例是指不按照既定的正确值进行取值,得到预期的错误结果的测试案例。其中,所述测试案例生成方法包括步骤根据软件模块的输入栏位的属性将所述输入栏位划分为不同层次的栏位;对不同层次的栏位进行分析取值;将所述取值填入可执行的测试案例表中以生成可执行的测试案例。另一方面,本发明提供了一种用于软件模块测试的测试案例生成装置,包括栏位分层模块,用于根据软件模块的输入栏位的属性将所述输入栏位划分为不同层次的栏位;栏位取值模块,用于对不同层次的栏位进行分析取值;
案例生成模块,用于将所述取值填入可执行的测试案例表中以生成可执行的测试案例。本发明通过将软件模块的输入栏位划分为不同层次,依据不同层次进行分析取值,在保证案例的完整性的同时,提高案例的有效性,从而在质量得到保证的同时,大大降低测试成本。


图1示出了本发明的用于软件模块测试的测试案例生成方法的实施例1;图2示出了本发明的用于软件模块测试的测试案例生成方法的实施例2;图3示出了本发明的用于软件模块测试的测试案例生成装置的一种实施方式。
具体实施例方式本发明的发明人在实现本发明过程中发现一个软件模块的输入栏位通常具有以下特性1、并不是所有的输入栏位都是同等重要的;2、同一输入栏位的取值可以是存在等价的;3、不同输入栏位的取值之间是有关联的。本文中术语“等价”是指同一输入栏位的不同取值不会对输出造成实质影响,则这些不同取值是等价的。例如,同样是整存整取的存款种类有好几个,如果这些存款种类仅仅是记账科目的不同,其 他没有差异的话,则可以选择其中一种即可。再例如,对于币别,如果在功能/模块没有特殊要求,则英镑和港币只需要选择一种即可。基于上述输入栏位的特性,根据输入栏位的重要程度可以将输入栏位分层,根据同一输入栏位的等价取值可以用等价法筛选,根据不同输入栏位之间的关联关系可以缩减及确定一些关联栏位的取值范围,从而在最大程度避免测试案例遗漏的同时,提高案例的质量和效率。为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的各种实施方式进行详细描述。实施例1参见图1,其图示了本发明的一种用于软件模块测试的测试案例生成方法的实施例I。根据本发明各种实施方式,所述测试案例包括正例和反例,所述正例是指按照既定的正确值进行取值,得到预期的逻辑结果的测试案例,所述反例是指不按照既定的正确值进行取值,得到预期的错误结果的测试案例。在实施例1中,所述用于软件模块测试的测试案例生成方法包括步骤S101,根据软件模块的输入栏位的属性将所述输入栏位划分为不同层次的栏位;步骤S102,对不同层次的栏位进行分析取值;步骤S103,将所述取值填入可执行的测试案例表中以生成可执行的测试案例。其中,步骤SlOl包括获取所述输入栏位的属性,根据获得的属性将所述输入栏位划分为关键栏位、主要栏位、辅助栏位和关联栏位中的任意一种或多种;其中,
所述关键栏位为所述软件模块根据既定需求要完成的目标;所述主要栏位为所述软件模块的为完成既定目标而围绕所述关键栏位必须进行输入操作的输入栏位;所述辅助栏位所述辅助栏位为不影响所述软件模块的输出结果的输入栏位,不影响/参与模块/功能的逻辑,比如备注或者一些仅用于记录功能/模块信息的栏位,如交易人地址/电话等等。所述关联栏位为不能独立取值并且其取值依赖于所述关键栏位、主要栏位、辅助栏位的输入栏位。每个层次的栏位都可能有关联栏位,并有一对一、一对多、多对一或多对多的关系,根据具体情况而定,比如银行系统支取方式由四位代码构成,分别代表“凭单/凭证/凭印/凭密,那么对应支取方式的关联栏位就会有存单存折印刷号/证件种类及号码/印鉴号码/密码,这四个栏位,它们的取值与否是与支取方式的取值对应的,例当支取方式为“1101”时,则正·例时存单存折印刷号/证件种类及号码/密码是必须对应取值的。以上通过将软件模块的输入栏位分为不同层次,依据不同层次进行分析取值,在保证案例的完整性的同时,提高案例的有效性,从而在质量得到保证的同时,大大降低测试成本。实施例2参见图2,其图示了本发明的一种用于软件模块测试的测试案例生成方法的实施例2。在实施例1中,所述用于软件模块测试的测试案例生成方法包括步骤S201,梳理软件模块的输入栏位,如表I,软件模块共有7个输入栏,简要表示为 F1-F7。表1:
权利要求
1.一种用于软件模块测试的测试案例生成方法,其特征在于,所述测试案例包括正例和反例,其中,所述正例是指按照既定的正确值进行取值,得到预期的逻辑结果的测试案例,所述反例是指不按照既定的正确值进行取值,得到预期的错误结果的测试案例;其中,所述测试案例生成方法包括以下步骤根据软件模块的输入栏位的属性将所述输入栏位划分为不同层次的栏位;对不同层次的栏位进行分析取值;将所述取值填入可执行的测试案例表中以生成可执行的测试案例。
2.如权利要求1所述的测试案例生成方法,其特征在于,所述根据软件模块的输入栏位的属性将所述输入栏位划分为不同层次的栏位的步骤包括获取所述输入栏位的属性,根据获得的属性将所述输入栏位划分为关键栏位、主要栏位、辅助栏位和关联栏位中的任意一种或多种;其中,所述关键栏位为所述软件模块根据既定需求要完成的目标;所述主要栏位为所述软件模块的为完成既定目标而围绕所述关键栏位必须进行输入操作的输入栏位;所述辅助栏位为不影响所述软件模块的输出结果的输入栏位;所述关联栏位为不能独立取值并且其取值依赖于所述关键栏位、主要栏位、辅助栏位的输入栏位。
3.如权利要求2所述的测试案例生成方法,其特征在于,所述对不同层次的栏位进行分析取值的步骤包括利用黑盒测试分析方法、白盒测试分析方法穷举所述关键栏位的所有可能取值;利用等价法对所穷举出的取值进行筛选;对经过所述筛选剩下的取值与其关联栏位进行排列组合,以产生由所述关键栏位主导的测试案例,并填入关键栏位测试案例分析表;根据所述关键栏位与所述关联栏位之间的关联关系,在所述关键栏位测试案例分析表中填入所述关键栏位的关联栏位的取值。
4.如权利要求3所述的测试案例生成方法,其特征在于,所述对不同层次的栏位进行分析取值的步骤还包括所述主要栏位基于由所述关键栏位主导的正例穷举所有可能取值,然后进行随机取值,以产生由所述主要栏位主导的测试案例,并填入主要栏位测试案例分析表;根据所述主要栏位与所述关联栏位之间的关联关系,在所述主要栏位测试案例分表中填入所述主要栏位的关联栏位的取值。
5.如权利要求4所述的测试案例生成方法,其特征在于,所述对不同层次的栏位进行分析取值的步骤进一步包括在基于所述关键栏位和主要栏位所产生的测试案例基础上,列举所述辅助栏位可能的取值,并随机填入辅助栏位测试案例分析表中;根据所述辅助栏位与所述关联栏位之间的关联关系,在所述辅助栏位测试案例分析表中填入所述辅助栏位的关联栏位的取值。
6.如权利要求2至5任意一项所述的测试案例生成方法,其特征在于,所述取值使用虚拟值,并且预设有所述虚拟值与测试案例的实际值的对应关系。
7.如权利要求6所述的测试案例生成方法,其特征在于,所述将所述取值填入可执行的测试案例表中的步骤包括基于所述预设的虚拟值与测试案例的实际值的对应关系,根据所述关键栏位测试案例分析表、主要栏位测试案例分析表和辅助栏位测试案例分析表中的虚拟值查询实际值,将所述实际值填入可执行的测试案例表中。
8.如权利要求3所述的测试案例生成方法,其特征在于,所述排列组合包括所述关键栏位每取一个值,其关联栏位的所有取值与该关键栏位的取值组合一遍。
9.如权利要求3所述的测试案例生成方法,其特征在于,所述对不同层次的栏位进行分析取值的步骤还包括在利用所述等价法对所穷举出的取值进行筛选时,对被排除的取值设计反例。
10.如权利要求3或4所述的测试案例生成方法,其特征在于,所述对不同层次的栏位进行分析取值的步骤还包括对所述关联栏位的其中一个栏位的取值设计反例。
11.如权利要求1至5任意一项所述的测试案例生成方法,其特征在于,所述测试案例分析表或测试案例表中的案例号由三部分构成,其中,第一部分为正反例标识部分,第二部分为栏位层次标识部分,第三部分为顺序号。
12.一种用于软件模块测试的测试案例生成装置,其特征在于,所述测试案例包括正例和反例,其中,所述正例是指按照既定的正确值进行取值,得到预期的逻辑结果的测试案例,所述反例是指不按照既定的正确值进行取值,得到预期的错误结果的测试案例;其中,所述测试案例生成装置包括栏位分层模块,用于根据软件模块的输入栏位的属性将所述输入栏位划分为不同层次的栏位;栏位取值模块,用于对不同层次的栏位进行分析取值;案例生成模块,用于将所述取值填入可执行的测试案例表中以生成可执行的测试案例。
13.如权利要求12所述的测试案例生成装置,其特征在于,所述软件模块的输入栏位被划分为关键栏位、主要栏位、辅助栏位和关联栏位中的任意一种或多种,其中,所述关键栏位为所述软件模块根据既定需求要完成的目标;所述主要栏位为所述软件模块的为完成既定目标而围绕所述关键栏位必须进行输入操作的输入栏位;所述辅助栏位为不影响所述软件模块的输出结果的输入栏位;所述关联栏位为不能独立取值并且其取值依赖于所述关键栏位、主要栏位、辅助栏位的输入栏位。
14.如权利要求13所述的测试案例生成装置,其特征在于,所述栏位取值模块包括关键栏位取值单元,用于执行下述操作利用黑盒测试分析方法、白盒测试分析方法穷举所述关键栏位的所有可能取值,并利用等价法对所穷举出的取值进行筛选,然后对经过所述筛选剩下的取值与其关联栏位进行排列组合,以产生由所述关键栏位主导的测试案例,并填入关键栏位测试案例分析表;主要栏位取值单元,用于执行下述操作基于由所述关键栏位主导的正例穷举所有可能取值,然后进行随机取值,以产生由所述主要栏位主导的测试案例,并填入主要栏位测试案例分析表;辅助栏位取值单元,用于执行下述操作在基于所述关键栏位和主要栏位所产生的测试案例的基础上,列举辅助栏位可能的取值,并随机填入辅助栏位测试案例分析表中;关联栏位取值单元,用于执行下述操作根据所述关键栏位与所述关联栏位之间的关联关系,在所述关键栏位测试案例分析表中填入所述关键栏位的关联栏位的取值;或者根据所述主要栏位与所述关联栏位之间的关联关系,在所述主要栏位测试案例分析表中填入所述主要栏位的关联栏位的取值;或者根据所述辅助栏位与所述关联栏位之间的关联关系,在所述辅助栏位测试案例分析表中填入所述辅助栏位的关联栏位的取值。
15.如权利要求14所述的测试案例生成装置,其特征在于,所述取值用虚拟值表示,并且预设有所述虚拟值与测试案例的实际值的对应关系。
16.如权利要求15所述的测试案例生成装置,其特征在于,所述案例生成模块基于所述预设的虚拟值与测试案例的实际值的对应关系,根据所述关键栏位测试案例分析表、主要栏位测试案例分析表和辅助栏位测试案例分析表中的虚拟值查询实际值,将所述实际值填入可执行的测试案例表中。
17.如权利要求14所述的测试案例生成装置,其特征在于,所述关键栏位取值单元进一步用于在利用所述等价法对所穷举出的取值进行筛选时对被排除的取值设计反例;所述关联栏位取值单元进一步用于对所述关联栏位的其中一个栏位取值设计反例。
全文摘要
本发明公开了一种用于软件模块测试的测试案例生成方法及装置,其中,所述测试案例生成方法包括以下步骤根据软件模块的输入栏位的属性将所述输入栏位划分为不同层次的栏位;对不同层次的栏位进行分析取值;将所述取值填入可执行的测试案例表中以生成可执行的测试案例。本发明通过将软件模块分为不同层次,依据不同层次进行分析取值,在保证案例的完整性的同时,提高案例的有效性,从而在质量得到保证的同时,大大降低测试成本。
文档编号G06F11/36GK103049382SQ20121058079
公开日2013年4月17日 申请日期2012年12月27日 优先权日2012年12月27日
发明者秦旭峰, 林志农, 戚桂凤, 黄萍, 田人龙, 宋杰, 杨毅 申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1