|
题目:
雅宝题库答案:
****此区域为收费内容**** 需支付 1 知识币后可查看,1币=0.01元查看答案
雅宝题库解析:
自动测试数据生成技术是提高软件测试效率、可靠性,降低测试开销的重要技术手段。测试数据生成一般由对应的程序路径通过某种方法求解而得,而现有自动测试数据生成技术面临的关键题目是:如何生成一组满足测试目标的程序路径集。面向覆盖的路径生成技术通常采用深度优先和广度优先搜索的方法来遍历程序路径,然而路径爆炸题目使得这种方法不能适用于大型程序;为了解决这一题目,研究者将随机方法以及启发式方法引入路径生成中,使生成的路径能够达到较高的程序覆盖率。然而这些方法忽略了路径覆盖效率,从而导致生成的路径数量过多,增加了数据生成代价及软件测试开销。近年来研究人员提出了定向路径生成,其目标是生成能够覆盖程序特定语句的路径,这种方法能有效的解决回归测试中测试数据生成题目,但是由于不能针对目标反复进行路径生成,这种方法不适用于代码安全性分析中漏洞的验证。本课题主要研究不同场景下程序路径的生成方法。首先,针对现有路径生成方法覆盖效率低的现状,提出了分支残余度的概念,并将其应用于分支概率选择模型中,提高路径覆盖效率,从而使用较少路径达到高分支覆盖;其次,将定向路径生成方法引入代码安全性分析中,研究并发现了一种倾向于使目标缓冲区发生溢出的路径模式,从而提高了代码漏洞检测效率;最后,结合定向路径生成方法提出了一种违反约束驱动的缓冲区溢出检测方法,能够在检测出代码漏洞的同时,提供测试用例等相关信息供程序员定位并修复漏洞。基于上述研究成果,本文实现了一个程序路径生成系统SANZANG,在该系统上对一系列实际的程序进行了实验,并与现有的路径生成方法进行了比较。实验结果表明,该系统及其使用的算法达到了预期的效果,能使用较少的程序路径达到高分支覆盖率,能够在漏洞安全性检测中快速覆盖目标路径、有效检测存在的漏洞安全漏洞。 |
上一篇:非结构化数据管理系统中事务管理的研究与实现下一篇:月球车惯性/天文导航系统设计与实现
|