CN101477490A - 基于复杂网络面向对象集成测试的方法 - Google Patents
基于复杂网络面向对象集成测试的方法 Download PDFInfo
- Publication number
- CN101477490A CN101477490A CNA2009100459844A CN200910045984A CN101477490A CN 101477490 A CN101477490 A CN 101477490A CN A2009100459844 A CNA2009100459844 A CN A2009100459844A CN 200910045984 A CN200910045984 A CN 200910045984A CN 101477490 A CN101477490 A CN 101477490A
- Authority
- CN
- China
- Prior art keywords
- class
- degree
- test
- software
- complex network
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
基于复杂网络面向对象集成测试的方法。1)采用统一建模语言创建被测软件的系统结构模型,并将UML类图表示为一个软件网络G=(V,E);2)遍历整个软件网络,统计每个类依赖的类以及该类的入度和出度,并且记载在一个四元组中;3)首先集中测试入度大而出度为0的类;4)接着测试使用该类的依赖类,并且每一次测试不增加类或者增加一个新类;沿着依赖类层次的测试序列重复执行步骤4),使先测试的类优先于后测试的类,一直持续到构造完整被测软件的系统。本发明将复杂网络与面向对象软件测试结合起来,结合面向对象软件的内部拓扑结构特点,对面向对象程序进行集成测试,优化了测试用例,减少测试工作量。
Description
技术领域
本发明属于计算机软件测试技术领域,特别涉及一种基于复杂网络测试的方法。
背景技术
复杂网络是当前研究的热点,自然界中存在的大量复杂系统都可以通过形形色色的网络加以描述。如:社会关系网、电力网络、互联网、交通网等等。最近研究表明,大型软件系统内部结构并不是随机的,也具有小世界效应和无标度特性。软件测试作为软件质量保证的一个重要手段,在国内外受到广泛重视并已进行了许多研究。进行面向对象测试的一个重要方面就是确定测试顺序,选择有效的测试用例以达到测试充分性准则的要求。现有技术中以下几种测试方法:
1、从对象行为的观点出发,用灰盒分析确定最重要的路径和交互,制定出测试层次;
2、通过基于用户用例的结构化模型将软件逐步集成;
3、通过分析类与类之间相互作用关系,产生出类间集成测试的顺序,使桩模块的数目最小化;
4、通过基于模型的面向对象形式规格说明推导测试用例的方法和技术。
上述这些研究为面向对象软件测试提供了许多好的方法,但是这些研究很少从面向对象软件的内部拓扑结构特点出发,忽略了大型软件系统的复杂网络特性。
发明内容
本发明的目的在于,提供一种基于复杂网络面向对象集成测试的方法。该方法将复杂网络与面向对象软件测试结合起来,根据目前新兴的复杂网络研究成果,结合面向对象软件的内部拓扑结构特点,对面向对象程序进行集成测试。
本发明采用如下技术方案:
本发明采用黑盒测试方法,用统一建模语言(Unified Modeling Language,UML)创建系统的结构模型,通过分析类(对象)之间的交互复杂性来确定测试的顺序,用较少的测试用例达到较高的覆盖率。
对象图表示了程序运行时创建的对象实例以及它们之间的关系,它是面向对象程序执行时的“骨架”。因为图中每个结点代表一个对象,当程序运行时对象图会不断变化。程序刚运行时只有几个对象,随着程序的运行,会创建更多的对象,也会销毁不再需要的对象。图的结构(对象之间的连接)也会随之改变。对象是类的实例,类是创建对象的模板,类图在软件的整个生命周期都是存在的,因此本发明以类图来分析系统的交互复杂性。类之间的交互复杂性可以通过度分布刻画,如入度大的结点(类)说明其重用度大,而出度大的结点(类)往往比较复杂;无标度网络一个特别有用的方面是它的抗损坏的鲁棒性和脆弱性。因为大多数结点与其它结点有较少的连接,摧毁它们对其它的结点没有什么影响。另一方面,一小部分的程度中心性结点(HUB类),又称为HUB结点(类),被高度连接,摧毁它们的灾难性是巨大的。基于软件复杂网络的这个特点,本发明具体采用的测试方法包括如下步骤:
1)采用统一建模语言(UML)创建被测软件的系统结构模型,并将UML类图表示为一个软件网络G=(V,E),其中G是一个连通有向图,V是结点集,代表类;E是边集,代表类之间的关系;
2)遍历整个软件网络,统计每个类依赖的类以及该类的入度和出度,并且记载在一个四元组(C_Test,C_Dep,In_Degree,Out_Degree)中;其中,C_Test代表要统计的类,C_Dep代表该统计类所依赖的类集,In_Degree代表指向该类的引用,Out_Degree代表离开该类的引用;
3)首先集中测试In_Degree大而Out_Degree为0的类,这些类是重用度大而又不依赖于其他类的独立类,先测重用度大的独立类可以在保证测试覆盖率的同时减少桩模块的数量;
4)接着测试使用该类的依赖类C_Dep,依赖类C_Dep是一个类集,原则上可以并行测试,但是本发明在并行测试依赖类时同样优先选择测试In_Degree大而Out_Degree较小的类,并且每一次测试最多增加一个新类;沿着依赖类层次的测试序列重复执行步骤4),使先测试的类优先于后测试的类,一直持续到构造完整被测软件的系统。通过先测试这些HUB类,接着再处理依赖它的类。这样可以优化测试用例,减少测试工作量。
本发明在不降低原有覆盖度的前提下,可以减少桩模块的数量,提高测试效率。
以下结合附图及实施例进一步说明本发明。
附图说明
图1为本发明实施例中的某系统类图。
具体实施方式
表1是系统类图中每个类的四元组。
一种基于复杂网络面向对象集成测试的方法,包括以下步骤:
1)采用统一建模语言(Unified Modeling Language,UML)创建被测软件的系统结构模型,并将UML类图表示为一个软件网络G=(V,E),其中G是一个连通有向图,V是结点集,代表类;E是边集,代表类之间的关系;
2)遍历整个软件网络,统计每个类依赖的类以及该类的入度和出度,并且记载在一个四元组(C_Test,C_Dep,In_Degree,Out_Degree)中;其中,C_Test代表要统计的类,C_Dep代表该统计类所依赖的类集,In_Degree代表指向该类的引用,Out_Degree代表离开该类的引用;
3)首先集中测试In_Degree大而Out_Degree为0的类;
4)接着测试使用该类的依赖类C_Dep,并且每一次测试最多增加一个新类;沿着依赖类层次的测试序列重复执行步骤4),使先测试的类优先于后测试的类,一直持续到构造完整被测软件的系统。其中,所述步骤4)采用并行的测试方式。并且在并行测试依赖类C_Dep时,优先选择测试In_Degree大而Out_Degree小的类。
以下以一实例进行说明。
假定采用UML语言创建被测软件的系统结构模型,其UML类图如图1所示。图中类A与类C、类D是聚合关系,其中类A是部分,类C、类D是整体,整体依赖于部分;类G与类D是泛化关系,D是基类,G是子类;类C与类B是依赖关系,C依赖于B;类B与类K、L、M是泛化关系,类K、L、M是类B的子类;类B、类S与类T是关联关系,类B、类S依赖于类T;类T与类F也是关联关系,类T还依赖于类F;类F、类E与类A是关联关系,类F、类E依赖于类A,同时类E还依赖于类F。
遍历整个类图网络,首先得出每个类的四元组(C_Test,C_Dep,In_Degree,Out_Degree),如下表所示。
C_Test | C_Dep | In_Degree | Out_Degree |
A | Φ | 4 | 0 |
F | {A} | 2 | 1 |
E | {A,F} | 0 | 2 |
C | {A,B} | 0 | 2 |
D | {A} | 1 | 1 |
T | {B,S} | 2 | 1 |
B | {C,K,L,M} | 4 | 1 |
S | Φ | 0 | 1 |
G | Φ | 0 | 1 |
K | Φ | 0 | 1 |
L | Φ | 0 | 1 |
M | Φ | 0 | 1 |
从表1可知,类A是In_Degree大而Out_Degree为0的独立类,应该最先测试;类C、D、E、F依赖于A,但是类C还需依赖于类B,所以类C还不能测试;类D、E、F中类F的In_Degree最大,而且类E依赖于类F,因此先测F,再测D,其次测E;再测F的依赖类T,D的依赖类G;T的依赖类是B和S,由于类B的In_Degree大于类S的In_Degree,因此先测B,再测S;类C,K,L,M依赖于B,且In_Degree都相同,可以并行测试。于是得到的测试顺序是{A->F->D->E->T->G->B->S->{C,K,L,M}}。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在使本领域内的技术人员能够了解本发明的内容并据以实施,当不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。
Claims (3)
1、一种基于复杂网络面向对象集成测试的方法,其特征在于包括以下步骤:
1)采用统一建模语言创建被测软件的系统结构模型,并将UML类图表示为一个软件网络G=(V,E),其中G是一个连通有向图,V是结点集,代表类;E是边集,代表类之间的关系;
2)遍历整个软件网络,统计每个类依赖的类以及该类的入度和出度,并且记载在一个四元组(C_Test,C_Dep,In_Degree,Out_Degree)中;其中,C_Test代表要统计的类,C_Dep代表该统计类所依赖的类集,In_Degree代表指向该类的引用,Out_Degree代表离开该类的引用;
3)首先集中测试In_Degree大而Out_Degree为0的类;
4)接着测试使用该类的依赖类C_Dep,并且每一次测试不增加类或者增加一个新类;沿着依赖类层次的测试序列重复执行步骤4),使先测试的类优先于后测试的类,一直持续到构造完整被测软件的系统。
2、根据权利要求1基于复杂网络面向对象集成测试的方法,其特征在于:
所述步骤4)采用并行的测试方式。
3、根据权利要求2基于复杂网络面向对象集成测试的方法,其特征在于:
在并行测试依赖类C_Dep时,优先选择测试In_Degree大而Out_Degree小的类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100459844A CN101477490A (zh) | 2009-01-23 | 2009-01-23 | 基于复杂网络面向对象集成测试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100459844A CN101477490A (zh) | 2009-01-23 | 2009-01-23 | 基于复杂网络面向对象集成测试的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101477490A true CN101477490A (zh) | 2009-07-08 |
Family
ID=40838211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100459844A Pending CN101477490A (zh) | 2009-01-23 | 2009-01-23 | 基于复杂网络面向对象集成测试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101477490A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645104B (zh) * | 2009-09-04 | 2011-05-25 | 中国科学技术大学 | 复杂网络建模方法 |
CN102289408A (zh) * | 2011-09-08 | 2011-12-21 | 武汉大学 | 一种基于错误传播网络的回归测试用例排序方法 |
CN102377609A (zh) * | 2010-08-17 | 2012-03-14 | 盛科网络(苏州)有限公司 | 平台无关的自动化测试用例及虚拟测试仪器 |
CN103593279A (zh) * | 2012-08-13 | 2014-02-19 | 百度在线网络技术(北京)有限公司 | 一种系统测试的方法和装置 |
CN103593222A (zh) * | 2013-09-29 | 2014-02-19 | 中国人民解放军第二炮兵装备研究院科研试验中心 | 一种逆向提取Java软件程序类图的方法 |
CN105068928A (zh) * | 2015-08-04 | 2015-11-18 | 中国人民解放军理工大学 | 一种基于复杂网络理论的软件测试用例生成方法 |
CN105786701A (zh) * | 2016-01-18 | 2016-07-20 | 龙测科技(北京)有限公司 | 一种手机app的并行测试方法及系统 |
WO2017020721A1 (zh) * | 2015-08-04 | 2017-02-09 | 阿里巴巴集团控股有限公司 | 业务功能的测试方法和装置 |
-
2009
- 2009-01-23 CN CNA2009100459844A patent/CN101477490A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645104B (zh) * | 2009-09-04 | 2011-05-25 | 中国科学技术大学 | 复杂网络建模方法 |
CN102377609A (zh) * | 2010-08-17 | 2012-03-14 | 盛科网络(苏州)有限公司 | 平台无关的自动化测试用例及虚拟测试仪器 |
CN102289408A (zh) * | 2011-09-08 | 2011-12-21 | 武汉大学 | 一种基于错误传播网络的回归测试用例排序方法 |
CN102289408B (zh) * | 2011-09-08 | 2013-12-18 | 武汉大学 | 一种基于错误传播网络的回归测试用例排序方法 |
CN103593279A (zh) * | 2012-08-13 | 2014-02-19 | 百度在线网络技术(北京)有限公司 | 一种系统测试的方法和装置 |
CN103593279B (zh) * | 2012-08-13 | 2018-02-02 | 百度在线网络技术(北京)有限公司 | 一种系统测试的方法和装置 |
CN103593222B (zh) * | 2013-09-29 | 2016-08-10 | 中国人民解放军第二炮兵装备研究院科研试验中心 | 一种逆向提取Java软件程序类图的方法 |
CN103593222A (zh) * | 2013-09-29 | 2014-02-19 | 中国人民解放军第二炮兵装备研究院科研试验中心 | 一种逆向提取Java软件程序类图的方法 |
CN105068928A (zh) * | 2015-08-04 | 2015-11-18 | 中国人民解放军理工大学 | 一种基于复杂网络理论的软件测试用例生成方法 |
WO2017020721A1 (zh) * | 2015-08-04 | 2017-02-09 | 阿里巴巴集团控股有限公司 | 业务功能的测试方法和装置 |
CN106708719A (zh) * | 2015-08-04 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 业务功能的测试方法和装置 |
CN106708719B (zh) * | 2015-08-04 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 业务功能的测试方法和装置 |
CN105786701A (zh) * | 2016-01-18 | 2016-07-20 | 龙测科技(北京)有限公司 | 一种手机app的并行测试方法及系统 |
CN105786701B (zh) * | 2016-01-18 | 2019-07-26 | 龙测科技(北京)有限公司 | 一种手机app的并行测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101477490A (zh) | 基于复杂网络面向对象集成测试的方法 | |
US11233709B2 (en) | Method and system for monitoring performance of an application system | |
US8732302B2 (en) | Method and system for monitoring performance of an application system | |
CN106095677A (zh) | 基于Robot Framework实现的RESTful Webservice接口自动化测试方法 | |
Ölveczky et al. | The real-time maude tool | |
Wen et al. | Mining invisible tasks from event logs | |
CN103873293B (zh) | 一种健康探测装置及方法 | |
Bölöni et al. | Yaes: a modular simulator for mobile networks | |
CN105049485A (zh) | 一种面向实时视频处理的负载感知云计算系统 | |
Engström | Regression test selection and product line system testing | |
CN107679107A (zh) | 一种基于图数据库的电网设备可达性查询方法及系统 | |
CN109426612B (zh) | 一种基于智能机器学习的自动化用例开发系统 | |
CN103617493B (zh) | 一种任务处理方法及装置 | |
CN105703948A (zh) | 基于fpga的片上网络通信结构的仿真评估平台 | |
Tripathi et al. | Improving software quality based on relationship among the change proneness and object oriented metrics | |
Wang et al. | Transplantation of data mining algorithms to cloud computing platform when dealing big data | |
Wang et al. | An evolutionary approach based on ant colony system to system-level fault diagnosis | |
Liu et al. | Classifying class and finding community in UML metamodel network | |
Khan et al. | Applying process mining in SOA environments | |
Madsen | Unit testing using design by contract and equivalence partitions | |
Bawahir et al. | Data and Cost handling Techniques for Software Quality Prediction Through Clustering | |
Hu et al. | Mining of flexible manufacturing system using work event logs and petri nets | |
Taiping et al. | Modeling and Performance Analysis of Manufacturing Execution System Based on Petri Net | |
Yuan et al. | The new approach of applying DSM to topology | |
Meng et al. | Research on Energy Consumption Analysis System of Large Buildings Based on Big Data Monitoring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090708 |