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

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

Info

Publication number
CN100407161C
CN100407161C CN2004100095309A CN200410009530A CN100407161C CN 100407161 C CN100407161 C CN 100407161C CN 2004100095309 A CN2004100095309 A CN 2004100095309A CN 200410009530 A CN200410009530 A CN 200410009530A CN 100407161 C CN100407161 C CN 100407161C
Authority
CN
China
Prior art keywords
test
type
class
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.)
Expired - Fee Related
Application number
CN2004100095309A
Other languages
English (en)
Other versions
CN1746861A (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
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 testingdoesnot 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.121994,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 )
容易证明Pdynamic(n)>Prandom(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 CN1746861A (zh) 2006-03-15
CN100407161C true 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)

Families Citing this family (4)

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

Citations (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 ソフトウェアテスト自動化装置
US20020133752A1 (en) * 2001-03-19 2002-09-19 Wesley Hand Component/web service operational profile auto-sequencing
CN1115628C (zh) * 1999-09-30 2003-07-23 深圳市中兴通讯股份有限公司 一种软件模拟测试方法
CN1503136A (zh) * 2002-11-21 2004-06-09 深圳市中兴通讯股份有限公司 一种嵌入式软件测试方法
US20040120488A1 (en) * 2001-03-15 2004-06-24 Cerebrus Solutions Ltd. Performance assessment of data classifiers

Patent Citations (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 深圳市中兴通讯股份有限公司 一种软件模拟测试方法
US20040120488A1 (en) * 2001-03-15 2004-06-24 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
CN1503136A (zh) * 2002-11-21 2004-06-09 深圳市中兴通讯股份有限公司 一种嵌入式软件测试方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Analyzing partition testing strategies. Elaine J. Weyuker, Bingchiang Jeng.IEEE Transaction on Software Engineering,Vol.17 No.4. 1991
Analyzing partition testing strategies. Elaine J. Weyuker, Bingchiang Jeng.IEEE Transaction on Software Engineering,Vol.17 No.4. 1991 *
面向嵌入式火控软件的划分测试设计. 万琳,宫云战.火力与指挥控制,第27卷第1期. 2002
面向嵌入式火控软件的划分测试设计. 万琳,宫云战.火力与指挥控制,第27卷第1期. 2002 *

Also Published As

Publication number Publication date
CN1746861A (zh) 2006-03-15

Similar Documents

Publication Publication Date Title
CN102063374A (zh) 一种使用半监督信息进行聚类的回归测试用例选择方法
CN101866317A (zh) 一种基于聚类分析的回归测试用例选择方法
CN101620566A (zh) 一种动态随机测试方法
CN106546278B (zh) 验证核安全级仪控平台安全失效率的统计测试装置及方法
CN101871994A (zh) 多分数阶信息融合的模拟电路故障诊断方法
CN109344085A (zh) 一种分析卫星测试数据的方法和系统
CN100407161C (zh) 软件动态聚类测试方法
US10101388B2 (en) Method for enhanced semiconductor product diagnostic fail signature detection
CN102622295B (zh) 一种基于谓词执行信息分析的自适应软件缺陷定位方法
Wang et al. Machine learning-based volume diagnosis
CN104574179A (zh) 银行卡资金清算平台的复核验证系统和复核验证方法
Fang et al. Adaptive test pattern reordering for diagnosis using k-nearest neighbors
US20080320430A1 (en) Spare Gate Array Cell Distribution Analysis
Pomeranz et al. Location of stuck-at faults and bridging faults based on circuit partitioning
CN106407104A (zh) 一种用于检测与内存空间释放相关的缺陷的方法及系统
Scheibler et al. Improving test pattern generation in presence of unknown values beyond restricted symbolic logic
CN106844193A (zh) 一种嵌入式模块交叉测试的系统化设计方法
Pomeranz et al. On the Saturation of $ n $-Detection Test Generation by Different Definitions With Increased $ n$
CN102708376A (zh) 一种实现基于单源信息融合的组合分类器的系统及方法
CN102831065B (zh) 一种面向巧合一致性问题的统计学软件缺陷定位方法
CN113434408B (zh) 一种基于测试预言的单元测试用例排序方法
CN112527790B (zh) 一种基于loo-cv验证的交叉核验方法
Yu et al. A study on a path-based strategy for selecting black-box generated test cases
CN111161126B (zh) 一种基于gpu的并行进化算法的可靠性评估方法
Pomeranz et al. Fault location based on circuit partitioning

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