【摘 要】
:
软件回归测试是保障软件质量的重要手段。软件演化的代码变化可能导致旧版本的测试用例不能直接在新版本软件上复用,降低了回归测试的效率。测试用例修复为测试用例复用提供
论文部分内容阅读
软件回归测试是保障软件质量的重要手段。软件演化的代码变化可能导致旧版本的测试用例不能直接在新版本软件上复用,降低了回归测试的效率。测试用例修复为测试用例复用提供了一种有效的解决方案。JAVA单元测试用例修复是近年来回归测试研究的热点问题之一。基于搜索的算法因其通用性好、求解速度快等优点,已被应用于JAVA单元测试用例自动修复中。通过在新版本软件中搜索可以用来修复单元测试用例的方法序列,对单元测试用例进行修复,使其可在新版本软件上执行。然而,现有的修复序列生成方法以待修复测试用例的出错点为修复点,从测试用例的入口方法开始,通过在新版本软件中搜索可用来修复的方法/全局变量等,向下逐步生成修复序列,对出错点进行修复。该方法未考虑测试用例出错点之间的依赖关系,而且修复序列生成缺乏目标指导,导致修复序列的生成效率较低。为提高JAVA单元测试用例修复效率,本文提出一种基于A*搜索的JAVA单元测试用例修复及并发优化方法。通过分析测试用例出错点之间的依赖关系,尽量选取不依赖其它出错点的出错点作为待修复点,确定修复目标;从修复目标开始,向上搜索新版本软件中的可用于修复的方法/全局变量等,直到测试用例的入口方法,生成修复序列。搜索过程同时考虑修复序列对旧版本测试用例的影响以及修复序列内部的数据依赖关系,计算A*估价函数,以指导搜索过程。在此基础上,依据修复序列对测试用例进行修复,尽可能保留占版本软件测试用例中完好的方法、参数及其使用关系,以保留原始测试用例语义及测试意图。此外,本文对修复序列生成及测试用例修复进行了并发优化,通过重叠CPU计算和IO操作、利用CPU并发计算能力,进一步缩短了测试用例修复花费的时间。为评估本文测试用例修复方法及并发优化的有效性,以4个开源程序不同版本的测试用例为对象,对旧版本程序的测试用例进行修复,使其在新版本程序上复用。实验表明,与现有的测试用例修复方法相比,本文所提修复方法能够在保证测试用例修复成功率的情况下,缩短修复时间,提高修复效率。对本文修复方法的并发优化,减少了 60%的修复时间,进一步提高了系统并发处理能力,提升CPU使用率,提高了修复效率。
其他文献
稀薄燃烧技术能有效增大工质的等熵指数,提高工质的做功能力,提高发动机循环热效率,同时因为富氧且最高燃烧温度下降,CO、NOx等有害排放也大大降低,是一种前景广阔的发动机燃
随着煤矿开采深度和开采强度的增加,矿井开采条件“三高两低”的特征越来越明显,煤矿瓦斯灾害越来越严重。因此,通过研究保护层开采后卸压煤岩体的渗透特性演化规律,可对煤矿安全、高效开采和瓦斯资源的高效抽采利用提供一定的理论和技术支持。论文运用理论分析、数据统计分析、实验研究和数值模拟等方法,系统研究了卸压煤岩体的卸压特征、变形特征及卸压瓦斯流动规律;通过数据统计分析16个矿井的下保护层开采实践数据,建立
相较于电压型电路,电流型电路在频带,速度,带宽,功耗等方面有着较大的优势,也是目前集成电路研究的一个主要方向,而CMOS管能有效处理电流信号,并具有静态功耗低,抗干扰能力强
目前国内既有线运行的钢轨探伤车型号有GTC-1、GTC-3、GTC-4、GTC-6和GTC-80,这些钢轨探伤车行车控制系统均采用硬线+继电器控制,仪表均采用模拟指针表,因此,这些钢轨探伤车在功能上的可扩展性较差,故障排查难度较大,设备参数信息显示有限,影响车辆的作业施工效率。钢轨探伤车行车控制系统功能可扩展化、故障排查直观化、设备参数信息显示全面化已成为一个非常迫切的要求。如何解决上述问题是本文
鉴于当今世界性的能源短缺和环境污染问题,内燃机领域的专家学者一直致力于寻找和利用可再生的能源,并通过改进发动机的燃烧方式,以实现高效清洁燃烧。在可再生能源中,生物质
我国城镇生活污水结构中碳氮比水平较低,污水处理厂在采用活性污泥法处理废水时,一方面常面临因碳源不足导致脱氮除磷效果不佳,或添加外碳源而产生更多待处理污泥,增加污水厂额外运行费用的困境;另一方面二沉池产生的剩余污泥本身含有大量有机质,有机物结构不仅存在于细胞内部,也包括部分胞外聚合物等。因此,研究如何实现剩余污泥中有机物转化为补充生物除磷和反硝化反应的碳源,以及如何利用先进技术实现污水厂高效低能的设
减少柴油机尾气污染物尤其是颗粒物排放是当今节能与环保主题下的重要研究内容,探索燃油与柴油机控制参数对柴油机颗粒物排放的影响是该研究的重要方向。聚甲氧基二甲醚(PODE
近年来,燃气轮机不断发展,在航空、发电、工业等方面均有着非常广泛的应用,对现代交通、军事等有着深远的影响。燃气轮机技术,目前已成为衡量国家科技水平和综合实力的重要指
“问题解决”教学模式是以问题为中心展开教学,注重教师的主导和学生主体作用的充分发挥,强调问题解决过程中学生的发展,有助于学生在解决问题的同时建构知识、发展能力。长
随着人工智能的发展,人机对话系统不断地深入人们的生活。在人机对话系统的管道方法中,槽填充任务起着至关重要的作用,它直接决定机器是否能准确理解用户意图。而在槽填充任