CN102289408A - 一种基于错误传播网络的回归测试用例排序方法 - Google Patents
一种基于错误传播网络的回归测试用例排序方法 Download PDFInfo
- Publication number
- CN102289408A CN102289408A CN2011102645464A CN201110264546A CN102289408A CN 102289408 A CN102289408 A CN 102289408A CN 2011102645464 A CN2011102645464 A CN 2011102645464A CN 201110264546 A CN201110264546 A CN 201110264546A CN 102289408 A CN102289408 A CN 102289408A
- Authority
- CN
- China
- Prior art keywords
- node
- class
- test case
- limit
- importance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种回归测试用例排序方法,尤其是涉及一种基于错误传播网络的回归测试用例排序方法。本发明提出一种基于软件网络的回归测试用例排序方法。该方法首先将软件的结构(软件元素及元素间的)在类粒度用加权网络模型抽象;然后基于该网络模型分析类对于测试的重要性;最后根据测试用例覆盖的类的重要性总和对其进行排序,并按照排序后的顺序执行测试用例。因此,本发明具有如下优点:可以有效提高错误检出率,减少测试时间,提高测试效率。
Description
技术领域
本发明涉及一种回归测试用例排序方法,尤其是涉及一种基于错误传播网络的回归测试用例排序方法。
背景技术
软件测试是软件开发的重要过程之一,目的是尽可能多的发现软件中的错误,是保证软件质量的重要手段。软件测试工作量大,成本高,因此如何提高测试效率、保证软件质量已经成为软件工程领域当前研究的热点与难点,并产生了一些有意义的方法。
回归测试是软件测试的重要过程,用于检测代码修改是否引入了新的错误。为了提高测试效率,人们提出了测试用例排序、测试用例选择等方法。测试用例排序把优先级最高的测试用例放在最早运行以达到某种目标(如尽早提供测试反馈信息、尽早检测出错误等)。研究表明,测试用例排序可以提高测试集的错误检出率。然而,当前关于测试用例排序的研究大多是对于面向过程语言以及特定的测试用例集,而对于与面向过程语言有很大不同的面向对象语言,尚未得到足够重视。
软件内部结构对软件质量和缺陷的传播有重要的影响。但是现有的方法在结构信息的利用方面存在不足。复杂网络理论与方法是研究复杂系统的有效工具,它认为系统的结构决定其功能,强调从整体的角度认识软件及其行为。软件系统代表了一类人工复杂系统,当然也可以借鉴复杂网络的理论进行研究。用复杂网络理论对软件系统进行研究,具有两点优势:(1)为研究软件结构及其行为提供了一种全局、整体的视角;(2)可以借鉴图论和复杂系统的相关理论,具有良好的数学基础,为软件工程从经验型向计算型转变提供了手段。
发明内容
本发明主要是解决现有技术所存在的上述技术问题;提供了一种可以有效提高错误检出率,减少测试时间,提高测试效率的一种基于错误传播网络的回归测试用例排序方法。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种基于错误传播网络的回归测试用例排序方法,其特征在于,包括以下步骤:
步骤1,构建面向对象的错误传播网络,具体步骤如下:
步骤1.2,基于步骤1.1完成的WFDN构建在类粒度的网络:其中代表系统中类的节点;表示类之间的有向边,表示节点i和节点j存在边,方向从节点i到节点j;是类之间错误传播可能性的强度矩阵,表示错误从节点j传播到节点i的可能性强度;
步骤4,测试用例排序,根据步骤3中得到所有测试用例的测试重要性后,对其按降序排列,然后依次执行测试用例。
本发明创造性的提出一种基于网络的回归测试用例排序方法。该方法首先将软件的结构(软件元素及元素间的)在类粒度用加权网络模型抽象;然后基于该网络模型分析类对于测试的重要性;最后根据测试用例覆盖的类的重要性总和对其进行排序,并按照排序后的顺序执行测试用例。
步骤2.1,若在WCDN中节点i和节点j间不存在直接的依赖关系,但是若存在有向路径,则节点i和节点j间也将存在一条有向边,边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和,即
Pc:类节点之间的影响概率, Pb:类节点之间的错误传播影响度
Pc计算公式为:
其中,类之间可达集(Extra-Class Reachable Set, ECRS(i,j))是类中所有特征到类的可达集的并集。如果类中的特征w可以到达类,那么从w到经过只由或的结点组成且经过每个结点一次的边。算得的类之间的影响概率的值在0到1之间,值越大,表明如果类中的某些特征出现错误,则影响到其他类的概率越大, 应用到本实施例中,即如在WFDN(图2)中,B到C的可达特征有两个(C.a和C.d()),因此可达集数目为2,C的特征有四个,因此B到C的影响概率为1/2,即如果B发生变化,可能通过B到C的两个特征影响到C,影响概率为0.5。
ECRS(B,C)=(B.c(),C)={C.a,C.d()}
Pc(B,C)=2/4=0.5
ECRS(C,B)=(C.a,B)+(C.d(),B)={B.d()}
Pc(C,B)=1/4=0.25
步骤2.2,若在WCDN中节点i和节点j间已存在直接的依赖关系,但是又存在有向路径,则节点i和节点j间的边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和与这两节点间直接依赖的边权之和,即
在上述的一种基于错误传播网络的回归测试用例排序方法,所述的步骤1.2中,所述的类既包含了类,也包含了接口;节点之间的边权是通过分析WFDN中方法和属性间的交互关系获得,即两节点间错误传播的强度值是被依赖节点中影响另外一个节点的方法和属性占该类方法和属性节点总数的比例;所述边权是由两个节点直接联系得到的。
在上述的一种基于错误传播网络的回归测试用例排序方法,所述的步骤1.1中,所述特征节点代表的方法和属性具体指:软件系统中所有类中的方法和属性的集合;
因此,本发明具有如下优点:可以有效提高错误检出率,减少测试时间,提高测试效率。
附图说明
图1 本发明的代码片段;
图2本发明的实施例构建的 WFDN;
图3本发明的实施例构建的WCDN;
图4本发明的实施例构建的WCDN中边权计算
图5本发明的实施例构建的BPN。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
一种基于错误传播网络的回归测试用例排序方法,其特征在于,包括以下步骤:
步骤1,构建面向对象的错误传播网络,具体步骤如下:
步骤1.1,构建图1代码片段在方法属性粒度的网络(如图2所示):节点边上的文字为其对应方法或属性的名称,边代表方法之间的调用关系和方法对属性的使用关系,边权设为1,其中代表系统中的特征节点,其中特征节点代表方法和属性;表示特征节点之间的有向边,表示节点i和节点j存在边,方向从节点i到节点j;所述特征节点代表的方法和属性具体指:软件系统中所有类中的方法和属性的集合。
步骤1.2,基于步骤1完成的WFDN如图2所示构建在类粒度的网络:其中代表系统中类的节点;表示类之间的有向边,表示节点i和节点j存在边,方向从节点i到节点j;是类之间错误传播可能性的强度矩阵,表示错误从节点j传播到节点i的可能性强度;所述的类既包含了类,也包含了接口;节点之间的边权是通过分析WFDN中方法和属性间的交互关系获得,即两节点间错误传播的强度值是被依赖节点中影响另外一个节点的方法和属性占该类方法和属性节点总数的比例;所述边权是由两个节点直接联系得到的。如图4中,classB与classC之间的边权计算如下:因为classB中方法和属性的个数和为4,但是其中只有B.d()的错误可能会影响到classC;所以0.2 5;因为classC中方法和属性的数量为4,但是只有C.a和C.d()的错误可能会影响到classB,所以。
步骤2.1,若在WCDN中节点i和节点j间不存在直接的依赖关系,但是若存在有向路径,则节点i和节点j间也将存在一条有向边,边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和,即
步骤2.2,若在WCDN中节点i和节点j间已存在直接的依赖关系,但是又存在有向路径,则节点i和节点j间的边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和与这两节点间直接依赖的边权之和,即
应用到本实施例中,即如在WCDN中节点classC没有边指向节点classA,但是存在有向路径,则节点classC和节点classA间也将存在一条有向边,边权等于该路径上所有边的边权乘积之和,即0.25*0.33=0.08。在WCDN中又存在有向路径和,则节点classB和节点classA间的边权等于所有这些有向路径边权之和与这两节点间直接依赖的边权之和,即
步骤2,类测试重要性度量指标:定义测试用例覆盖的类的测试重要性,即数值上第j个类的测试重要性TIC(j)等于BPN中指向这个节点的边的边权和,即;在本实施例中,在得到图1代码的BPN之后,就可以计算类的测试重要性,图3中5个类的测试重要性分别是:
同理:
TIC(classB)=0.25+0.125=0.38
TIC(classC)=0.5+0.5=1
TIC(classD)=0
TIC(classE)=0.5+0.92+0.67+0.83 =2.92;
步骤3,测试用例重要性指标:测试用例的重要性由其覆盖的类的重要性定义,即若表示返回第i个测试用例覆盖的类集合,则第i个测试用例的重要性定义为其覆盖的所有类的重要性的总和,即
tc1:classA、classB、classE;
tc2:classC、classD、classE;
tc3:classA、classB、classC;
tc4:classA、classB、classD;
tc5:classA、classD、classE;
因此,各个测试用例的测试重要性分别为:
TIC(tc1)=2.59+0.38+2.92=5.89
TIC(tc2)=1+0+2.92=3.92
TIC(tc3)=2.59+0.38+1=3.97
TIC(tc4)= 2.59+0.38+0=2.97
TIC(tc5)= 2.59+0 +2.92=5.51;
步骤4,测试用例排序,根据步骤3中得到所有测试用例的测试重要性后,对其按降序排列,然后依次执行测试用例,本实施例,即是将上述5个测试用例按其重要性从高到低排序,即
,因此按顺序tc1,tc5,tc3,tc2,tc4执行测试用例。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (4)
1.一种基于错误传播网络的回归测试用例排序方法,其特征在于,包括以下步骤:
步骤1,构建面向对象的错误传播网络,具体步骤如下:
步骤1.2,基于步骤1完成的WFDN构建在类粒度的网络:其中代表系统中类的节点;表示类之间的有向边,表示节点i和节点j存在边,方向从节点i到节点j;是类之间错误传播可能性的强度矩阵,表示错误从节点j传播到节点i的可能性强度;
步骤4,测试用例排序,根据步骤3中得到所有测试用例的测试重要性后,对其按降序排列,然后依次执行测试用例。
步骤2.1,若在WCDN中节点i和节点j间不存在直接的依赖关系,但是若存在有向路径,则节点i和节点j间也将存在一条有向边,边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和,即
;
Pc:类节点之间的影响概率, Pb:类节点之间的错误传播影响度;
步骤2.2,若在WCDN中节点i和节点j间已存在直接的依赖关系,但是又存在有向路径,则节点i和节点j间的边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和与这两节点间直接依赖的边权之和,即
3.根据权利要求1所述的一种基于错误传播网络的回归测试用例排序方法,其特征在于,步骤1.2中,所述的类既包含了类,也包含了接口;节点之间的边权是通过分析WFDN中方法和属性间的交互关系获得,即两节点间错误传播的强度值是被依赖节点中影响另外一个节点的方法和属性占该类方法和属性节点总数的比例;所述边权是由两个节点直接联系得到的。
4.根据权利要求1所述的一种基于错误传播网络的回归测试用例排序方法,其特征在于,步骤1.1中,所述特征节点代表的方法和属性具体指:软件系统中所有类中的方法和属性的集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110264546 CN102289408B (zh) | 2011-09-08 | 2011-09-08 | 一种基于错误传播网络的回归测试用例排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110264546 CN102289408B (zh) | 2011-09-08 | 2011-09-08 | 一种基于错误传播网络的回归测试用例排序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102289408A true CN102289408A (zh) | 2011-12-21 |
CN102289408B CN102289408B (zh) | 2013-12-18 |
Family
ID=45335851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110264546 Active CN102289408B (zh) | 2011-09-08 | 2011-09-08 | 一种基于错误传播网络的回归测试用例排序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102289408B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103293948A (zh) * | 2012-02-22 | 2013-09-11 | 西门子公司 | 用于在计算机程序中存储和传播错误信息的方法 |
CN103984632A (zh) * | 2014-05-29 | 2014-08-13 | 东南大学 | 一种基于错误传播分析的sdc脆弱指令识别方法 |
CN105389192A (zh) * | 2015-12-18 | 2016-03-09 | 浙江工商大学 | 一种基于加权q2指数的软件类重要性度量方法 |
CN106354631A (zh) * | 2016-08-23 | 2017-01-25 | 北京中电华大电子设计有限责任公司 | 一种快速软件系统回归测试的方法及装置 |
CN108287785A (zh) * | 2017-01-09 | 2018-07-17 | 富士通株式会社 | 测试例排序方法和设备 |
CN110990291A (zh) * | 2019-12-16 | 2020-04-10 | 沈阳信安盟科技有限公司 | 一种基于节点重要度评估的回归测试用例优先级排序方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6810364B2 (en) * | 2000-02-04 | 2004-10-26 | International Business Machines Corporation | Automated testing of computer system components |
CN101477490A (zh) * | 2009-01-23 | 2009-07-08 | 上海第二工业大学 | 基于复杂网络面向对象集成测试的方法 |
-
2011
- 2011-09-08 CN CN 201110264546 patent/CN102289408B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6810364B2 (en) * | 2000-02-04 | 2004-10-26 | International Business Machines Corporation | Automated testing of computer system components |
CN101477490A (zh) * | 2009-01-23 | 2009-07-08 | 上海第二工业大学 | 基于复杂网络面向对象集成测试的方法 |
Non-Patent Citations (2)
Title |
---|
屈波等: "《基于测试用例设计信息的回归测试优先级算法》", 《计算机学报》 * |
李兵等: "《基于复杂网络的软件复杂性度量研究》", 《电子学报》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103293948A (zh) * | 2012-02-22 | 2013-09-11 | 西门子公司 | 用于在计算机程序中存储和传播错误信息的方法 |
US9195534B2 (en) | 2012-02-22 | 2015-11-24 | Siemens Aktiengesellschaft | Method for storing and propagating error information in computer programs |
CN103293948B (zh) * | 2012-02-22 | 2016-04-06 | 西门子公司 | 用于在计算机程序中存储和传播错误信息的方法 |
CN103984632A (zh) * | 2014-05-29 | 2014-08-13 | 东南大学 | 一种基于错误传播分析的sdc脆弱指令识别方法 |
CN103984632B (zh) * | 2014-05-29 | 2016-08-24 | 东南大学 | 一种基于错误传播分析的sdc脆弱指令识别方法 |
CN105389192A (zh) * | 2015-12-18 | 2016-03-09 | 浙江工商大学 | 一种基于加权q2指数的软件类重要性度量方法 |
CN105389192B (zh) * | 2015-12-18 | 2018-07-31 | 浙江工商大学 | 一种基于加权q2指数的软件类重要性度量方法 |
CN106354631A (zh) * | 2016-08-23 | 2017-01-25 | 北京中电华大电子设计有限责任公司 | 一种快速软件系统回归测试的方法及装置 |
CN108287785A (zh) * | 2017-01-09 | 2018-07-17 | 富士通株式会社 | 测试例排序方法和设备 |
CN108287785B (zh) * | 2017-01-09 | 2021-06-22 | 富士通株式会社 | 测试例排序方法和设备 |
CN110990291A (zh) * | 2019-12-16 | 2020-04-10 | 沈阳信安盟科技有限公司 | 一种基于节点重要度评估的回归测试用例优先级排序方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102289408B (zh) | 2013-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee et al. | Micro interaction metrics for defect prediction | |
CN102289408A (zh) | 一种基于错误传播网络的回归测试用例排序方法 | |
US20210019251A1 (en) | Capability test method based on joint test support platform | |
CN102664915B (zh) | 云制造环境中基于资源约束的服务选取方法 | |
CN103984714B (zh) | 一种基于本体语义的云制造服务供需智能匹配方法 | |
CN106803799B (zh) | 一种性能测试方法和装置 | |
CN1610311A (zh) | 通过把推理用于it系统进行自动建模的方法和设备 | |
Yu et al. | Time-aware collaborative filtering for QoS-based service recommendation | |
CN102737063B (zh) | 一种日志信息的处理方法及系统 | |
Zhuo et al. | Multi-agent plan recognition with partial team traces and plan libraries | |
CN106776575A (zh) | 一种实时语义搜索工作机会的系统及方法 | |
Robillard et al. | Recommending change clusters to support software investigation: an empirical study | |
Chen et al. | AndroidOff: Offloading android application based on cost estimation | |
Sun et al. | Effectiveness of exploring historical commits for developer recommendation: an empirical study | |
Hiden et al. | A framework for dynamically generating predictive models of workflow execution | |
CN108345620B (zh) | 品牌信息处理方法、装置、存储介质及电子设备 | |
binti Oseman et al. | Data mining in churn analysis model for telecommunication industry | |
CN101930566A (zh) | 基于平行系统的水利实验模拟系统及实验模拟方法 | |
Al-Zuheri et al. | The role of randomness of a manual assembly line with walking workers on model validation | |
CN103853554A (zh) | 一种软件重构位置确定方法及装置 | |
CN109471798A (zh) | 一种音乐技能模块的自动化测试系统及其测试方法 | |
Kuhrmann et al. | A mapping study on method engineering: first results | |
Simperl et al. | Achieving maturity: the state of practice in ontology engineering in 2009 | |
Fan et al. | Ranking open source software based on crowd wisdom | |
CN109743203B (zh) | 一种基于量化信息流的分布式服务安全组合系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |