CN101620566A - 一种动态随机测试方法 - Google Patents

一种动态随机测试方法 Download PDF

Info

Publication number
CN101620566A
CN101620566A CN200910089623A CN200910089623A CN101620566A CN 101620566 A CN101620566 A CN 101620566A CN 200910089623 A CN200910089623 A CN 200910089623A CN 200910089623 A CN200910089623 A CN 200910089623A CN 101620566 A CN101620566 A CN 101620566A
Authority
CN
China
Prior art keywords
test
test case
epsiv
section
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.)
Pending
Application number
CN200910089623A
Other languages
English (en)
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 CN200910089623A priority Critical patent/CN101620566A/zh
Publication of CN101620566A publication Critical patent/CN101620566A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种动态随机测试方法,它包括下列步骤:(1)将测试用例或测试对象输入域划分为若干个等价类{C1,C2,…,Cm};(2)确定一个初始的测试剖面{p1,p2,…,pm},根据该剖面随机选择一个测试用例集合Ci,从Ci中随机选择一个测试用例并进行测试;(3)根据测试的结果,对测试剖面进行调整:若发现缺陷,则令pi=pi+ε,同时剔除发现的缺陷;若未发现缺陷,则令pi=pi-ε,ε是测试前给定的参数,同时对测试剖面其他元素进行相应修正使得pi≥0,i=1,2,…,m且;(4)根据调整后的测试剖面选择一个测试用例集合,从中随机选择测试用例进行测试;(5)再次根据测试的结果,对测试剖面进行调整,调整的规则同步骤(3);(6)依此类推,直到发现和剔除全部缺陷或满足其他测试终止条件。本发明原理简单、应用方便。

Description

一种动态随机测试方法
(一)所属技术领域
本发明涉及一种缺陷测试方法,特别是涉及一种动态随机测试方法。属于可靠性测试技术领域。
(二)背景技术
随机测试是在一个含有大量测试用例的测试用例集合中根据一个均匀或者非均匀的概率分布选择测试用例,进行测试,直到发现并剔除所有的缺陷。分类随机测试则是在任意一步测试中,从一个已知含有m个测试用例等价类的集合中根据某一种概率分布选择测试用例,这样把测试进行下去,直到剔除所有的缺陷。例如测试用例集合共含有m个等价类{C1,C2,...,Cm},其中第i个等价类含有ki个测试用例,分类随机测试首先从m个等价类中依据某一概率分布随机选择一个等价类,如依据均匀分布则每个等价类被选中的概率是
Figure G200910089623XD00011
其次从被选中的等价类中,根据均匀分布随机选择一个测试用例进行测试,假设第i类被选中,则第i类中每个测试用例被选中的概率是
Figure G200910089623XD00012
分类随机测试中选择测试用例等价类的随机概率分布被称为测试剖面,{p1,p2,...,pm},其中pi表示第i个等价类被选中的概率,且 Σ i = 1 m p i = 1 .
在现有测试技术中,随机测试(包括分类随机测试)仍然是主流的测试手段,在可靠性测试的各个阶段被广泛使用,但是由于其自身原理的限制,随机测试技术存在以下两个主要缺点:
(1)没有引入测试历史信息,大量的测试信息(比如,测试用例的有效性)没有用于指导下一步的测试行为;
(2)测试策略不会随着测试的进行而自动调整。由此,产生的结果是:
(1)随机测试技术缺乏对测试过程的改进,不能得到最有效的测试过程;
(2)随着测试的进行,测试对象发生变化时,随机测试技术不能及时进行调整来适应测试的需要。
而动态随机测试方法则是通过利用测试历史的反馈信息,对测试剖面在线地进行调整,从而优化测试用例的选择过程,更快地发现和剔除缺陷,提高测试的整体效率,提高检测性能的稳定性。
(三)发明内容
1、目的:本发明的目的是为了提供一种动态随机测试方法,该方法了克服现有技术的不足,它不仅可以提高缺陷检测效率,还可以提高缺陷检测性能的稳定性,而且原理简单、应用方便。
2、技术方案:
本发明的原理是:把测试用例或测试对象输入域划分为多个等价类,在测试过程中不断把历史测试信息反馈给测试过程,使得随着测试过程的进行可以对测试剖面进行在线的调整,并根据测试剖面确定下一步选择的测试用例等价类,在该等价类中选择一个测试用例作为被测对象的输入。
本发明的技术解决方案是:本发明一种动态随机测试方法,该方法具体步骤如下:
步骤一:将测试用例或测试对象输入域,根据某种分类原则,如按功能
模块、覆盖率和创建时间等,划分为m个等价类{C1,C2,...,Cm};
步骤二:确定一个初始的测试剖面{p1,p2,...,pm},根据该剖面随机地选择一个测试用例集合Ci,从Ci中随机选择一个测试用例,作为被测对象的输入,执行测试并检查被测对象的输出结果是否符合设计要求;步骤三:根据测试的结果,即有无发现缺陷,对测试剖面进行调整:
A.若发现缺陷,则令
p j = p j - &epsiv; m - 1 if p j &GreaterEqual; &epsiv; m - 1 0 if p j < &epsiv; m - 1 forj &NotEqual; i - - - ( 1 )
p i = 1 - &Sigma; j &NotEqual; i p j
同时剔除发现的缺陷;
其中,ε是测试剖面动态调整的参数;m是测试用例等价类个数;pj是除第i类外,其余各等价类的被选择概率,pi是上一步中被选择的等价类Ci在当前测试剖面中的被选择概率;
B.若没有发现缺陷,则令
p i = p i - &epsiv; if p i &GreaterEqual; &epsiv; 0 if p i < &epsiv;
p j = p j + &epsiv; m - 1 if p i &GreaterEqual; &epsiv; p j + p i m - 1 if p i < &epsiv; forj &NotEqual; i - - - ( 2 )
其中,ε是测试剖面动态调整的参数;m是测试用例等价类个数;pj是除第i类外,其余各等价类的被选择概率,pi是上一步中被选择的等价类Ci在当前测试剖面中的被选择概率;
步骤四:根据调整后的测试剖面选择一个测试用例集合,从中随机选择测试用例,并进行测试;
步骤五:再次根据测试的结果,即有无发现缺陷,对测试剖面进行调整,
调整的规则同步骤三:;
步骤六:依此类推,直到发现和剔除全部缺陷或者满足其他测试终止条件。
3、优点及功效:本发明与现有技术相比的优点:
(1)提高缺陷检测效率;
(2)提高检测性能的稳定性;
(3)相比其他测试技术,如反随机测试技术和自适应测试技术,计算
量小,原理简单,应用方便。
(四)附图说明
图1本发明动态随机测试方法流程方框示意图
图中符号说明如下:
其中,ε是测试剖面动态调整的参数;m是测试用例等价类个数;pj是除第i类外,其余各等价类的被选择概率,pi是上一步中被选择的等价类Ci在当前测试剖面中的被选择概率;
(五)具体实施方式
如图1所示,在测试过程中,以软件测试为例,包括软件可靠性增长测试,软件变异测试和软件可靠性评估过程,基于分类随机测试的基本方法,将测试用例集合划分成m个等价类,即{C1,C2,...,Cm},其中每个等价类被选择的概率由测试剖面{p1,p2,...,pm}决定,且 &Sigma; i = 1 m p i = 1 .
选择了测试用例等价类Ci后,假设Ci中有ki个测试用例,则随机地从Ci中选择一个测试用例进行测试,即每个测试用例被选中的概率是
Figure G200910089623XD00042
ε是测试剖面动态调整的参数,需要在测试进行前给定,该参数的选取会影响到测试的效率和测试性能的稳定性。除了选择固定的ε值,还可以选择相对值,即ε=pi×e%,其中pi是公式(1)和公式(2)中的参数,即上等价类Ci的被选择概率。
具体实施例子
以Space软件为例。Space软件是一个公认的典型软件测试对象,它是为欧洲航天局开发的一个矩阵描述语言(ADL)解释器,从文件中读取ADL描述语句并检查文件内容是否合乎语法规则。如果ADL文件解释正确,Space将输出一个矩阵数据文件,包含矩阵元素信息、位置、激励,否则将输出错误提示。Space软件包含9564行C语言代码,已知36个缺陷,每个缺陷有很多种表现形式。典型的比如,输入合法的ADL文件没有得到正确的结果或输入非法的ADL文件没有得到错误提示。13498个测试用例,一个测试用例为一个ADL文件。
本发明的实现平台是基于x86架构的计算机硬件环境,也可以推广到其他硬件体系架构,软件环境主要是Windows平台下的软件测试,也可以推广到Linux,Unix等其他平台。此例中测试的软件环境为Windows XP SP3,动态随机测试方法由.NET Framework和C#语言实现,被测对象SPACE由C语言实现,用于测试的计算机硬件配置为Intel Core 2 Duo 2.4G CPU,4G内存,300G硬盘。
本发明一种动态随机测试方法,该方法具体实施例步骤如下:
步骤一:确定动态随机测试方法的参数ε=0.05,把测试用例或软件输入域划分为4个等价类;
步骤二:确定初始测试剖面{p1=o.25,p2=o.25,p3=0.25,p4=0.25},根据测试剖面{p1,p2,p3,p4}选择一个测试用例等价类Ci,从Ci中随机选地择一个测试用例,即ADL文件,将该ADL文件输入SPACE软件进行测试;
步骤三:观察测试的结果,即有无发现缺陷,根据该结果对测试剖面进行如下调整:
假设发现缺陷,则令
p j = p j - 0.05 3 if p j &GreaterEqual; 0.05 3 0 if p j < 0.05 3 forj &NotEqual; i - - - ( 1 )
p i = 1 - &Sigma; j &NotEqual; i p j
假设没有发现缺陷,则令
p i = p i - 0.05 if p i &GreaterEqual; 0.05 0 if p i < 0.05
p j = p j + 0.05 3 if p i &GreaterEqual; 0.05 p j + p i 3 if p i < 0.05 forj &NotEqual; i - - - ( 2 )
,如果发现了缺陷,则剔除该缺陷;
步骤四:根据调整后的测试剖面选择一个测试用例等价类Ci,从Ci中随机选地择一个测试用例,即ADL文件,将该ADL文件输入SPACE软件进行测试;
步骤五:根据测试的结果,对测试剖面进行如步骤五所述的调整;如果没有发现缺陷,前往步骤四;如果发现缺陷,剔除缺陷;
步骤六:如果检测到指定的缺陷个数(在本实验中为36个)或测试步数等于于指定最大步数,则测试结束,否则前往步骤四。
其中,ε=0.05是测试剖面动态调整的参数;m=4是测试用例等价类个数;pj是除第i类外,其余各等价类的被选择概率,pi是上一步中被选择的等价类Ci在当前测试剖面中的被选择概率;
使用动态随机测试方法进行缺陷检测实验,对比随机测试,动态随机测试无论是检测效率(步数均值)还是检测性能的稳定性(方差)都明显优于后者,详见下表:
Figure G200910089623XD00071
其中
Figure G200910089623XD00072
表示50次重复实验测试实验中检测并剔除已知36个缺陷所需的平均测试用例数。D表示50次重复实验测试实验中检测并剔除已知36个缺陷所需的测试用例数的方差。
该技术不仅可应用于软件的测试过程,也能应用于其它领域的测试过程以提高测试效率。

Claims (1)

1、一种动态随机测试方法,其特征在于:该方法具体步骤如下:
步骤一:将测试用例根据分类原则,按功能模块、覆盖率和创建时间,划分为m个等价类即{C1,C2,...,Cm},其中,{C1,C2,...,Cm}分别表示m个测试用例等价类,m表示测试用例等价类个数;
步骤二:确定一个初始的测试剖面{p1,p2,...,pm},根据该剖面随机地选择一个测试用例集合Ci,从Ci中随机选择一个测试用例,作为被测对象的输入,执行测试并检查被测对象的输出结果是否符合设计要求;其中,{p1,p2,...,pm}表示初始测试剖面,Ci表示被选中的测试用例集合;
步骤三:根据测试的结果,即有无发现缺陷,对测试剖面进行调整:
A.若发现缺陷,则令
p j = p j - &epsiv; m - 1 if p j &GreaterEqual; &epsiv; m - 1 0 if p j < &epsiv; m - 1 forj &NotEqual; i - - - ( 1 )
p i = 1 - &Sigma; j &NotEqual; i p j
同时剔除发现的缺陷;
其中,ε是测试剖面动态调整的参数;m是测试用例等价类个数;pj是除第i类外,其余各等价类的被选择概率,pi是上一步中被选择的等价类Ci在当前测试剖面中的被选择概率;
B.若没有发现缺陷,则令
p i = p i - &epsiv; if p i &GreaterEqual; &epsiv; 0 if p i < &epsiv;
p j = p j + &epsiv; m - 1 if p i &GreaterEqual; &epsiv; p j + P i m - 1 if p i < &epsiv; forj &NotEqual; i - - - ( 2 )
其中,ε是测试剖面动态调整的参数;m是测试用例等价类个数;pj是除第i类外,其余各等价类的被选择概率,pi是上一步中被选择的等价类Ci在当前测试剖面中的被选择概率;
步骤四:根据调整后的测试剖面选择一个测试用例集合,从中随机选择测试用例,并进行测试;
步骤五:再次根据测试的结果,即有无发现缺陷,对测试剖面进行调整,调整的规则同步骤三;
步骤六:依此类推,直到发现和剔除全部缺陷及满足其他测试终止条件。
CN200910089623A 2009-07-23 2009-07-23 一种动态随机测试方法 Pending CN101620566A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910089623A CN101620566A (zh) 2009-07-23 2009-07-23 一种动态随机测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910089623A CN101620566A (zh) 2009-07-23 2009-07-23 一种动态随机测试方法

Publications (1)

Publication Number Publication Date
CN101620566A true CN101620566A (zh) 2010-01-06

Family

ID=41513813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910089623A Pending CN101620566A (zh) 2009-07-23 2009-07-23 一种动态随机测试方法

Country Status (1)

Country Link
CN (1) CN101620566A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103539A (zh) * 2011-03-11 2011-06-22 天津大学 基于z规格的测试用例生成方法
CN102736013A (zh) * 2011-04-12 2012-10-17 安凯(广州)微电子技术有限公司 一种SoC芯片的空闲状态测试方法、***及测试装置
CN103377104A (zh) * 2012-04-19 2013-10-30 腾讯科技(深圳)有限公司 测试方法及装置
CN103514094A (zh) * 2013-10-11 2014-01-15 上海富欣智能交通控制有限公司 基于灰盒的cpu在线测试方法
CN105138450A (zh) * 2015-07-31 2015-12-09 北京金山安全软件有限公司 软件稳定性测试方法及装置
CN105335379A (zh) * 2014-06-26 2016-02-17 国际商业机器公司 突变测试中对突变、测试用例、随机种子的组合排序的方法和设备
CN106155896A (zh) * 2015-04-14 2016-11-23 富士通株式会社 针对规则流的测试用例生成装置、方法和***
CN110162466A (zh) * 2019-04-19 2019-08-23 平安国际智慧城市科技股份有限公司 自动测试方法、装置、计算机设备和存储介质
CN110569158A (zh) * 2019-08-30 2019-12-13 东莞记忆存储科技有限公司 测试ssd随机场景下异常掉电的方法、装置及计算机设备
CN110674027A (zh) * 2019-08-16 2020-01-10 华东师范大学 面向p4编程语言的sdn数据平面软件一致性测试***及方法
CN110823226A (zh) * 2019-10-30 2020-02-21 北京航空航天大学 一种基于蜕变测试技术的无人机智能航路规划测试方法
CN111090585A (zh) * 2019-12-09 2020-05-01 中国科学院软件研究所 一种基于众测过程的众测任务关闭时间自动预测方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103539A (zh) * 2011-03-11 2011-06-22 天津大学 基于z规格的测试用例生成方法
CN102736013A (zh) * 2011-04-12 2012-10-17 安凯(广州)微电子技术有限公司 一种SoC芯片的空闲状态测试方法、***及测试装置
CN102736013B (zh) * 2011-04-12 2015-08-05 安凯(广州)微电子技术有限公司 一种SoC芯片的空闲状态测试方法、***及测试装置
CN103377104A (zh) * 2012-04-19 2013-10-30 腾讯科技(深圳)有限公司 测试方法及装置
CN103377104B (zh) * 2012-04-19 2017-04-12 腾讯科技(深圳)有限公司 测试方法及装置
CN103514094A (zh) * 2013-10-11 2014-01-15 上海富欣智能交通控制有限公司 基于灰盒的cpu在线测试方法
CN103514094B (zh) * 2013-10-11 2016-05-04 上海富欣智能交通控制有限公司 基于灰盒的cpu在线测试方法
US10614192B2 (en) 2014-06-26 2020-04-07 International Business Machines Corporation Ranking combinations of mutants, test cases and random seeds in mutation testing
CN105335379A (zh) * 2014-06-26 2016-02-17 国际商业机器公司 突变测试中对突变、测试用例、随机种子的组合排序的方法和设备
US9965580B2 (en) 2014-06-26 2018-05-08 Nternational Business Machines Corporation Ranking combinations of mutants, test cases and random seeds in mutation testing
CN105335379B (zh) * 2014-06-26 2018-11-02 国际商业机器公司 突变测试中对突变、测试用例、随机种子的组合排序的方法和设备
CN106155896A (zh) * 2015-04-14 2016-11-23 富士通株式会社 针对规则流的测试用例生成装置、方法和***
CN105138450A (zh) * 2015-07-31 2015-12-09 北京金山安全软件有限公司 软件稳定性测试方法及装置
CN110162466A (zh) * 2019-04-19 2019-08-23 平安国际智慧城市科技股份有限公司 自动测试方法、装置、计算机设备和存储介质
CN110674027A (zh) * 2019-08-16 2020-01-10 华东师范大学 面向p4编程语言的sdn数据平面软件一致性测试***及方法
CN110674027B (zh) * 2019-08-16 2021-07-27 华东师范大学 面向p4编程语言的sdn数据平面软件一致性测试***及方法
CN110569158A (zh) * 2019-08-30 2019-12-13 东莞记忆存储科技有限公司 测试ssd随机场景下异常掉电的方法、装置及计算机设备
CN110823226A (zh) * 2019-10-30 2020-02-21 北京航空航天大学 一种基于蜕变测试技术的无人机智能航路规划测试方法
CN110823226B (zh) * 2019-10-30 2021-04-30 北京航空航天大学 一种基于蜕变测试技术的无人机智能航路规划测试方法
CN111090585A (zh) * 2019-12-09 2020-05-01 中国科学院软件研究所 一种基于众测过程的众测任务关闭时间自动预测方法
CN111090585B (zh) * 2019-12-09 2021-06-01 中国科学院软件研究所 一种基于众测过程的众测任务关闭时间自动预测方法

Similar Documents

Publication Publication Date Title
CN101620566A (zh) 一种动态随机测试方法
CN110533631B (zh) 基于金字塔池化孪生网络的sar图像变化检测方法
CN108593260B (zh) 光缆线路故障定位和检测方法及终端设备
CN101871994B (zh) 多分数阶信息融合的模拟电路故障诊断方法
Lo et al. Efficient sensor fault detection using combinatorial group testing
CN105447323A (zh) 一种数据异常波动检测方法和装置
CN101231672A (zh) 基于改进型bp神经网络的模拟电路软故障诊断方法
CN105528288A (zh) 一种软件测试方法以及装置
CN101902470A (zh) 一种基于表单特征的Web安全漏洞动态检测方法
CN107545110B (zh) 一种动态应力加速寿命试验剖面编制方法
CN110298085A (zh) 基于XGBoost和随机森林算法的模拟电路故障诊断方法
CN106022710A (zh) 保险审核方法和装置
CN103366123A (zh) 基于缺陷分析的软件风险评估方法
CN111174370A (zh) 故障检测方法及装置、存储介质、电子装置
CN101271625A (zh) 集成支持向量机检测高速公路交通事件的方法
CN103902451A (zh) 一种智能电能表软件品质评价方法
CN106169124A (zh) ***级产品可靠性综合评估置信推断方法
CN110061789A (zh) 灰色关联分析与改进ds推理的电子设备故障诊断方法
CN107301285A (zh) 基于剩余寿命预测的非电子产品序贯验证试验方法
CN103940586B (zh) 中红外固体激光器的寿命检测方法
CN106776166A (zh) 一种RDMA模式下Ceph存储集群测试方法及***
CN103065041A (zh) 一种冗余数据检验方法
CN108053093A (zh) 一种基于平均影响值数据变换的k-近邻故障诊断方法
CN102982231A (zh) 软件可信度的定量计算方法
CN112397404B (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100106