面向无测试预言程序的混合蜕变调试

来源 :南京大学 | 被引量 : 0次 | 上传用户:xjk
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件调试通过分析程序错误根源为开发者提供软件错误信息以及修复方案,是保证软件质量的重要环节。然而,软件调试一直以来都是一件非常繁琐的工作,所以有很多研究者致力于软件调试相关的工作,力图通过研究自动化的软件调试方法为开发者提供有效的帮助。已有的自动软件调试工作已经能够在很大程度上帮助开发者定位并理解软件中的错误,但是绝大多数的软件调试工作都需要以待测程序中含有测试预言为前提,而很多现实中的程序中没有测试预言,如何对这类缺少测试预言的程序进行自动调试就成为了一个很大的挑战。针对无测试预言的程序,一部分研究者提出了蜕变关系来解决对这类程序的测试问题,也有少部分工作在此基础上提出了对无测试预言问题的自动调试方法,然而在可扩展性,系统开销以及调试效果等方面都存在局限。针对自动调试无测试预言程序的问题,本文提出了一种面向没有测试预言程序基于混合执行的自动错误定位技术Comedy, Comedy在较少的系统开销下实现较好的错误定位效果,是一种针对无测试预言程序可行且有效的自动错误定位技术。具体而言,本文的工作主要包括以下几点:·本文首先总结了自动调试领域的研究现状,指出了现今绝大部分已有工作针对无测试预言程序无法有效调试的问题。本文接下来介绍了旨在解决无测试预言程序测试问题的蜕变测试技术,并分析了已有基于蜕变测试的自动调试工作的缺陷与局限。·本文提出了蜕变模型的概念,即根据蜕变关系的要求将输入转换,多次原程序执行以及蜕变约束检查等多个步骤封装到一个新的程序中,解决了原来程序中测试预言缺失的问题。·本文提出了一个面向无测试预言程序的自动错误定位技术Comedy, Comedy的错误定位思想是从错误的执行出发,通过逐步倒转其执行路径上的分支,从而不断得到新的输入来执行程序,以此得到新的执行。Comedy通过这种方式系统地搜索新的执行路径来搜索正确执行,从而找到从程序错误路径迁移到正确执行路径的关键分支作为可疑错误位置。·Comedy利用原程序中存在的多个蜕变关系构造多个蜕变模型,针对每个蜕变模型,使用多个错误输入进行自动错误定位,提高了错误定位的能力与效果。·本文在Java Pathfinder与Symbolic Pathfinder平台之上实现了一个Comedy工具原型,针对存在测试预言问题的Java程序进行自动错误定位。该工具包括了蜕变模型程序框架,自动测试引擎,基于混合执行的自动错误定位引擎。该工具为开发者提供了一套高度自动化的错误定位辅助。·本文通过在一组Java程序上进行实验评估了Comedy的错误定位有效性与效率。实验结果表明,Comedy能够在可以接受的开销下得到比较有效的错误定位结果,为开发者发现程序中的错误位置提供很大的帮助。另外,本文通过在真实Web服务器软件Tomcat上进行简答案例分析进一步证明了Comedy的有用性。
其他文献
最近,黑龙江伊春有多个大型社区相继开盘,伊春的陶瓷、瓷砖行业商业竞争加剧,在对手云集的商战中,把握商机就意味着能更好的占领市场。
<正>信访工作是党和政府的一项重要工作。领导干部接待群众来访制度是落实领导信访工作责任的一项重要制度,也是促进信访渠道畅通的保障措施。这项制度随着信访工作的不断发
80年代以来,对是非问句的研究日渐增多,已成为现代汉语本体研究中的一大热点。在对外汉语教学方面,也有前人已经开展了研究,并取得了一定的成果;有的研究针对英语为母语的学生
现在消费者偏爱光鲜、亮丽并极具时尚感的玻璃、水晶等马赛克,似乎一些原生态马赛克正逐渐淡出消费者的视线,比如以天然石材为原料的石材马赛克等。其实,市场现状并非如此,在玻璃
<正>大家都知道,钢琴被称为"乐器之王",小提琴被称为"乐器之母",而吉他则被称为"乐器之子"。它的音色甜美,音域宽广,表现风格手法多样,携带方便等诸多特点被大家所追捧。现在
壁画是室内空间中的一个重要装饰元素,但在住宅中应用是一个新趋势。如何在居住空间中合理利用壁画达到设计的装饰效果,是一个需要我们进行探讨和实践。
科技扶贫作为精准扶贫、精准脱贫基本方略的重要组成部分,在激发贫困人口内生动力,提升自身发展能力方面具有不可替代的作用。本文在科技扶贫内涵及特征阐述的基础上,分析了
现代多媒体教学设备的普及被农村教学的传统模式带来了全新的变革,如何更好更合理地使用多媒体设备提高教学的效果和质量,成为广大农村教师必须要深入研究探索并身体力行的重
本文设计了一种"引导体验式"教学模式及其实施方案,结合《文献检索》课程开展了对比实验,以了解艺术设计专业学生对该课程采用该模式的适应性。