测试案例推荐方法、电子装置及可读存储介质与流程

文档序号:15229743发布日期:2018-08-21 19:15阅读:179来源:国知局

本发明涉及计算机技术领域,尤其涉及一种测试案例推荐方法、电子装置及可读存储介质。



背景技术:

现有技术中当软件系统中出现代码变更需要利用测试案例进行测试时,只能漫无目的地执行所有的测试案例进行测试,无法自动推荐出精准合适的测试案例来执行测试,导致测试效率低下。



技术实现要素:

本发明的目的在于提供一种测试案例推荐方法、电子装置及可读存储介质,旨在提高测试效率。

为实现上述目的,本发明提供一种电子装置,所述电子装置包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的测试案例推荐系统,所述测试案例推荐系统被所述处理器执行时实现如下步骤:

a、确定出待测试软件系统的变更代码,并根据预先确定的代码与用户故事编号之间的映射关系,确定出所述变更代码对应的用户故事编号;

b、根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例;

c、推荐确定出的测试案例为对所述待测试软件系统执行测试的测试案例。

优选地,所述测试案例推荐系统被所述处理器执行实现所述步骤a时,具体包括:

获取待测试软件系统对应的预设版本管理工具所记录的提交代码,并根据预先确定的代码与用户故事编号之间的映射关系,获取所述预设版本管理工具记录的所述待测试软件系统的每一版本提交代码对应的用户故事编号;

分析待测试的不同版本提交代码之间的所有变更代码;

确定出所有变更代码所对应的用户故事编号。

优选地,所述预设版本管理工具包括开放源代码的版本控制系统svn、cvs和分布式版本控制系统git。

优选地,所述处理器还用于执行所述测试案例推荐系统,以实现以下步骤:

若有测试案例发生变化,则根据预先确定的用户故事编号与测试案例之间的映射关系,确定出发生变化的测试案例所映射的用户故事编号,将确定出的用户故事编号作为历史用户故事编号;

确定出所述历史用户故事编号所映射的所有测试案例;

将确定出的所有测试案例作为推荐对所述待测试软件系统执行测试的测试案例。

此外,为实现上述目的,本发明还提供一种测试案例推荐方法,所述测试案例推荐方法包括:

确定出待测试软件系统的变更代码,并根据预先确定的代码与用户故事编号之间的映射关系,确定出所述变更代码对应的用户故事编号;

根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例;

推荐确定出的测试案例为对所述待测试软件系统执行测试的测试案例。

优选地,所述确定出待测试软件系统的变更代码,并根据预先确定的代码与用户故事编号之间的映射关系,确定出所述变更代码对应的用户故事编号的步骤包括:

获取待测试软件系统对应的预设版本管理工具所记录的提交代码,并根据预先确定的代码与用户故事编号之间的映射关系,获取所述预设版本管理工具记录的所述待测试软件系统的每一版本提交代码对应的用户故事编号;

分析待测试的不同版本提交代码之间的所有变更代码;

确定出所有变更代码所对应的用户故事编号。

优选地,所述预设版本管理工具包括开放源代码的版本控制系统svn、cvs和分布式版本控制系统git。

优选地,所述用户故事编号为所述待测试软件系统对应的预设向导程序中预先设定的用户故事所对应的编号,所述预设版本管理工具中同步有所述用户故事编号。

优选地,该方法还包括:

若有测试案例发生变化,则根据预先确定的用户故事编号与测试案例之间的映射关系,确定出发生变化的测试案例所映射的用户故事编号,将确定出的用户故事编号作为历史用户故事编号;

确定出所述历史用户故事编号所映射的所有测试案例;

将确定出的所有测试案例作为推荐对所述待测试软件系统执行测试的测试案例。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有测试案例推荐系统,所述测试案例推荐系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的测试案例推荐方法的步骤。

本发明提出的测试案例推荐方法、系统及可读存储介质,先确定出待测试软件系统的变更代码对应的用户故事编号,再根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例来进行推荐。由于能实现变更代码、用户故事和测试案例三者之间的关联关系分析,并根据变更代码、用户故事和测试案例三者之间的关联关系来进行测试案例的推荐,能针对变更代码进行精准的测试案例推荐,最大化利用测试执行资源,提高测试效率。

附图说明

图1为本发明测试案例推荐系统10较佳实施例的运行环境示意图;

图2为本发明测试案例推荐方法一实施例的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明提供一种测试案例推荐系统。请参阅图1,是本发明测试案例推荐系统10较佳实施例的运行环境示意图。

在本实施例中,所述的测试案例推荐系统10安装并运行于电子装置1中。该电子装置1可包括,但不仅限于,存储器11、处理器12及显示器13。图1仅示出了具有组件11-13的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器11为至少一种类型的可读计算机存储介质,所述存储器11在一些实施例中可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘或内存。所述存储器11在另一些实施例中也可以是所述电子装置1的外部存储设备,例如所述电子装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器11还可以既包括所述电子装置1的内部存储单元也包括外部存储设备。所述存储器11用于存储安装于所述电子装置1的应用软件及各类数据,例如所述测试案例推荐系统10的程序代码等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器11中存储的程序代码或处理数据,例如执行所述测试案例推荐系统10等。

所述显示器13在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器13用于显示在所述电子装置1中处理的信息以及用于显示可视化的用户界面,例如标记出待测试软件系统的变更代码、显示变更代码对应的用户故事编号以及最终推荐执行的测试案例等。所述电子装置1的部件11-13通过系统总线相互通信。

测试案例推荐系统10包括至少一个存储在所述存储器11中的计算机可读指令,该至少一个计算机可读指令可被所述处理器12执行,以实现本申请各实施例。

其中,上述测试案例推荐系统10被所述处理器12执行时实现如下步骤:

步骤s1,确定出待测试软件系统的变更代码,并根据预先确定的代码与用户故事编号之间的映射关系,确定出所述变更代码对应的用户故事编号。

本实施例中,在开发待测试软件系统之前,设计与所述待测试软件系统对应的向导程序(wizard),该向导程序(wizard)可以引导用户创建应用程序。例如,利用dialogwizard(对话框向导)帮助用户创建对话框,利用applicationwizard(应用程序向导)帮助用户创建基本样式的应用程序等。

本实施例中,可基于所述待测试软件系统的向导程序(wizard)构建若干用户故事,用户故事即从用户的角度来描述用户渴望得到的功能,例如注册、登录、输入密码、查询、交易等,并为构建的各个用户故事进行编号,例如用户故事“注册”编号为“1”、用户故事“登录”编号为“2”等。同时,在所述待测试软件系统的预设版本管理工具(例如开放源代码的版本控制系统svn、cvs或分布式版本控制系统git等)上同步所有用户故事编号,使得预设版本管理工具与所述待测试软件系统具有完全相同的用户故事编号。进一步地,在对各个用户故事进行编号后,还可针对不同用户故事预先设置好对应的测试用例即测试案例。例如,针对用户故事“注册”,可预先设置好对实现“注册”功能的代码的测试案例,即预先确定好用户故事编号与测试案例之间的映射关系。其中,与不同用户故事对应的测试案例既可以是有针对性自主编写的测试案例,也可以是调用已有的测试案例,如针对实现不同功能的代码所设计的语句覆盖测试案例、判定覆盖测试案例、条件覆盖测试案例、判定条件覆盖测试案例、条件组合覆盖测试案例、路径覆盖测试案例等等,在此不做限定。此外,由于对一个用户故事的测试设计多个方面,如逻辑覆盖测试、循环覆盖测试、基本路径测试等,且实现同一个功能即用户故事的代码可能有多种,因此,在预先确定好的用户故事编号与测试案例之间的映射关系中,一个用户故事编号可能映射对应一个测试案例,也可能对应多个测试案例。

当待测试软件系统的代码提交到预设版本管理工具svn时,根据预先确定的代码与用户故事编号之间的映射关系,svn提交记录会保存提交的代码所对应的用户故事编号。可预先根据可实现不同功能即用户故事的代码,设置代码与用户故事编号之间的映射关系,这样,svn对待测试软件系统提交的代码,可根据提交代码所实现的功能给出相应的用户故事编号,例如,若提交代码是实现“注册”功能,则给出相应的用户故事编号“1”。这样,所述待测试软件系统的每一版本提交代码提交至svn后,均可记录得到对应的一个或多个用户故事编号。

若要对所述待测试软件系统的不同版本提交代码之间的差异进行测试,则可分析svn上该两个版本间的所有代码变更记录,如可对两个版本的代码进行比对,两个版本间不同的代码部分作为变更代码,确定出变更代码所对应的用户故事编号,即可确定出两个版本间在代码变更时受影响的用户故事编号。

步骤s2,根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例。

步骤s3,推荐确定出的测试案例为对所述待测试软件系统执行测试的测试案例。

在根据变更代码确定出受影响的用户故事编号之后,即可根据预先确定的用户故事编号与测试案例之间的映射关系确定出受影响的用户故事编号所映射的测试案例。例如,若确定出受影响的用户故事编号为“1”,则可找出预先确定好的与用户故事编号“1”即“注册”相对应的测试案例,并推荐该测试案例来执行对所述待测试软件系统版本代码变更时的测试。

与现有技术相比,本实施例中先确定出待测试软件系统的变更代码对应的用户故事编号,再根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例来进行推荐。由于能实现变更代码、用户故事和测试案例三者之间的关联关系分析,并根据变更代码、用户故事和测试案例三者之间的关联关系来进行测试案例的推荐,相比现有技术中只有针对三者单独的管理产品或工具,本实施例能针对变更代码进行精准的测试案例推荐,避免漫无目的地执行所有的测试案例进行测试,能最大化利用测试执行资源,提高测试效率。

在一可选的实施例中,在上述实施例的基础上,所述测试案例推荐系统10被所述处理器12执行时,还实现以下步骤:

若有测试案例发生变化,则根据预先确定的用户故事编号与测试案例之间的映射关系,确定出发生变化的测试案例所映射的用户故事编号,将确定出的用户故事编号作为历史用户故事编号;

确定出所述历史用户故事编号所映射的所有测试案例;

将确定出的所有测试案例作为推荐对所述待测试软件系统执行测试的测试案例。

本实施例中,当系统使用的测试案例发生变化时,还可追溯到相关的历史用户故事。例如当一个用户故事编号映射对应多个测试案例时,若其中一个测试案例发生变化,则可根据预先确定的用户故事编号与测试案例之间的映射关系,找到该发生变化的测试案例所映射的用户故事编号,并将确定出的用户故事编号作为历史用户故事编号。分析出与该历史用户故事编号相关联的所有测试案例,并推荐相关联的所有测试案例对所述待测试软件系统执行测试。这样,在一个测试案例发生变化时,可追溯确定出受影响的用户故事及所有相关联的测试案例,能推荐更加精准全面的测试案例来执行测试,提高测试的准确性。

如图2所示,图2为本发明测试案例推荐方法一实施例的流程示意图,该测试案例推荐方法包括以下步骤:

步骤s10,确定出待测试软件系统的变更代码,并根据预先确定的代码与用户故事编号之间的映射关系,确定出所述变更代码对应的用户故事编号。

本实施例中,在开发待测试软件系统之前,设计与所述待测试软件系统对应的向导程序(wizard),该向导程序(wizard)可以引导用户创建应用程序。例如,利用dialogwizard(对话框向导)帮助用户创建对话框,利用applicationwizard(应用程序向导)帮助用户创建基本样式的应用程序等。

本实施例中,可基于所述待测试软件系统的向导程序(wizard)构建若干用户故事,用户故事即从用户的角度来描述用户渴望得到的功能,例如注册、登录、输入密码、查询、交易等,并为构建的各个用户故事进行编号,例如用户故事“注册”编号为“1”、用户故事“登录”编号为“2”等。同时,在所述待测试软件系统的预设版本管理工具(例如开放源代码的版本控制系统svn、cvs或分布式版本控制系统git等)上同步所有用户故事编号,使得预设版本管理工具与所述待测试软件系统具有完全相同的用户故事编号。进一步地,在对各个用户故事进行编号后,还可针对不同用户故事预先设置好对应的测试用例即测试案例。例如,针对用户故事“注册”,可预先设置好对实现“注册”功能的代码的测试案例,即预先确定好用户故事编号与测试案例之间的映射关系。其中,与不同用户故事对应的测试案例既可以是有针对性自主编写的测试用例,也可以是调用已有的测试案例,如针对实现不同功能的代码所设计的语句覆盖测试案例、判定覆盖测试案例、条件覆盖测试案例、判定条件覆盖测试案例、条件组合覆盖测试案例、路径覆盖测试案例等等,在此不做限定。此外,由于对一个用户故事的测试设计多个方面,如逻辑覆盖测试、循环覆盖测试、基本路径测试等,且实现同一个功能即用户故事的代码可能有多种,因此,在预先确定好的用户故事编号与测试案例之间的映射关系中,一个用户故事编号可能映射对应一个测试案例,也可能对应多个测试案例。

当待测试软件系统的代码提交到预设版本管理工具svn时,根据预先确定的代码与用户故事编号之间的映射关系,svn提交记录会保存提交的代码所对应的用户故事编号。可预先根据可实现不同功能即用户故事的代码,设置代码与用户故事编号之间的映射关系,这样,svn对待测试软件系统提交的代码,可根据提交代码所实现的功能给出相应的用户故事编号,例如,若提交代码是实现“注册”功能,则给出相应的用户故事编号“1”。这样,所述待测试软件系统的每一版本提交代码提交至svn后,均可记录得到对应的一个或多个用户故事编号。

若要对所述待测试软件系统的不同版本提交代码之间的差异进行测试,则可分析svn上该两个版本间的所有代码变更记录,如可对两个版本的代码进行比对,两个版本间不同的代码部分作为变更代码,确定出变更代码所对应的用户故事编号,即可确定出两个版本间在代码变更时受影响的用户故事编号。

步骤s20,根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例。

步骤s30,推荐确定出的测试案例为对所述待测试软件系统执行测试的测试案例。

在根据变更代码确定出受影响的用户故事编号之后,即可根据预先确定的用户故事编号与测试案例之间的映射关系确定出受影响的用户故事编号所映射的测试案例。例如,若确定出受影响的用户故事编号为“1”,则可找出预先确定好的与用户故事编号“1”即“注册”相对应的测试案例,并推荐该测试案例来执行对所述待测试软件系统版本代码变更时的测试。

与现有技术相比,本实施例中先确定出待测试软件系统的变更代码对应的用户故事编号,再根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例来进行推荐。由于能实现变更代码、用户故事和测试案例三者之间的关联关系分析,并根据变更代码、用户故事和测试案例三者之间的关联关系来进行测试案例的推荐,相比现有技术中只有针对三者单独的管理产品或工具,本实施例能针对变更代码进行精准的测试案例推荐,避免漫无目的地执行所有的测试案例进行测试,能最大化利用测试执行资源,提高测试效率。

在一可选的实施例中,在上述实施例的基础上,该方法还包括以下步骤:

若有测试案例发生变化,则根据预先确定的用户故事编号与测试案例之间的映射关系,确定出发生变化的测试案例所映射的用户故事编号,将确定出的用户故事编号作为历史用户故事编号;

确定出所述历史用户故事编号所映射的所有测试案例;

将确定出的所有测试案例作为推荐对所述待测试软件系统执行测试的测试案例。

本实施例中,当系统使用的测试案例发生变化时,还可追溯到相关的历史用户故事。例如当一个用户故事编号映射对应多个测试案例时,若其中一个测试案例发生变化,则可根据预先确定的用户故事编号与测试案例之间的映射关系,找到该发生变化的测试案例所映射的用户故事编号,并将确定出的用户故事编号作为历史用户故事编号。分析出与该历史用户故事编号相关联的所有测试案例,并推荐相关联的所有测试案例对所述待测试软件系统执行测试。这样,在一个测试案例发生变化时,可追溯确定出受影响的用户故事及所有相关联的测试案例,能推荐更加精准全面的测试案例来执行测试,提高测试的准确性。

此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有测试案例推荐系统,所述测试案例推荐系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述实施例中的测试案例推荐方法的步骤:确定出待测试软件系统的变更代码,并根据预先确定的代码与用户故事编号之间的映射关系,确定出所述变更代码对应的用户故事编号;根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例;推荐确定出的测试案例为对所述待测试软件系统执行测试的测试案例。本实施例中先确定出待测试软件系统的变更代码对应的用户故事编号,再根据预先确定的用户故事编号与测试案例之间的映射关系,确定出所述变更代码对应的用户故事编号所映射的测试案例来进行推荐。由于能实现变更代码、用户故事和测试案例三者之间的关联关系分析,并根据变更代码、用户故事和测试案例三者之间的关联关系来进行测试案例的推荐,相比现有技术中只有针对三者单独的管理产品或工具,本实施例能针对变更代码进行精准的测试案例推荐,避免漫无目的地执行所有的测试案例进行测试,能最大化利用测试执行资源,提高测试效率。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

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