基于模型检测的类测试自动生成技术研究

来源 :广西大学 | 被引量 : 0次 | 上传用户:RichieHDD
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
高可信软件技术是软件理论研究和工程实践领域关注的焦点之一。近年来,越来越多的形式化方法被应用于提高软件质量的研究上。软件测试是保证软件产品可靠性和正确性的有效手段之一,而模型检测是一种确保设计规范正确性的形式化自动验证技术。研究发现,模型检测中生成的反例可有效应用于测试用例的生成,显著减少测试代价,提高软件质量。本文主要研究基于模型检测的类测试自动生成技术。本文分别采用数据流测试和变异测试的方法,并结合模型检测器Java PathFinder(JPF),将测试生成问题简化成模型检测中寻找反例的问题,提出了两种面向对象软件测试用例自动生成的方法。首先采用数据流测试的方法,通过设置陷阱性质,用时序逻辑公式表示数据流测试的覆盖准则,提出一种自动生成测试用例的方法,并在JPF上实现。该方法满足数据流覆盖准则,适用于Java类内方法间调用序列的测试。算法分析与实验结果表明,通过设置适当的搜索深度,本文提出的算法使得类数据流测试的覆盖率提高了8%,并能发现隐藏在程序当中的错误;通过本文提出的方法调用选择原则,可显著减少生成调用序列的长度;与JPF的DFS算法相比,本文提出的算法减少了搜索过程中产生的冗余状态,并及时进行了回退,在内存消耗基本相同的情况下本文算法生成的新状态数减少了65%,回退次数减少了90%,处理的状态数减少了88%,算法的执行时间也减少了28%,有效减少了测试生成的代价。此外,基于变异测试的思想,采用类复制的方法,应用JPF来保证软件执行过程中产生的错误在输出结果中可见,自动生成满足变异覆盖准则的测试用例,适用于类之间方法调用的测试,从而实现了Java类之间的测试用例自动生成。算法分析与实验结果表明,针对TreeMap类的测试用例生成实验,本文提出的方法覆盖了其中主要的面向对象特性,且生成的变异数多达211个,而反例数仅26个就覆盖了100%的有效变异,显著减少了测试生成的代价;与Visser提出的模型检测器JPF上的符号执行方法相比,在对TreeMap类中的deleteEntry、fixAfterDeletion和fixAfterInsertion三个方法进行测试用例生成的实验中,本文提出的方法有效覆盖率达到了100%,覆盖率提高了约15%,且本文提出的方法不依赖于程序结构的设计,并能保证程序执行过程中出现的错误在输出结果中表现出来,以发现隐藏的错误。
其他文献
彩色图像融合可以将多幅具有不同信息量的彩色图像融合为一张彩色图像,并且这张图像具有更多的可靠信息可供使用,在机器视觉及特征提取等多个方面都具有广泛的意义。在本文中,我
本文以智讯通讯公司的MIIS(Multi-Information Integration System)信息系统集成项目为研究背景,采用Web Service的系统集成技术,解决当前公司多个信息系统协同应用能力不足的
当前,机动车数量的急剧增加给交通管理带来了许多的问题。为了解决这些交通运输管理的难题,智能交通系统应运而生,成为目前国际道路交通和运输科技研究发展的热点之一。智能交通
目前电能质量业界缺乏统一的数据格式和规范,数据格式千差万别、互不兼容,这非常不利于信息共享和应用集成。另一方面,传统的电能质量系统更倾向于直接操作本地数据库或监测设备来访问数据,耦合性很高,不够灵活,更不易于扩展。因此,如何统一基础数据管理平台、设计合理的数据格式、实现跨地域获取数据成为亟待解决的问题。在电力行业中,对于数据质量的要求越来越高。可是从当前的实际情况来看,电能质量系统采集的数据一旦出
手写体数字识别是光学字符识别技术(OCR)的一个分支,在文件资料自动录入、金融税务系统数据统计、图像文本的压缩储存、自动阅读器、盲人助读器等领域有着广阔的应用前景.本
临床实践指南(CPG)是一种依据医学文献库中摘录的医疗证据和领域中专家的共识创建的文档,旨在提高医护质量和减少不必要的开支。基于CPG的医疗辅助决策系统是一种推广临床实践
近年来,伴随着多媒体技术和计算机网络技术的飞速发展,全世界数字图像的容量正以惊人的速度增长,无论是军用还是民用设备,每天都会产生容量相当于数千兆字节的图像。而在这些数字
起源于信息隐藏技术的数字水印技术,为实现有效的知识产权保护提供了一条崭新的思路,近年来已成为多媒体信息安全研究领域的一个热点问题。纺织织物是日常必需的消费品,其品牌商
安全协议也称密码协议,是建立在密码体制基础上的高互通的消息交换协议,它运行在计算机通信网或分布式系统中,其目的是在网络环境中提供各种安全服务。安全协议是构建安全网络环
基于Topic的Blog的隐含社区发现为Blog的应用研究开辟了一个很有前途同时也具有相当挑战性的方向。随着Internet在人们生活中的广泛应用,Blog作为一种新型的网络媒介交流工具