一种基于概念格的软件多错误定位方法

文档序号:6588286阅读:263来源:国知局
专利名称:一种基于概念格的软件多错误定位方法
技术领域
本发明提出了一种基于概念格的软件多错误定位技术,主要是利用概念格技术来解决软件程序中的多错误定位问题,属于软件调试的技术领域。
背景技术
在软件测试过程中,测试可能会产生错误的结果,而此时,测试人员需要不断地去调试程序,直至查找测试产生错误的缘由,该过程就是错误定位。错误定位是软调试活动中最困难、最耗时的任务之一。错误定位即定位引起软件失效的错误,传统的方法有两种:一是在程序中插入输出语句,根据输出结果去分析可能导致异常的错误;二是在程序中可能产生错误的地方设置断点,然后单步执行分析错误产生的位置。这两种方法主要通过手动完成,效率不高。近些年来,随着软件规模的指数级增长,正变得越来越复杂多样,这给软件调试带来了巨大的挑战。自动化,半自动化的软件错误定位技术因而也成为当前的迫切需要,目前相关的主要技术有Delta调试法、程序切片法、程序谱方法,等等。尽管出现了如上所述的众多的软件错误定位技术,这些技术主要是面向软件中存在的单错误进行定位的,当程序中有一个错误的时候,这些技术还是比较有效的,但是目前软件规模较大,在软件不同的地方几个甚至几十个错误同时出现的情况是普遍存在的,而当前这些软件错误定位技术由于没有考虑到错误测试与错误之间的一些关联关系,它们并不适用于这种多错误的定位情况。所以,需要一种新型的软件多错误定位技术来处理软件中多错误的调试。当前,基于程序谱的错误定位技术由于其实现比较简单,也比较适用于大规模程序分析的优点变得非常流行。通过对程序谱的分析,计算程序中各个元素可能产生错误的概率,然后根据各个元素的概率从大到小依次检查以找到错误所在位置。这种技术通常是基于程序谱,但是它缺乏了依赖分析,特别是程序元素与错误测试以及正确测试直接的关联关系,对于多错误定位并不是很实用。而概念格是一种能够有效地表示出不同元素之间关联关系的一种技术,因此,将概念格与程序谱结合起来能够有效地表示出错误测试与可能产生错误的程序元素之间的关系。然后基于这样一种概念格表示,一方面,能够有效地定位到程序中可能导致错误产生的一些特征元素;另一方面,根据概念格的层次特性,对各种程序可疑元素进行排序,从而实现更加高效、准确的错误定位。

发明内容
技术问题:本发明的目的是提供一种基于概念格的软件多错误定位方法,该技术能够有效地表示出错误测试和导致程序出错元素之间的关联关系,能够更加有效地找出软件中存在的错误。该技术在实际应用中不受程序语言约束,可以应用于各种编程语言程序中,提高了该技术可应用的范围。技术方案:本发明基于概念格的软件多错误定位方法具体如下:步骤1:给定一个测试用例集,收集程序执行情况;其中,有一些测试用例结果与预期不一致,称之为失效测试用例集,记为Failed ;而其余测试执行结果正确的测试集合记为 Passed,步骤2:根据测试用例覆盖信息构造二维表,表中行表示测试用例运行情况,列表示程序元素,某个列的程序元素被某一行的测试用例覆盖,就对其进行标记,再以该二维表为输入,利用形式概念分析技术构造概念格(形式概念分析是一种从形式背景(这里表示测试用例覆盖表)进行数据分析和规则提取的强有力工具)。形式概念分析建立在数学基础之上,对组成概念的对象、属性以及关系等用形式化的语境表述出来,然后根据语境,利用概念格的生成算法自动构造出概念格。概念格上的节点表示概念,而一个概念是由外延和内涵组成,分别表示某个节点的特征测试和特征元素;步骤3:在概念格上识别出所有都有外延和内涵标记的概念节点,如果一个节点的外延只有错误测试用例标记,则将该节点所标记的程序元素提取出来,那么根据概念格的标记方法,该错误特征测试很有可能是由于该概念节点所标记的程序元素导致的,因而该元素拥有最高的可疑度,则要检查该元素是否是错误产生的原因;另外,如果一个节点的外延只有正确测试用例标记,根据概念格的标记方法,该节点所标记的程序元素不可能是导致其他测试用例运行错误的元素,因而将其从可疑程序元素中删除;步骤4:对于概念格上的其他节点,根据概念格的层次特性提出一种新的程序元
素的可疑程度SD (SuspiciousDegree,)模型,而SD是针对概念格上的每一个节点k进行度
量的,即
权利要求
1.一种基于概念格的软件多错误定位方法,其特征在于该多错误定位方法具体如下:步骤1:给定一个测试用例集,收集程序执行情况;其中,有一些测试用例结果与预期不一致,称之为失效测试用例集,记为Failed ;而其余测试执行结果正确的测试集合记为Passed ; 步骤2:根据测试用例覆盖信息构造二维表,表中行表示测试用例运行情况,列表示程序元素,某个列的程序元素被某一行的测试用例覆盖,就对其进行标记,再以该二维表为输入,利用形式概念分析技术构造概念格,形式概念分析建立在数学基础之上,对组成概念的对象、属性以及关系,用形式化的语境表述出来,然后根据语境,利用概念格的生成算法自动构造出概念格;概念格上的节点表示概念,而一个概念是由外延和内涵组成,分别表示某个节点的特征测试和特征元素; 步骤3:在概念格上识别出所有都有外延和内涵标记的概念节点,如果一个节点的外延只有错误测试用例标记,则将该节点所标记的程序元素提取出来,那么根据概念格的标记方法,该错误特征测试很有可能是由于该概念节点所标记的程序元素导致的,因而该元素拥有最高的可疑度,则要检查该元素是否是错误产生的原因;另外,如果一个节点的外延只有正确测试用例标记,根据概念格的标记方法,该节点所标记的程序元素不可能是导致其他测试用例运行错误的元素,因而将其从可疑程序元素中删除; 步骤4:对于概念格上的其他节点,根据概念格的层次特性提出一种新的程序元素的可疑程度SD模型,而SD是针对概念格上的每一个节点k进行度量的,即,
全文摘要
本发明是一种基于概念格的软件多错误定位方法,该方法能够有效地表示出错误测试和导致程序出错元素之间的关联关系,能够更加有效地找出软件中存在的错误。该技术在实际应用中不受程序语言约束,可以应用于各种编程语言程序中,提高了该技术可应用的范围。根据概念格的层次特性提出一种新的程序元素的可疑程度SD模型,而SD是针对概念格上的每一个节点k进行度量的,即,其中,Failed表示失效测试用例,Passed表示正确测试用例,Distance表示两个节点间的最短距离,有了该可疑程度度量后,按照该可疑程度从高到低的顺序检查哪些元素是导致测试用例的失效,从而实现软件中的多错误定位。
文档编号G06F11/36GK103176902SQ20131007496
公开日2013年6月26日 申请日期2013年3月8日 优先权日2013年3月8日
发明者孙小兵 申请人:扬州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1