基于启发式约束求解的测试生成技术研究

[复制链接]
查看: 216|回复: 0

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
77132
发表于 2023-10-12 20:16:03 | 显示全部楼层 |阅读模式
目:


雅宝题库答案
****此区域为收费内容****    需支付 1 知识币后可查看,1币=0.01元查看答案


雅宝题库解析:
测试数据是决定软件测试质量的关键因素之一,当前工业界常采用人工生成测试数据。自动测试数据生成技术能有效地降低生成测试数据的代价。近年来,结合了静态测试生成和动态测试生成的技术越来越受到关注,这些混合技术在处理程序规模和覆盖率上比传统技术有较大优势。传统的静态测试生成方法通常采用符号执行和约束求解技术。由于使用符号求值代替了实际求值,符号执行技术实现难度较高,并且存在循环处理及动态内存地址计算等题目。同时,传统的约束求解方法较难处理非线性约束。动态测试生成方法较难覆盖输入空间较小的程序路径,且存在较多冗余测试数据。以动态符号执行为代表的混合技术中同样使用传统符号执行技术,无法解决动态内存地址计算题目,其本质上是使用随机赋值绕开符号执行较难处理的部分,因此在很多情况下混合技术常退化为动态方法。本课题研究自动测试数据生成中混合方法的关键技术。首先,针对符号执行的实现,研究了一个面向实际程序的复杂符号内存模型,并将Lazy替换引入符号执行中,以解决动态内存地址计算题目;其次,针对当前静态测试中约束求解技术无法应用于实际程序,给出了一个将随机算法与约束求解结合的框架;再次,研究结合了面向满足约束和覆盖程序结构两个目标的局部覆盖搜索技术;并在最后将该搜索技术与约束求解相结合,通过提出交互求解框架将其融入静态测试框架中,给出了一个混合测试算法。基于上述研究成果,本文实现了一个自动测试数据生成系统Coherent,并在该系统上对一系列实际的程序进行了实验,与现有的系统进行了比较。实验结果表明,该系统及其使用的算法达到了预期的效果,能处理较为复杂的数据结构,在合理的计算代价下,能针对C语言子集描述的真实程序生成有较高覆盖率的测试数据集。





上一篇:Web服务组合流程可视化验证方法研究与实现
下一篇:面向MPEG-4基于对象编码的视频分割算法的研究
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩课程推荐
|网站地图|网站地图