程序动态似然断言技术及其在软件质量保证领域中的应用

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:leaf678
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
质量是软件产品成功的关键因素,有效的软件质量保证技术可以减少软件错误、降低软件开发成本、缩短软件开发周期,具有很重要的现实意义。   在所有软件质量保证技术中,软件测试和程序执行监测是不可或缺的两方面:软件测试发生在软件对外发布前,其目的在于尽可能多地在软件开发团队内部解决所有潜在软件错误;程序执行监测发生在软件对外发布后,其目的在于尽可能快地修复软件实际使用过程报告的错误。二者互相协助,缺一不可。近年来,研究人员在软件测试和程序执行监测上取得了不少重要成果。然而,现有的基于程序不变量的软件测试方法存在“反复提取相同程序不变量而造成时间开销过大”的问题,程序执行监测方法也存在“非崩溃错误难以被发现”的问题。针对这两个问题,本文提出了程序动态似然断言技术,并将其应用于软件测试和程序执行监测领域,具体工作如下:   (1)断言的自动转换及断言插装程序的构造。提出一种基于正则表达式的方法,将Daikon工具提取的程序动态似然不变量自动转换为对应的程序动态似然断言,并将其插装到程序源码中。为了方便表述,本文将“程序动态似然不变量”简称为“程序不变量”或“不变量”,将“程序动态似然断言”简称为“程序断言”或“断言”。与程序不变量相比,断言可以直接应用于程序中判断测试用例是否有效,无需重新运行整个测试用例集合,避免相同不变量的重复提取,减少时间开销,从而提高测试效率。实验结果表明,这种基于正则表达式的转换方法可以有效且快速地将程序不变量转换为对应断言。   (2)断言技术在软件测试中的应用。将程序断言技术应用于回归测试中,实现程序改动所影响元素的自动识别与回归测试用例集合的约简,从而降低回归测试的成本。实验结果表明,这种基于断言技术的方法可以有效地找到程序改动所影响的元素,并以比较直观的方式展现给程序员;与其他回归测试用例集合约简方法相比,本文提出的RTS和ARTS算法可以在较短时间内实现较大的测试用例约简率。   (3)断言技术在程序执行监测中的应用。设计一个完整的基于断言技术的程序执行监测框架,根据程序执行过程中断言是否被违反来检测程序异常,并根据断言违反信息对反馈的程序异常进行自动分类;在程序切片技术的帮助下,对分类后的程序异常进行分析,判断程序是否真的出错并找到程序错误来源。实验结果表明,基于断言的方法可以有效检测程序执行过程中的非崩溃错误,在具有较低错误误报率的同时,达到错误漏报率为零;该方法还可以对程序异常进行合理的分类,从而减轻程序异常分析的工作量;本文提出的程序异常静态分析方法可以实现较高的代码和不变量约简率,程序异常动态分析方法可以将程序错误来源定位到具体的汇编指令,从而可以方便快速地找到错误来源。
其他文献
社交网络正在快速发展,用户量也在持续增长,多媒体社交网络快速分享和上传内容的特点,备受用户的欢迎,数以亿计的用户将图片、音视频等上传到多媒体平台,伴随着快速便捷的同
在社会的发展过程之中,火灾一直都是一种最主要的灾害。它对于人们的生产、生活和自身安全带来了极大的威胁。所以,对于火灾的自动检测就成为了一个重要研究的方向。随着社会
随着Android手机的日益普及,Android应用程序的安全问题引起人们越来越多的关注。由于Android平台的开放性和管理上的混乱,由Android应用程序危险行为导致的安全问题日益突出。
近年来,室内定位需求日益增大,虽然在室外使用GPS可获得较好的定位精度,但GPS信号易受天气等外界因素影响且其无法在室内使用,因而需要利用其它技术方案实现室内定位。无线传
目前,车辆识别在科研和商业上引起了很大的关注,它在智能迁移系统中起到重要的作用,并已被广泛地运用于各种安全领域,例如:政府大楼,军事阵地,国家边防,交通堵塞,停车问题以及
伴随着移动通信技术的发展和移动设备的普及,移动计算的应用变得越来越广泛,它满足了人们随时随地获取信息的需求。但是移动计算环境存在网络频繁断接、移动设备移动性与资源
近年来,随着数字视频技术和网络传输技术的飞速发展,互联网以及电子设备上的视频内容正以惊人的速度增长,面对如此海量的视频数据,传统的基于文本的检索技术已不能满足人们的需求
统计学习理论建立在结构风险最小化原则的基础上。与传统统计学习理论相比,V.Vapnik等人提出的统计学习理论是一种针对小样本情况研究统计学习规律的理论。与此同时,在这一理
近年来,随着移动计算技术和传感网络技术的蓬勃发展,基于位置的服务(Location Based Service, LBS)应用越来越广泛,用户的位置隐私成为人们关注的问题。轨迹隐私是位置服务中
尘肺病是一种肺组织纤维化的疾病,主要是由于人们在生产环境中长期吸入生成性粉尘而引起,这种疾病对患者的危害极大。由于尘肺病体检过程复杂且对象群体庞大,致使有关政府、企业