- 7
- 0
- 约6.91千字
- 约 15页
- 2018-08-13 发布于福建
- 举报
一种新程序变体测试方法
一种新的程序变体测试方法
摘要:在对程序分片技术研究的基础上,提出一种新的片变体测试方法。通过实例说明,该方法能更有效地提高变体测试的准确性及测试效率。
关键词:变体测试;程序分片;片变体测试;测试指标
中图分类号:TP311 文献标志码:A
文章编号:1001-3695(2008)05-1393-03
高质量的软件(程序)离不开高质量的测试。为了保证测试的质量及提供一种度量测试用例好坏的指标,人们提出了一种基于缺陷的测试方法(fault-based testing)――变体测试。区别于别的测试方法,变体测试根据一定的准则(变体算子)在程序中引入bug来判断测试用例集的好坏(是否充分)。对于现实中的一般程序,由于其整个输入集一般都趋于无穷大或大到无法控制的范围,只能根据一定的原则选取其中的一个子集作为测试用例集。准则的意义就在于提供一种量化测试等级的指标。通过等级越高的测试,程序的可信度就越高。??
本文利用一种有效的程序分析技术,即程序分片对传统的变体测试技术进行分析,提出基于程序片的变体测试指标,该指标涵盖了传统变体测试指标。所谓涵盖就是一定存在这样的情况,永远有缺陷会在测试的一个层次上被发现,并能够在测试的下层上逃避检测[1]。另外给出了基于该指标的一般性测试方法――结合分片的片变体测试方法。??
1程序变体与分片??
1.1变体测试??
变体测试思想始于20世纪70年代末[2],基本思想是:对于一个待测程序P,假设给定的测试用例集T足够好(充分)的话,应该能测试出P中所有的缺陷。基于以上假设,人为地在通过测试后的程序P中引入缺陷(称引入缺陷的程序为源程序的变体),再用原测试用例集T对所有的变体进行测试。当变体中引入的缺陷被检测出来时,则称变体P被消灭。如果所有的变体都能被消灭,那么就认为测试用例集T是足够好(充分)的,通过T测试的程序P也是可信赖的。如果还存在变体没有被消灭,则认为测试用例集T是不够充分的,通过T测试的程序P也是不可信赖的。变体测试的基本流程如图1所示。??
程序缺陷是通过修改源程序部分代码的形式引入的。这种修改遵循一定的标准算子,称为变体算子,如修改算术运算符、修改逻辑运算符、修改变量等操作算子。这种引入缺陷的方法可能会造成等价变体问题,即修改后的程序和源程序是功能等价的(也就是对于任意相同的输入,它们的输出是一样的),所以在进行变体测试时只要求非等价变体被消灭。就如何识别等价变体这一问题,人们已进行了很多研究[3],具体的方法本文不进行讨论。??
为进一步讨论的需要,先给出本文的一些表示符号。对于任一个程序P,用P′表示程序P的一个变体;P表示P的所有变体集合;P.t表示P对于输入t的输出; fp(t)表示P实际要完成的函数功能;D为程序的整个输入域。 ??
定义1测试用例集T满足变体测试指标iff ??P′.P′∈P→(??t∈T. P′.t≠fp(t))∨(??t∈D.P′.t=P.t)。当程序P通过了满足以上指标的T测试,则称P通过了变体测试。??
1.2程序分片??
程序分片是一种有效的程序分析技术,它根据给定的分片准则从源程序中提取出所需部分进行分析。最早的程序分片概念由Weiser提出[4]。 Weiser定义的程序分片是一个可执行的程序,它是通过从源程序中移去零条或多条语句来构造的。 原始的程序分片定义如下:??
定义2对于某一语句s和某一变量v,程序p关于分片准则〈s, v〉的程序分片是可能影响语句s处变量v值的所有语句的集合。??
目前比较流行的分片技术大多是借助于系统依赖图(SDG)来实现[5]。其主要思路是先对目标程序构造SDG来表示其内部的依赖关系,然后通过回溯算法(也称为节点反向可达性算法)来计算分片。由于本文第3章讨论的需要,简要介绍一下基于SDG的分片技术。??
SDG是由过程间的控制和数据依赖边相连接的过程依赖图(PDG)[5]的集合。一个PDG表示程序中的单个过程,它是一个有向图,其节点分为表示赋值语句或谓词的节点、表示过程输入和输出的节点及表示方法调用的节点;边表示过程各部分间的依赖关系,依赖关系有控制依赖和数据依赖两种。节点间可以有多种边。如果图中有一条控制依赖边〈v??1,v??2〉,当且仅当满足下列条件之一:a)v??1是初始节点,且v??2没有嵌套在条件或循环中;b)v??1是谓词,v??2直接嵌套在谓词v??1的条件或循环中。如果图中有一条数据依赖边〈v??1,v??2〉,当且仅当同时满足以下三个条件:a)v??1定义了某个变量x;b)v??2使用了变量x;c)v??1和v??2间有一条可执行的路径且没有对x重新定义。??
您可能关注的文档
- 一种基于自组织过程神经网络动态样本半监督学习算法.doc
- 一种基于节点相似度标签传播算法.doc
- 一种基于节点能力区分Pareto最优网络编码组播方法.doc
- 一种基于节点重要性和空间相关性无线传感器网络MAC协议.doc
- 一种基于虚拟仪器功放测试系统设计.doc
- 一种基于虚拟机个性化计算机实验教学环境.doc
- 一种基于蓝牙通信智能加热系统.doc
- 一种基于融合深度卷积神经网络与度量学习人脸识别方法.doc
- 一种基于行为规则程序特征定位方法.doc
- 一种基于装配探针接触片整体成型工艺.doc
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)