C语言变异体蕴涵关系的识别及其应用
发布时间:2022-08-01 17:37
变异测试是一种面向故障的软件测试方法,该技术向被测程序注入一组人工设计的故障,又称变异体,来评估已有测试用例的故障检测水平以及设计满足高故障检测率的测试集。变异测试存在的一个主要问题是,它生成了大量冗余且无用的变异体,这些变异体无法显著提升测试用例的检测水平,但却极大地提高了测试分析的成本。近年来,国内外研究者提出了通过蕴含关系识别一组最小无冗余的变异体子集作为变异测试的输入,从而最大程度地减少测试成本,同时提高测试用例杀死每一个故障所取得的故障检测水平。然而,变异体的蕴含关系识别是一个不可解问题。本文采用了一种基于动态测试的算法近似识别变异蕴含关系以及最小蕴含变异集。相较于现有的算法,该算法能够在尽可能减少测试次数和计算成本的条件下完成蕴含集的识别。本文的贡献包括:1)提出了一种动态快速算法,计算和识别变异体的动态蕴含图;该算法主要通过三个步骤完成蕴含关系的识别,分别是:聚类、排序和剪枝;2)将上述算法集成到CTS测试系统中,为识别77种C语言算子的变异体中的最小蕴含集提供功能支持;3)将文本提出的快速算法应用于12组程序的近6万个变异体上,包括五个较大的西门子测试套件程序,从中识别...
【文章页数】:63 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
第一章 绪论
1.1 研究背景
1.2 研究现状
1.3 研究内容
1.4 论文结构
第二章 变异测试概述
2.1 变异测试流程
2.2 变异测试方法
2.3 变异测试现状
第三章 蕴含关系的定义与研究现状
3.1 蕴含关系的相关定义
3.2 蕴含关系的研究现状
3.2.1 逻辑蕴含关系
3.2.2 动态蕴含关系
3.2.3 静态蕴含关系
3.3 动态蕴含方法
3.4 现有算法的存在问题
第四章 一种计算最小蕴含变异集的快速算法
4.1 计算最小蕴含变异集一般流程
4.2 聚类、排序与剪枝
4.2.1 聚类方法clusterMutants()的实现
4.2.2 直接蕴含方法directSubsumed()的实现
第五章 DMSG框架的详细设计和实现
5.1 DMSG生成框架
5.2 CTS故障注入模块
5.2.1 程序故障分析和建模
5.2.2 C变异算子的实现
5.3 西门子集测试框架
5.4 DMSGen工具的实现
5.4.1 Cmutant
5.4.2 CTest
5.4.3 CScore
5.4.4 MGraph
5.5 实验分析
5.5.1 研究问题和实验设计
5.5.2 实验结果分析
第六章 总结与展望
6.1 总结
6.2 下一步工作展望
参考文献
致谢
作者攻读学位期间发表的学术论文目录
本文编号:3667882
【文章页数】:63 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
第一章 绪论
1.1 研究背景
1.2 研究现状
1.3 研究内容
1.4 论文结构
第二章 变异测试概述
2.1 变异测试流程
2.2 变异测试方法
2.3 变异测试现状
第三章 蕴含关系的定义与研究现状
3.1 蕴含关系的相关定义
3.2 蕴含关系的研究现状
3.2.1 逻辑蕴含关系
3.2.2 动态蕴含关系
3.2.3 静态蕴含关系
3.3 动态蕴含方法
3.4 现有算法的存在问题
第四章 一种计算最小蕴含变异集的快速算法
4.1 计算最小蕴含变异集一般流程
4.2 聚类、排序与剪枝
4.2.1 聚类方法clusterMutants()的实现
4.2.2 直接蕴含方法directSubsumed()的实现
第五章 DMSG框架的详细设计和实现
5.1 DMSG生成框架
5.2 CTS故障注入模块
5.2.1 程序故障分析和建模
5.2.2 C变异算子的实现
5.3 西门子集测试框架
5.4 DMSGen工具的实现
5.4.1 Cmutant
5.4.2 CTest
5.4.3 CScore
5.4.4 MGraph
5.5 实验分析
5.5.1 研究问题和实验设计
5.5.2 实验结果分析
第六章 总结与展望
6.1 总结
6.2 下一步工作展望
参考文献
致谢
作者攻读学位期间发表的学术论文目录
本文编号:3667882
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3667882.html