【摘 要】
:
软件测试是提高软件可靠性的重要手段。在软件测试方法中,覆盖测试是一种基本的白盒测试方法,为满足测试充分性,覆盖测试需要测试数据能取得尽可能高的覆盖率。与其他测试数据自动生成方法相比,基于约束的测试数据生成方法更具确定性且易实现对特定目标的覆盖,其生成的测试数据在覆盖测试中更具优势。然而,取得上述优势的前提是可实现对目标程序的精确约束建模。约束建模的精度不足会导致输入变量产生欠约束问题,进而对生成测
【基金项目】
:
国家自然科学基金“源代码漏洞分析,检测与验证技术研究(U1736110)”; 国家自然科学基金“基于自适应约束构建与复杂程序结构约束求解的软件缺陷自动确认研究(61702044)”;
论文部分内容阅读
软件测试是提高软件可靠性的重要手段。在软件测试方法中,覆盖测试是一种基本的白盒测试方法,为满足测试充分性,覆盖测试需要测试数据能取得尽可能高的覆盖率。与其他测试数据自动生成方法相比,基于约束的测试数据生成方法更具确定性且易实现对特定目标的覆盖,其生成的测试数据在覆盖测试中更具优势。然而,取得上述优势的前提是可实现对目标程序的精确约束建模。约束建模的精度不足会导致输入变量产生欠约束问题,进而对生成测试数据的正确性、友好性等产生影响,使测试数据无法实现预期覆盖或难以被测试人员理解和使用。本文以解决程序约束建模过程中的欠约束问题及其衍生问题为目标,对如何提取程序中的隐性约束、如何改善测试数据的友好性以及如何缓解不友好测试数据产生的不利影响三个方面展开研究。本文的主要工作和创新点如下:1)单元覆盖测试中的隐性约束提取方法研究在单元覆盖测试中,当诸如除、解引用等危险操作作用于输入变量时,为保证函数单元的正常执行,输入变量要满足一定的前置条件,这些前置条件未显式的存在于函数中,是对输入变量的隐性约束,无法通过传统符号执行方法获得。不满足隐性约束的测试数据在执行时会发生错误或崩溃,无法实现预期覆盖。本文提出了一种规则导向符号执行方法用于隐性约束的提取。该方法的核心思想是:使用预定义规则对传统符号执行进行增强,解决无法提取隐性约束所导致的欠约束问题。首先,对C语言中运算符的语义进行了系统的分析,预定义了四类隐性约束提取规则并应用于符号执行过程中,预定义规则提供了一种层次化的匹配模型用于准确的识别并提取语句中的隐性约束。其次,根据隐性约束的分布特点,对约束建模对象进行了扩展,除常规的分支语句外,还对可能存在隐性约束的赋值语句、声明语句进行了分析建模。最后,提出了完整路径约束的概念,将隐性约束与已有路径约束合取构成完整路径约束,通过求解完整路径约束可以获得可正常执行的测试数据,从而实现覆盖,提高测试的充分度。实验结果表明,所提方法可以准确的提取隐性约束;与同类工具相比,所提方法可以有效的提高存在隐性约束程序的覆盖率。2)友好测试数据生成方法研究针对欠约束变量在约束求解过程中由于约束不足可能生成不友好测试数据这一问题。本文提出了一种挖掘常量信息用于欠约束变量的约束补全和引导友好测试数据生成的方法。该方法首先搜集与输入变量相关联的相关常量和存在欠约束问题的输入变量。然后,提出了聚合分析和排序分析方法用于处理搜集到的相关常量,聚合分析通过对相关常量集进行数据清洗和集中来获得约束补全信息;排序分析基于关联操作的语义实现对相关常量的启发性强弱的推理,并选取强启发相关常量作为种子数据。最后,提出了约束补全方法,使用约束补全信息对欠约束变量进行约束补全;提出了启发式测试数据生成算法,利用种子数据引导友好测试数据生成;通过为欠约束变量生成完整约束和引入种子数据实现对测试数据友好性的改善。对一个开源实际工程进行了实验,实验结果表明,与不使用本方法的工具相比,所提方法可以改善测试数据的友好性并具有良好的效率。3)基于静态分析的预言数据选取方法研究当无法改善测试数据友好性或改善效果不佳时,不友好测试数据由于难以理解、计算为测试人员进行测试预言构建、快速发现故障带来诸多困难。本文提出了一种路径敏感的预言数据选取方法,该方法通过为测试人员选取多个预言数据进行观测将测试预言问题划分为若干子预言问题,缓解了不友好测试数据为测试预言构建带来的困难;此外,选取多个预言数据进行观测还获得了更多捕获错误状态的机会,减少了漏报。该方法首先引入了关键路径分析方法,对程序路径进行基于故障观测能力的排序,为测试人员指引了测试预言构建的顺序。然后,提出了定量分析方法和定性分析方法用于为每条路径选取预言数据。定量分析根据候选预言数据间的替换关系缩减预言数据集的规模,以减少测试预言构建的工作量。定性分析根据预言数据的故障观测能力对预言数据进行排序,以帮助测试人员更快的发现程序中的故障。实验结果表明,所提方法可以发现仅观测默认输出测试预言方法无法发现的故障,且具有较好的故障观测效率,能帮助测试人员更快的发现故障。
其他文献
针对视频帧间相对运动的目标检测,进行视频预处理,读取视频相关属性,运用二帧差分法、三帧差分法、彩色帧间差分法等,可以高效检测并处理视频运动目标,主要用大津法确定的图像二值化阀值,差分图像优化,使用腐蚀膨胀去噪点,再进行路径图初始化,画出圆心,根据时间的先后,找出存在圆心点,设计每帧停留时间,刻画出视频中出现运动轨迹,从而达到解决问题的目的。
目的评价膀胱影像报告和数据系统(VI-RADS)术前评估膀胱癌不同组织病理学特征的应用价值。资料与方法收集术前行多参数磁共振成像(mp-MRI)扫描并经病理证实为膀胱癌的89例患者,根据组织病理学结果分为肌层浸润性膀胱癌(MIBC)或非肌层浸润性膀胱癌(NMIBC)组、低级别(LG)或高级别(HG)组以及淋巴血管侵犯(LVI)阳性或阴性组,评估VI-RADS评分与MIBC、肿瘤分级及LVI状态的相
一、序言在注浆过程中,利用石膏模的吸水进行吃浆,吃浆结束之后(空心注浆在排浆之后,实心注浆则在吃浆结束之后)由于石膏模继续进行吸水,所以当吃浆结束时坯体中的水分将急剧减少。但当达到某一点时,此种现象即告终止,此后水分的减少变得极为缓慢。在“陶瓷器注浆坯体的性质与基本参数的关系,”一文中,将水分减少发生速度上变化的点称为脱模点,对表示脱模难易的尺度——脱模系数G给了如下定义:
《新大头儿子和小头爸爸》系列动画电影通过不同层面的创新使得这个系列成为中国动画的一个知名IP,实现了低幼化向全龄化的转变、单一化向多元化的转变、本土化向全球化的转变。
目的:观察颈动脉球囊扩张联合支架植入术治疗颈动脉狭窄患者的效果。方法:选取86例颈动脉狭窄患者为研究对象,按照随机数字表法分为观察组与对照组各43例。对照组予以颈动脉内膜剥脱术(CEA)治疗,观察组予以颈动脉球囊扩张联合支架植入术治疗,比较两组血管狭窄率、美国国立卫生研究院卒中量表(NIHSS)评分和并发症发生率。结果:术后30、90 d,观察组血管狭窄率和NIHSS评分均明显低于对照组,差异有统
文化是对一个国家发展最好的记载,如果没有了文化,那么国家的发展就很难继续。文化是不断传承的,所以很多优秀的文化都是一代代传下来的。国学作为一种经典的中国文化,影响着一代又一代人的思想,把这种优秀的文化发扬光大,才能促进社会的进步。小学是人生学习开始的阶段,要多让学生接触一些比较优秀的文化,这样才能不断熏陶他们。校本课程是根据学校自身的情况研究开发的一门学科,对学习者的教育也是一种补充。把国学经典编
背景颈动脉粥样硬化斑块与缺血性脑卒中(ischemic cerebral stroke,ICS)的发生关系密切,超声检查是颈部血管疾病筛查的首选检查方式。目的 通过对中老年患者颈动脉斑块的超声检测指标与缺血性脑卒中的相关性分析,以颈动脉斑块超声特征作为预警指标,简化临床评估路径,从而提高超声诊断的价值和ICS的筛查效率。方法 收集2017年9月-2019年11月本院诊治≥45周岁缺血性脑卒中患者为
虽然单晶金刚石刀具被广泛应用于有色金属及非金属材料的超精密加工并获得纳米表面粗糙度及超精密的加工表面,然而在铝基碳化硅等复合材料以及单晶硅、镁铝尖晶石等硬脆材料超精密切削加工中却存在磨损速度快、刀具寿命短、加工表面质量差等问题,这严重制约了相关材料超精密加工技术的发展。因此,研究性能更为优越的纳米孪晶金刚石(nanotwinned diamond,nt-D)等新材料超精密切削刀具具有极为重要的科学
本文介绍了镇雄县林业资源状况和脱贫攻坚现状,分析了林业与脱贫攻坚和乡村振兴的关系,把林业服务脱贫攻坚与乡村振兴战略有效衔接起来,促进林业发展,进而助推乡村振兴战略实施,切实抓好植树造林、林业生态建设等工作,设置过渡期,将脱贫攻坚的有效模式和业态纳入乡村振兴战略架构进行运用与探索,走出一条符合深度贫困县实际的脱贫战略与乡村振兴协同发展的新路子。
移动通信技术的演进促进了移动应用和多媒体业务的快速发展,并在网络边缘处产生了海量的数据,为无线通信网络带来了前所未有的流量负载。为此,迫切需要将人工智能(ArtificialIntelligence,AI)这一尖端技术推向网络边缘,充分释放边缘大数据的潜力。此外,超低传输时延、超高数据速率等越来越严苛的用户需求也给通信系统带来了巨大的挑战。为了应对上述需求与挑战,移动边缘计算(Mobile Edg