一种测试用例筛选方法及装置制造方法及图纸

技术编号:9667802 阅读:216 留言:0更新日期:2014-02-14 06:07
本发明专利技术适用于软件测试技术领域,提供了一种测试用例筛选方法及装置,包括:分别获取每个代码行关联的测试用例,所述测试用例覆盖与其关联的所述代码行;当有所述代码行发生变更时,提取所述代码行关联的所述测试用例。在本发明专利技术中,通过获取每个代码行与测试用例之间的关联关系,从而在代码发生变更时,能够快速、有效地筛选出代码变更所影响的测试用例,有针对性地进行回归测试,并且避免了大量冗余测试用例的执行,节省了测试时间。

【技术实现步骤摘要】
一种测试用例筛选方法及装置
本专利技术属于软件测试
,尤其涉及一种测试用例筛选方法及装置。
技术介绍
在软件的生命周期中,当发生代码升级、版本迭代或者漏洞(Bug)修复等变化时,需要进行回归测试,以重新测试软件功能,保证上述变化不会破坏软件的原有功能。然而,在回归测试中,若执行所有测试用例,对于大型软件而言需要耗费大量的测试时间,不可行;若基于风险选择执行部分测试用例,则由于测试人员无法衡量软件实际更改带来的影响范围,因此在测试用例的选择上显得盲目,可能导致较大的功能逻辑遗漏风险。因此,现有的回归测试过程无法兼顾测试效率和测试用例的有效性,导致测试效果不理想。
技术实现思路
本专利技术实施例的目的在于提供一种测试用例筛选方法,旨在解决现有的回归测试无法兼顾测试效率和测试用例的有效性,导致测试效果不理想的问题。本专利技术实施例是这样实现的,一种测试用例筛选方法,包括:分别获取每个代码行关联的测试用例,所述测试用例覆盖与其关联的所述代码行;当有所述代码行发生变更时,提取所述代码行关联的所述测试用例。本专利技术实施例的另一目的在于提供一种测试用例筛选装置,包括:第一获取单元,用于分别获取每个代码行关联的测试用例,所述测试用例覆盖与其关联的所述代码行;第一提取单元,用于当有所述代码行发生变更时,提取所述代码行关联的所述测试用例。在本专利技术实施例中,通过获取每个代码行与测试用例之间的关联关系,从而在代码发生变更时,能够快速、有效地筛选出代码变更所影响的测试用例,有针对性地进行回归测试,并且避免了大量冗余测试用例的执行,节省了测试时间。【附图说明】图1是本专利技术实施例提供的测试用例筛选方法的实现流程图;图2是本专利技术另一实施例提供的测试用例筛选方法的实现流程图;图3是本专利技术另一实施例提供的测试用例筛选方法的实现流程图;图4是本专利技术实施例提供的测试用例筛选装置的结构框图;图5是本专利技术另一实施例提供的测试用例筛选装置的结构框图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在本专利技术实施例中,通过获取每个代码行与测试用例之间的关联关系,从而在代码发生变更时,能够快速、有效地筛选出代码变更所影响的测试用例,有针对性地进行回归测试,并且避免了大量冗余测试用例的执行,节省了测试时间。图1示出了本专利技术实施例提供的测试用例筛选方法的实现流程,详述如下:在步骤SlOl中,分别获取每个代码行关联的测试用例,该测试用例覆盖与其关联的代码行。在本实施例中,步骤SlOl之前,可以通过对基线测试用例库(即用于基线版本代码测试的所有测试用例的集合)中的所有测试用例进行覆盖率分析,从而获取到每个源文件的代码行到该基线测试用例库的映射关系,即获知源文件的每一行代码都被哪些测试用例所覆盖,由此,根据获取到的映射关系,在步骤SlOl中,即可以分别获取到每个源文件中的每个代码行关联的测试用例,在该“代码行-测试用例”的关联关系中,用于指示每个代码行都被哪些测试用例所覆盖,即每个代码行所关联的测试用例均覆盖与其关联的代码行。需要说明的是,在本专利技术实施例中,覆盖率分析可以根据代码所用编程语言的不同而采用相应的覆盖率统计工具来完成,在此不用于限定本专利技术。在步骤S102中,当有代码行发生变更时,提取该代码行关联的测试用例。在本实施例中,可以通过例如diff命令对新旧两个版本的代码进行比较,得到新版本代码的变更信息,当发现有代码行发生变更,包括新增、删除或者修改时,则提取发生变更的代码行所关联的测试用例,用于进行回归测试。例如,当变更信息指示有代码行被删除时,则提取被删除的代码行所关联的测试用例进行回归测试;当变更信息指示有代码行被修改时,则也提取被修改的代码行所关联的测试用例进行回归测试。因此,在本实施例中,通过对测试用例进行筛选,在回归测试中只需要测试与发生变更的代码行相关联的测试用例即完全可以达到预期的测试目的,在保证测试用例有效性的iu提下大大提闻了测试效率。作为本专利技术的一个实施例,由于当代码发生新增代码行或者修改代码行的变更情况时,可能出现发生变更的代码行还有具备与其关联的测试用例的情况,此时,如图2所示,本专利技术实施例还包括:步骤S103,如果没有测试用例与发生变更的代码行关联,反馈该代码行的信息。在本实施例中,代码行的信息包括该代码行所在源文件的源文件名及该代码行的行号,通过反馈该代码行的上述信息,使得测试人员能够根据上述信息新增与发生变更的代码行相关联的测试用例,有效避免了测试中对功能逻辑的遗漏。例如,对于新增的代码行,基线版本用例库中的测试用例均无法覆盖该代码行,则需要向测试人员反馈新增的代码行所在源文件的文件名及代码行的行号,以提示测试人员新增相应的测试用例以进行回归测试。在本专利技术实施例中,进一步地,在步骤SlOl之后步骤S102之前,还可以通过对所有的测试用例进行等价类划分,进一步地精简需要进行测试的测试用例,以提高测试效率。具体地,如图3所示:在步骤S302中,对所有测试用例进行等价类划分,每个等价类中的测试用例覆盖的代码行相同。在本实施例中,根据步骤S301中获取到的每个代码行与测试用例的关联关系,能够获取到每个测试用例所覆盖的代码行。具体地,每个测试用例所覆盖的代码行可以通过将步骤SlOl之前获取到的每个源文件的代码行到基线测试用例库的映射关系进行反映射获取。在本实施例中,如果两个测试用例在执行过程中流经完全相同的代码行,即认为这两个测试用例等价,具有完全相同的测试效果,可以相互取代。因此,将这两个测试用例合入一个等价类中,从而针对基线版本用例库中的测试用例,能够划分成若干等价类。相应地,在步骤S303提取出变更的代码行关联的测试用例之后,还包括:在步骤S304中,获取提取出的测试用例所处的等价类。在步骤S305中,在获取到的每个等价类中提取一个测试用例。在本专利技术实施例中,针对步骤S303提取出的变更的代码行所关联的测试用例,能够进一步地对提取出的测试用例进行筛选,对于处于同一等价类中的测试用例,由于其覆盖的代码行完全相同,因此,只需要提取出该等价类中的一个测试用例,即可以达到预期的测试效果,由此大大地缩短了测试时间,提高了测试的效率。图4示出了本专利技术实施例提供的测试用例筛选装置的结构框图,该装置可以位于计算机等软件测试装置中,用于运行本专利技术图1至图3实施例所述的测试用例筛选方法。为了便于说明,仅示出了与本实施例相关的部分。参照图4,该装置包括:第一获取单元41,分别获取每个代码行关联的测试用例,该测试用例覆盖与其关联的所述代码行。第一提取单元42,当有代码行发生变更时,提取发生变更的代码行关联的测试用例。可选地,还包括:反馈单元,如果没有测试用例与发生变更的代码行关联,反馈代码行的信息。可选地,代码行的信息包括代码行所处源文件的文件名和代码行的行号。可选地,上述变更包括删除、新增或者修改。可选地,如图5所示,该装置还包括:等价类划分单元43,对所有测试用例进行等价类划分,每个等价类中的测试用例覆盖的代码行相同;相应地,该装置还包括:第二获取单元44,获取提取出的测试用例所处的等价类;第二本文档来自技高网...

【技术保护点】
一种测试用例筛选方法,其特征在于,包括:分别获取每个代码行关联的测试用例,所述测试用例覆盖与其关联的所述代码行;当有所述代码行发生变更时,提取所述代码行关联的所述测试用例。

【技术特征摘要】
1.一种测试用例筛选方法,其特征在于,包括: 分别获取每个代码行关联的测试用例,所述测试用例覆盖与其关联的所述代码行; 当有所述代码行发生变更时,提取所述代码行关联的所述测试用例。2.如权利要求1所述的方法,其特征在于,还包括: 如果没有所述测试用例与发生变更的所述代码行关联,反馈所述代码行的信息。3.如权利要求2所述的方法,其特征在于,所述代码行的信息包括所述代码行所处源文件的文件名和所述代码行的行号。4.如权利要求1~3任一项所述的方法,其特征在于,所述变更包括删除、新增或者修改。5.如权利要求1所述的方法,其特征在于,在所述代码行发生变更之前,还包括: 对所有所述测试用例进行等价类划分,每个等价类中的测试用例覆盖的代码行相同;相应地, 所述方法还包括: 获取提取出的所述测试用例所处的所述等价类; 在获取到的每个所述等价类中提取一个所述测试用例。6.一种测试用例筛选装置,其特征在于,...

【专利技术属性】
技术研发人员:潘晓宇陈鹏曹向博鲍海燕姜琳邓月堂樊华
申请(专利权)人:深圳市世纪光速信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1