当前位置:文档之家› 基于形式概念分析的软件回归测试方法与设计方案

基于形式概念分析的软件回归测试方法与设计方案

本技术提供一种基于形式概念分析的软件回归测试方法,充分利用形式概念分析技术有效地进行回归测试,能够将测试用例的选择、约减、以及排序等技术有效地结合起来,直接生成一种高质量、高效的软件回归测试用例集。

该技术在实际应用中不受程序语言约束,可以应用于各种编程语言程序中,提高了该技术可应用的范围。

即测试用例选择、约减以及排序,其所产生的测试用例集结果更加高效,可以直接进行回归测试,使得软件维护变得更加容易。

技术要求1.一种基于形式概念分析的软件回归测试方法,其特征在于该回归测试方法具体如下:步骤1:根据原测试用例集以及修改后的程序元素,收集测试覆盖情况;根据测试用例覆盖信息构造二维表,表中行表示测试用例运行情况,列表示程序元素,某个列的程序元素被某一行的测试用例覆盖,我们就对其进行标记,再以该二维表为输入,利用形式概念分析技术构造概念格;形式概念分析建立在数学基础之上,对组成概念的对象、属性以及关系等用形式化的语境表述出来,然后根据语境,利用概念格的生成算法自动构造出概念格;概念格上的节点表示概念,而一个概念是由外延和内涵组成,分别表示某个节点的测试用例和程序元素;步骤2:进行修改分析,计算得到修改集CS和影响集IS,这两者的并集为CI=CS∪IS;然后在概念格上找出概念格节点内涵中包含CI中元素的概念节点,然后把这些概念节点中包含的测试用例选择出来,假设为T’,即为测试用例选择过程的结果;步骤3:进行测试用例的约减,对于测试用例集T’中任意测试用例t1,t2∈T’,如果在概念格上,t1是t2的下确界,即t1所标记的概念格节点层次低于t2,则选择t1,将t2从T’中删除,最终得到T’’;另外,如果T’’中有多个测试用例由同一概念节点标记,由于这些测试用例都具有相同的覆盖特征,因此只需选择其中一个测试用例就可,这一步结束之后就产生了新的约减后的测试用例集T’’;步骤4:对T’’进行测试用例排序,根据测试用例包含的CI元素的个数进行排序,称这样的排序度量方法为测试用例的包含度Inclusiveness={|e||e∈Int(t)∧t∈T’’∧e∈CI},其中,Int(t)表示测试用例t所标记的概念格元素的内涵,计算T’’中的每一个测试用例的包含度Inclusiveness,然后测试用例的排序就是根据包含度Inclusiveness结果进行排序这一步结束之后就得到排序后的测试用例集L T’’;到这里,整个回归测试过程结束,其输出是一个排序后的测试用例集L T’’,它将测试用例的选择、约减以及排序整合到一起。

说明书一种基于形式概念分析的软件回归测试方法技术领域本技术提出了一种新型的软件回归测试方法,主要是利用形式概念分析技术来有效地进行回归测试用例的选择、约减、以及排序等,属于软件回归测试领域。

背景技术软件维护活动的核心是进行软件修改,而修改肯定会对软件的其他部分造成一些潜在影响,从而带来软件的不一致性。

因此,在每次修改之后,需要对系统重新进行一系列的测试以确定修改阶段没有引入新的错误,以及按照什么样的测试方法进行测试等等。

而在软件维护阶段对修改后软件进行再测试的过程称为回归测试。

回归测试是软件维护中最耗费成本的阶段,如何有效地生成回归测试用例是一项重要的研究任务。

回归测试是软件演化过程中保证软件演化质量的有效方法之一,它需要从两方面测试软件是否存在故障:(1)软件修改部分与没有修改部分能够保持一致性;(2)没有修改的部分依然没有受到影响,能够与修改前的状态保持一致。

到目前为止,出现了许多有效的回归测试技术,如测试用例选择、测试用例约减、以及测试用例排序等。

测试用例选择主要用于从已有的测试集里面选择有效的用于测试新版本的测试用例,从而有效地减少测试成本;而测试用例约减技术主要用于有效减少测试成本,减少测试用例的冗余,在不影响测试效果的前提下,希望用更少的测试用例进行回归测试;另外,回归测试用例排序是用于对新的测试用例集进行排序,以更早地发现新版本中存在的故障。

当前研究人员在回归测试领域做了大量的研究,这些研究包含了回归测试用例的选择、排序、约减等技术。

测试用例选择技术用于从原测试用例集中选择一部分测试用例去测试程序中的修改部分以及受这些修改影响的元素,一个简单的测试用例选择策略就是将整个原来测试用例集包含进来,这是一个安全的测试用例选择技术,但是该技术比较低效;另外,还有一些基于程序切片以及基于防火墙的回归测试用例选择技术。

测试用例集约减技术旨在用最少的测试用例去测试程序中的修改部分和影响部分,目前这方面主要有启发式的方法进行回归测试用例的约减。

测试用例排序技术希望的是更早地发现缺陷或者更多的缺陷,目前这方面主要有基于覆盖的测试用例排序技术、基于搜索的测试用例排序技术,等。

尽管每一个回归测试技术都有相关的技术来支撑,但是大部分技术都是单独地进行研究,如单纯地进行测试用例的选择或者单纯地对测试用例集进行排序,或者给定一个测试用例集,研究对这个用例集进行约减。

而实际中回归测试用例选择、排序以及约减技术通常是紧密联系的,即在实际应用过程中我们需要使用排序好的测试用例集,然后通过该测试用例集尽快发现新版本程序中存在的故障。

这里,我们将采用形式概念分析技术有效地将回归测试用例选择、约减与排序组合在一起进行,从而得到约减后的排序好的测试用例集,以便尽早地发现软件故障。

形式概念分析以数学化的概念和概念层次为人们提供了一种应用数学理论来处理现实世界中形式对象与形式属性之间这种二元关系的方法。

形式概念分析技术经过几十年的发展,到目前已经比较成熟,目前在软件工程中主要是应用在程序分析和理解方面。

这里,我们将其成功地应用在回归测试领域中,有效地支持测试用例的选择、约减以及排序。

技术内容技术问题:本技术的目的是提供一种基于形式概念分析的软件回归测试方法,充分利用形式概念分析技术有效地进行回归测试,能够将测试用例的选择、约减、以及排序等技术有效地结合起来,直接生成一种高质量、高效的软件回归测试用例集。

该技术在实际应用中不受程序语言约束,可以应用于各种编程语言程序中,提高了该技术可应用的范围。

技术方案:本技术的一种基于形式概念分析的软件回归测试方法具体如下:步骤1:根据原测试用例集以及修改后的程序元素,收集测试覆盖情况;根据测试用例覆盖信息构造二维表,表中行表示测试用例运行情况,列表示程序元素,某个列的程序元素被某一行的测试用例覆盖,我们就对其进行标记,再以该二维表为输入,利用形式概念分析技术构造概念格,(形式概念分析是一种从形式背景(这里表示测试用例覆盖表)进行数据分析和规则提取的强有力工具,)形式概念分析建立在数学基础之上,对组成概念的对象、属性以及关系等用形式化的语境表述出来,然后根据语境,利用概念格的生成算法自动构造出概念格,概念格上的节点表示概念,而一个概念是由外延和内涵组成,分别表示某个节点的测试用例和程序元素;步骤2:进行修改分析,计算得到修改集CS和影响集IS,这两者的并集为CI=CS∪IS;然后在概念格上找出概念格节点内涵中包含CI中元素的概念节点,然后把这些概念节点中包含的测试用例选择出来,假设为T’,即为测试用例选择过程的结果;步骤3:进行测试用例的约减,对于测试用例集T’中任意测试用例t1,t2∈T’,如果在概念格上,t1是t2的下确界,即t1所标记的概念格节点层次低于t2,则选择t1,将t2从T’中删除,最终得到T’’;另外,如果T’’中有多个测试用例由同一概念节点标记,由于这些测试用例都具有相同的覆盖特征,因此只需选择其中一个测试用例就可,这一步结束之后就产生了新的约减后的测试用例集T’’;步骤4:对T’’进行测试用例排序,根据测试用例包含CI元素的个数进行排序,称这样的排序度量方法为测试用例的包含度Inclusiveness={|e||e∈Int(t)∧t∈T’’∧e∈CI},其中,Int(t)表示测试用例t所标记的概念格元素的内涵,计算T’’中的每一个测试用例的包含度Inclusiveness,然后测试用例的排序就是根据包含度Inclusiveness结果进行排序这一步结束之后就得到排序后的测试用例集L T’’;到这里,整个回归测试过程结束,其输出是一个排序后的测试用例集L T’’,它将测试用例的选择、约减以及排序整合到一起。

有益效果:本技术提出了一种基于形式概念分析技术来支撑软件回归测试中涉及的各种技术,即测试用例选择、约减以及排序,其所产生的测试用例集结果更加高效,可以直接进行回归测试,使得软件维护变得更加容易。

主要有以下一些优点:(1)目前的回归测试技术很多,如测试用例选择、约减以及排序,但是它们都是单独进行研究,而本技术提出利用形式概念分析技术将这些技术整合在一起,为当前回归测试各种技术组合的可能性提供了一种借鉴。

(2)该技术基于形式概念分析进行回归测试,它将测试用例的选择、约减以及排序有效地组合在一起,简化了回归测试的过程,提高了回归测试的效率。

(3)该技术所提出的测试用例的选择、约减以及排序技术只要一种中间转化表示即可,即通过形式概念分析得到概念格,然后基于概念格直接计算得到约减以及排序后可直接使用的新的测试用例集,因此,该方法实施比较容易。

(4)本技术提供了可选的软件回归测试的粒度层次。

本技术中的程序元素粒度可以是类、方法、也可以是语句层次,因此,在实际回归测试中,可以根据成本分析等现实情况,选择相应的粒度层次进行测试用例的选择,为实际回归测试提供了灵活的选择框架。

附图说明图1是形式概念分析技术应用于软件回归测试的基本流程图,从上到下分别是形式背景约定,概念格生成,以及概念格应用。

图2是本技术所使用的基于形式概念分析的软件回归测试框架图。

图3是测试用例选择过程。

图4是修改影响分析过程。

图5是回归测试中生成的概念格。

具体实施方式本技术利用形式概念分析技术来有效地进行回归测试用例的选择、约减以及排序。

图2是利用形式概念分析技术进行软件回归测试的体系结构图,该体系结构包括这样几种活动:测试覆盖分析,形式概念分析,回归测试。

具体地讲:测试覆盖分析帮助我们收集测试用例对程序元素的覆盖情况,如果我们的程序元素是语句,那么就要对相应的语句进行覆盖分析;如果程序元素是方法或者类,那么就需要对测试用例在相应的方法或者类层次上进行覆盖分析,这样就产生了回归测试的粒度层次问题。

其次是形式概念分析,图1是形式概念分析技术应用于回归测试的过程,形式概念分析技术的实际应用都需经过这些步骤:首先,约定形式背景中的形式属性与形式对象;然后通过形式概念分析,自动生成概念格;再根据概念格的特性利用概念格去辅助应用。

这里的形式背景就是前面的覆盖信息,然后使用形式概念分析这样一种成熟的技术进行概念格的自动生成;最后,回归测试就是基于概念格的特性(层次特性)进行回归测试用例的选择、约减以及排序。

相关主题