上海论文网提供毕业论文和发表论文,专业服务20年。

基于蜕变测试的模型转换程序调试方法思考

  • 论文价格:150
  • 用途: 硕士毕业论文 Master Thesis
  • 作者:上海论文网
  • 点击次数:1
  • 论文字数:28022
  • 论文编号:
  • 日期:2022-05-02
  • 来源:上海论文网

软件工程论文哪里有?本文分析了对存在测试oracle问题的程序进行错误定位的难点和挑战,总结了目前已有的基于模型转换程序的错误定位工作,简单分析了利用MT对模型转化程序进行错误定位的优势和不足。


第 1 章 绪论


1.2.2 模型转换程序错误定位研究现状

在错误定位方面,当前的研究工作主要包括提供一些与错误相关的问题,提供一个交互式调试的平台,以及自动提供一个可疑转换规则的列表[21]。而对于模型转换的错误定位方法研究,从是否执行程序的角度出发大致可以分为两类:静态分析与动态测试。 静态分析主要通过代码检查审阅的方式检查软件程序的正确与否,动态测试指通过运行使用软件来进行测试。前者通过对模型转换规则与利用约束条件描述的需求之间的匹配关系进行识别来找出可能出错的转换规则。一些研究者提出了Forensic Debugging这一静态分析方法,通过分析执行失败的模型转换程序的trace信息来识别源模型、目标模型、以及转换规则之间的关系,通过回答与错误相关的一系列问题来支持错误定位[22]。Loli Burgueno等人通过自动匹配模型转换及其OCL约束之间的关系来识别模型转换程序中的错误规则,进而提供一个可疑规则的列表[23]。Cuadrado等人使用约束求解来断言触发给定问题语句执行的源模型是否可能存在缺陷,该方法可以发现模型转换程序中类型和规则的错误,如未解析的绑定、未初始化的功能或规则冲突[24]。还有一些人提出利用Triple Graph Grammars(TGGs)来为模型转换生成测试用例并对模型转换进行自动化的测试[25]。Troya等人可以根据ATL程序自动生成对应的蜕变关系,通过推断出的蜕变关系可以检测出回归测试、增量转换和转换语言迁移三个应用场景中可能存在的错误[26]。Troya等人的后续工作在之前静态分析工作的基础上提出将基于频谱的错误定位方法[27, 28]与OCL结合,通过动态测试来进一步提高错误定位的效率[29]。在此研究中,他们收集测试用例运行程序的结果信息与测试用例运行过程中参与执行的代码信息,利用可疑度计算公式对模型转换程序中的规则进行可疑度计算生成了可疑度列表。实验结果表明,基于频谱的方法比基于静态分析的方法具有更高的准确性。在此之前,Wang等人提出了遗传算法和模拟退火算法两种基于搜索的错误定位方法,该方法是将现有的SBFL方法组合成一种改进的错误定位方法,从而将错误定位转换成找出建模组合的最优解,最终输出一个启发式的接近最优的组合度量[30]。Xuan等人提出了一种基于学习的方法MULTRIC,通过结合多个排名指标进行有效的错误定位。该方法包括学习和排名两个阶段,在学习阶段时,主要通过学习错误程序和无错误程序来训练生成一个排序模型,当输入一个错误程序时,该模型可以输出程序的可疑度列表[31]。


第 3 章 基于蜕变测试的模型转换错误定位


3.1 方法总体概述及流程简介

本章从总体上介绍SBFL-MT的思想流程,以一个具体的实例直观的说明SBFL-MT是如何定位存在oracle问题的程序中的错误。该方法大致流程如下:利用蜕变测试技术对模型转换程序进行测试得到对应的覆盖信息,再利用错误定位公式计算程序元素的可疑度,生成可疑度列表。

3.1.1 错误定位思想原理

与传统的自动错误定位方法不同的是,SBFL-MT针对的程序是不存在测试预言的程序。针对模型转换程序中的测试预言问题,SBFL-MT利用蜕变关系来为该程序构造测试预言,通过蜕变关系构造新的输入,程序运行与蜕变约束检查之间形成一个新的程序,即为蜕变模型。具体来说,SBFL-MT方法会挖掘被测程序中的蜕变关系,通过蜕变关系来对输入数据进行转换进而获得新的输入,程序通过运行新的输入得到对应输出,通过检查输出之间是否符合蜕变约束来判断目标程序是否存在错误。这样,SBFL-MT利用蜕变关系构造一个新的程序的方法就可以解决程序中的测试oracle问题。

如何收集程序运行过程中测试用例的覆盖信息以及测试结果信息,是错误定位方法中不可缺少的一部分。在SBFL-MT中利用trace追踪机制为源程序插入检测点,在程序的运行过程中记录下参与运行的程序组件和最终的结果信息,为后面的错误定位提供数据信息。

一般来说,软件测试作为软件调试中最为重要的一步,一般发生在错位定位之前,程序工作者会通过测试来暴露程序中的错误,进而找到问题的根源所在。SBFL-MT就是利用这个思路,在使用蜕变关系解决程序中的预言问题之后,利用测试用例运行目标程序获得对应的运行结果,程序运行结果为测试用例执行时所覆盖的程序组件信息提供其可疑值或信任值,进而找到错误所在。


第 5 章 实验设计以及结果分析


5.1 SBFL-MT错误定位实验设计以及结果分析

本文实验中选择了一组模型转换程序进行实验来验证SBFL-MT错误定位的效果。为了得到多错误程序错误定位的结果,我们利用程序变异中的方法随机向原来正确程序中植入错误,获得程序的错误版本(变异体)。实验主要利用自动错误定位的准确度对SBFL-MT的错误定位效果进行评估。 在这一部分,首先介绍实验设置,然后分析实验结果,以证明SBFL-MT的方法的可行性和有效性。

5.1.1 实验设计及其流程

我们将会详细介绍本实验的设计及其操作流程。在实验中选取了4个模型转换程序来进行实验,通过随机变异生成大量变异体为实验可靠性提供数据支持。针对每个变异体我们会用SBFL-MT方法进行错误定位并进行统计,评估SBFL-MT方法的错误定位效果。

本次实验选取了4个模型转换程序作为实验对象,通过分别向每个程序中随机植入错误,每个模型转换程序又生成多个错误变异体得到多个错误程序版本。表5.1显示了与每个程序相关的详细信息,包括程序中规则的数量、构造的MRs的数量和构建的变异体的数量。

工程论文怎么写


5.2 AMTRepair自动程序缺陷修复

在我们的程序缺陷修复实验中,我们利用SBFL-MT方法中的输出作为输入,通过构造MR和对错误程序的解析,生成了大量的候选补丁,并对其进行验证。为了客观评价程序修复实验结果,我们对程序修复通过的程序进行了进一步的查证,并通过不同的表现形式客观评价实验结果,以分析AMTRepair的可行性。

5.2.1 实验设计及其流程

该实验选择SBFL-MT实验中的Class2Relational程序和BibTeX2DocBook[29]程序作为被测程序。 通过第四章对ATMRepair的详细介绍可以知道,该修复的输入除被测程序外还有MTG以及可疑度列表。MTG的构造使用第3.2章节中提到的MR的构造方法来生成MTG。之后ATMRepair会先将被测程序进行语法解析,之后根据新的变异来生成候选补丁,通过验证候选补丁是否正确来判断程序是否被正确修复。

工程论文参考


第 6 章 总结与展望


6.2 未来工作展望

本文提出的基于MT的模型转换程序错误定位方法SBFL-MT解决了模型转换程序中的测试预言问题,且在错误定位上具有较好的效果;基于随机搜索的模型转换程序缺陷修复工具AMTRepair在一定程度上可以修复模型转换中存在的缺陷。然而,在实验过程中,我们也发现了该方法存在着一定的局限性,在未来的研究工作中,我们需要作进一步的改进,对方法进行更深的研究分析,结合对实验结果的进一步分析研究,可以概括为如下几点:

(1) 本文在研究SBFL-MT方法的错误定位效果中我们着重考虑了该方法在单错误程序中的有效性,因此在进一步研究中我们将会深入研究并提升该方法在程序多错误的情况下的错误定位效率。

(2) SBFL-MT方法在本文研究中是基于模型转换程序rule级别的,因此在今后研究中我们将会继续研究该方法在程序语句级别的错误定位效果并提高其准确率。

(3) 通过对错误定位实验结果分析,我们发现错误定位效果与MR的选取,源模型,错误定位中错误类型有关,因此研究不同的源模型、不同的MRs和模型转换中错误类型对错误定位效果的影响将作为我们下一步的工作。

(4) 模型转换程序缺陷修复工具ATMRepair虽然可以修复一部分程序,但是其修复的概率和种类又受到程序错误类型和程序类型的影响,因此接下来我们将会进一步工作提高该工具的错误修复能力。

参考文献(略)

123
限时特价,全文150.00元,获取完整文章,请点击立即购买,付款后系统自动下载

也可输入商品号自助下载

下载

微信支付

查看订单详情

输入商品号下载

1,点击按钮复制下方QQ号!!
2,打开QQ >> 添加好友/群
3,粘贴QQ,完成添加!!