CN1746861A - 软件动态聚类测试方法 - Google Patents

软件动态聚类测试方法 Download PDF

Info

Publication number
CN1746861A
CN1746861A CN 200410009530 CN200410009530A CN1746861A CN 1746861 A CN1746861 A CN 1746861A CN 200410009530 CN200410009530 CN 200410009530 CN 200410009530 A CN200410009530 A CN 200410009530A CN 1746861 A CN1746861 A CN 1746861A
Authority
CN
China
Prior art keywords
class
test
type
test case
random
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
Application number
CN 200410009530
Other languages
English (en)
Other versions
CN100407161C (zh
Inventor
蔡开元
景涛
白成刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Beijing University of Aeronautics and Astronautics
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2004100095309A priority Critical patent/CN100407161C/zh
Publication of CN1746861A publication Critical patent/CN1746861A/zh
Application granted granted Critical
Publication of CN100407161C publication Critical patent/CN100407161C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

软件动态聚类测试方法,包括下列步骤:(1)划分测试用例库为3类,第0类称为无效类,第1类为初始类,第2类称为有效类。开始时所有测试用例在第1类,其它两类均为空;(2)如果第2类不为空,则从第2类中随机选取一个测试用例进行测试,否则从第1类中随机选取一个测试用例进行测试;(3)如果从第I类(I=1,2)中选出的测试用例发现缺陷,则把这个测试用例放入第2类;否则将其放入第I-1类,如果I-1<0则放入第0类;(4)如果测试用例发现一个缺陷就立即剔除这个缺陷,如果测试用例发现多个缺陷,则随机选取一个缺陷剔除;(5)如果所有缺陷均已剔除或到达规定的测试步数或满足其它测试停止准则就停止测试,否则转第(2)步。本发明能够解决分类测试中分类难以确定的问题,又具有随机测试的简便,对于一大类计算型软件都能起到很好的效果。

Description

软件动态聚类测试方法
所属技术领域
本发明涉及一种软件分类测试方法,特别是软件动态聚类测试方法。
背景技术
随机测试是一种黑箱测试技术,属于分类测试的一种,实现简单但缺陷检测效率往往不高。软件分类测试是一种广泛使用的测试技术。在E.J.Weyuker,B.Jeng,“Analyzing Partition Testing Strategies”,IEEETransactions on Software Engineering,Vol.17,No.4,1991,pp703-711.中Weyuker等认为从输入域被划分的事实来看,语句覆盖测试、分支覆盖测试、路径覆盖测试、数据流测试、变异测试等都可以看作分类测试。极端情况下穷举测试可以看成每个测试用例是一个单独的输入域的分类测试,而随机测试可以看成只有一个输入域的分类测试。
关于分类测试的效率已有很多研究。J.W.Duran,S.C.Ntafos,“Anevaluation of random testing”,IEEE Transactions on Software Engineering,Vol.SE-10,1984.7,pp438-444.,和R.Hamlet,R.Taylor,“Partition testing doesnot inspire confidence”,in Proceedings of 2nd Workshop on Software Testing,Verification and Analysis,1988.7,pp206-215从仿真和实验角度比较了分类测试与随机测试的效果,E.J.Weyuker,B.Jeng,“Analyzing Partition TestingStrategies”,IEEE Transactions on Software Engineering,Vol.17,No.4,1991,pp703-711.和T.Y.Chen,Y.T.Yu,“On the Relationship Between Partition andRandom Testing”,IEEE Transactions on Software Engineering,Vol.20,No.12,1994,pp977-980.从数学分析的角度分析了分类测试的能力。
设计分类测试的难点在于如何划分输入域。如果分类划分不当,不但费时费力,还会降低测试效率。而随机测试虽然实现简单但缺陷检测效率往往不高。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种软件动态聚类测试方法,该方法从实践经验出发给出了一种动态聚类的测试策略,不但分类方法简单,而且实验显示有助于提高测试效率。
本发明的技术解决方案是:软件动态聚类测试方法,其特点在于:假定在软件测试过程中满足单个测试用例有可能检测到多个不同的软件缺陷,则动态聚类测试的步骤为:
(1)划分测试用例库为3类,第0类称为无效类,第1类为初始类,第2类称为有效类,开始时所有测试用例在第1类,其它两类均为空;
(2)如果第2类不为空,则从第2类中随机选取一个测试用例进行测试,否则从第1类中随机选取一个测试用例进行测试;
(3)如果从第I类(I=1,2)中选出的测试用例发现缺陷,则把这个测试用例放入第2类;否则将其放入第I-1类,如果I-1<0则放入第0类;
(4)如果测试用例发现一个缺陷就立即剔除这个缺陷,如果测试用例发现多个缺陷,则随机选取一个缺陷剔除;
(5)如果所有缺陷均已剔除或到达规定的测试步数或满足其它测试停止准则就停止测试,否则转第(2)步。
本发明与现有技术相比的优点在于:本发明能够解决分类测试中分类难以确定的问题,又具有随机测试的简便,对于一大类计算型软件都能起到很好的效果。
随机测试是测试方法的基准,通常一种新的测试方法都会与随机测试相比较来说明自己的测试能力。为说明动态聚类方法的效果,定义随机测试策略的测试步骤:
(1)从测试用例库中按照均匀分布随机选取一个测试用例进行测试;
(2)如果这个测试用例发现一个缺陷就立即剔除这个缺陷,如果这个测试用例发现多个缺陷,则随机选取一个缺陷剔除;
(3)将测试用例放回测试用例库;(4)如果所有缺陷均已剔除或到达规定的测试步数就停止测试,否则转(1)。
假定被测软件P只有1个缺陷,检测率为θ,测试用例总数为d,能触发缺陷的测试用例数目为m, θ = m d . 随机测试方法在前n步(1<n<d-m)测试中检测到这个缺陷的概率为:
Pr random ( n ) = Σ i = 1 n m d × ( 1 - m d ) n - 1
而动态聚类测试方法在前n步测试中检测到这个缺陷的概率为:
Pr dynamic ( n ) = m d ( 1 + d - m d - 1 + d - m d - 1 · d - 1 - m d - 2 + K )
容易证明Prdynamic(n)>Prrandom(n),这表明在只有一个缺陷时动态聚类策略比纯随机策略更容易发现缺陷。
实验可以证明在软件中含有多个缺陷的情况下,动态聚类与随机测试相比,剔除所有缺陷的总步数的均值和均方差也具有明显优势。
附图说明
图1为本发明动态聚类测试方法示意图;
图2为发明测试用例库的分类示意图。
具体实施方式
假定被测软件含有若干个缺陷,通常测试前这些缺陷是未知的。假定针对这个软件已经有一个测试用例库,可以对软件进行黑箱测试。可以从用例库中选出测试用例作为输入给被测软件,并得到输出结果。假定能够判断输出是否正确,如果输出有错误则能够定位导致错误的源程序位置,即能够确定缺陷位置,并用一段正确的代码来替代有缺陷的代码,即剔除缺陷。
开始测试前把测试用例库划分为3类,第0类为无效类,第1类为初始类,第2类为有效类。开始时所有测试用例在第1类,其它两类均为空;测试时如果第2类不为空,则从第2类中随机选取一个测试用例进行测试,否则从第1类中随机选取一个测试用例进行测试;如图1所示;如果从第I类(I=1,2)中选出的测试用例发现缺陷,则把这个测试用例放入第2类;否则将其放入第I-1类,如果I-1<0则放入第0类,如图2所示;如果测试用例发现一个缺陷就立即剔除这个缺陷,如果测试用例发现多个缺陷,则随机选取一个缺陷剔除;如果所有缺陷均已剔除或到达规定的测试步数或者满足其它测试停止准则就停止测试,否则继续测试。
具体实施例
space软件是为欧洲航天局开发的一个矩阵描述语言(ADL)解释器,从文件中读取ADL描述语句并检查文件内容是否合乎语法规则。如果ADL文件正确,Space将输出一个矩阵数据文件,包含矩阵元素信息、位置、激励,否则将输出错误提示。space软件包含9564行C语言代码,36个缺陷,13498个测试用例,是一个公认的典型测试对象。space软件有两个版本,测试版本(在每个缺陷前设置了bool变量,可以通过变量值控制执行有缺陷代码或正确代码,达到打开或关闭缺陷的目的)和对照版本(已剔除了全部缺陷)。同一个输入分别送给测试版本与对照版本执行,如果输出不同就认为发现缺陷,随机关闭一个经过的缺陷作为剔除一个缺陷。测试开始条件是36个缺陷全部打开,结束条件是剔除全部缺陷。采用本发明的动态聚类测试开始时初始类包含整个测试用例库13498个测试用例。随机选出一个进行测试,如果发现缺陷就剔除,并用这个测试用例继续测试,否则不再使用这个测试用例。编程时通过动态数组来记录有效类、无效类和初始类分别包含哪些测试用例。从开始测试到剔除全部缺陷作为一次测试,分别使用随机测试和动态聚类测试进行400次测试,考察剔除全部36个缺陷所花费的测试步数,动态聚类比随即测试均值提高31.73%,均方差提高19.69%。在整个测试过程中动态聚类方法均占有明显优势。

Claims (1)

1、软件动态聚类测试方法,其特征在于按下列步骤进行测试:
(1)划分测试用例库为3类,第0类称为无效类,第1类为初始类,第2类称为有效类,开始时所有测试用例在第1类,其它两类均为空;
(2)如果第2类不为空,则从第2类中随机选取一个测试用例进行测试,否则从第1类中随机选取一个测试用例进行测试;
(3)如果从第I类(I=1,2)中选出的测试用例发现缺陷,则把这个测试用例放入第2类;否则将其放入第I-1类,如果I-1<0则放入第0类;
(4)如果测试用例发现一个缺陷就立即剔除这个缺陷,如果测试用例发现多个缺陷,则随机选取一个缺陷剔除;
(5)如果所有缺陷均已剔除或到达规定的测试步数就停止测试,否则转第(2)步。
CN2004100095309A 2004-09-09 2004-09-09 软件动态聚类测试方法 Expired - Fee Related CN100407161C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2004100095309A CN100407161C (zh) 2004-09-09 2004-09-09 软件动态聚类测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2004100095309A CN100407161C (zh) 2004-09-09 2004-09-09 软件动态聚类测试方法

Publications (2)

Publication Number Publication Date
CN1746861A true CN1746861A (zh) 2006-03-15
CN100407161C CN100407161C (zh) 2008-07-30

Family

ID=36166405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100095309A Expired - Fee Related CN100407161C (zh) 2004-09-09 2004-09-09 软件动态聚类测试方法

Country Status (1)

Country Link
CN (1) CN100407161C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814055A (zh) * 2010-04-06 2010-08-25 南京大学 一种测试用例聚类取样方法
CN101866316A (zh) * 2010-06-23 2010-10-20 南京大学 一种基于相对冗余测试集约简的软件缺陷定位方法
CN101986281A (zh) * 2010-10-26 2011-03-16 中国科学院软件研究所 一种多参量软件测试方法
CN101859274B (zh) * 2009-04-07 2013-06-05 西门子(中国)有限公司 一种进行模糊测试的方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235024A (ja) * 1995-02-28 1996-09-13 Toshiba Corp ソフトウェアテスト自動化装置
CN1115628C (zh) * 1999-09-30 2003-07-23 深圳市中兴通讯股份有限公司 一种软件模拟测试方法
US6675134B2 (en) * 2001-03-15 2004-01-06 Cerebrus Solutions Ltd. Performance assessment of data classifiers
US20020133752A1 (en) * 2001-03-19 2002-09-19 Wesley Hand Component/web service operational profile auto-sequencing
CN1310150C (zh) * 2002-11-21 2007-04-11 中兴通讯股份有限公司 一种嵌入式软件测试方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859274B (zh) * 2009-04-07 2013-06-05 西门子(中国)有限公司 一种进行模糊测试的方法及系统
CN101814055A (zh) * 2010-04-06 2010-08-25 南京大学 一种测试用例聚类取样方法
CN101814055B (zh) * 2010-04-06 2012-07-25 南京大学 一种测试用例聚类取样方法
CN101866316A (zh) * 2010-06-23 2010-10-20 南京大学 一种基于相对冗余测试集约简的软件缺陷定位方法
CN101986281A (zh) * 2010-10-26 2011-03-16 中国科学院软件研究所 一种多参量软件测试方法

Also Published As

Publication number Publication date
CN100407161C (zh) 2008-07-30

Similar Documents

Publication Publication Date Title
US5157668A (en) Method and apparatus for locating faults in electronic units
CN113792825A (zh) 一种用电信息采集设备故障分类模型训练方法及装置
US8086916B2 (en) System and method for running test and redundancy analysis in parallel
CN102063374A (zh) 一种使用半监督信息进行聚类的回归测试用例选择方法
Asrafi et al. On testing effectiveness of metamorphic relations: A case study
Fioravanti et al. A study on fault-proneness detection of object-oriented systems
CN111398798A (zh) 基于振动信号区间特征提取的断路器储能状态辨识方法
CN102622295B (zh) 一种基于谓词执行信息分析的自适应软件缺陷定位方法
Bodhe et al. Reduction of diagnostic fail data volume and tester time using a dynamic N-cover algorithm
CN1746861A (zh) 软件动态聚类测试方法
CN117630800A (zh) 一种电能表自动检定装置故障诊断方法及系统
CN111580852B (zh) 一种软件变更影响范围的识别方法及系统
Wojcicki et al. An iterative empirical strategy for the systematic selection of a combination of verification and validation technologies
Kim et al. Kinematic focus point method for particle mass measurements in missing energy events
Fang et al. Adaptive test pattern reordering for diagnosis using k-nearest neighbors
Chillarige et al. High throughput multiple device diagnosis system
CN115308538B (zh) 基于yolov5的配电网故障定位方法、系统、终端及存储介质
CN114707507B (zh) 一种基于人工智能算法的清单信息检测方法及装置
CN106485049A (zh) 一种基于蒙特卡洛交叉验证的nirs异常样本的检测方法
Lipke Further Study of the Normality of CPI and SPI (t)
CN106407104A (zh) 一种用于检测与内存空间释放相关的缺陷的方法及系统
CN1746862A (zh) 软件关联缺陷检测方法
CN113434408B (zh) 一种基于测试预言的单元测试用例排序方法
Scheibler et al. Improving test pattern generation in presence of unknown values beyond restricted symbolic logic
CN111274129A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080730

Termination date: 20150909

EXPY Termination of patent right or utility model