程序测试输入的自动生成技术框架及其优化实现
【学位单位】:南京大学
【学位级别】:硕士
【学位年份】:2019
【中图分类】:TP311.53
【部分图文】:
?第一章绪论??要不充分条件。为了方便阐述其中原理,我们还是先看一个如图1-2所示的代??码案例。??1?void?func(char*?s)?{??2?int?cnt?=?0;??3?for?(int?i?=?0;?i?<?100;?i++)?{??4?if?(s[i]?==?'x')?{??5?cnt++;??6?}??7?}??8?assert(cnt?!=?25);??9?if?(cnt?==75)?{??i〇?bug?();??11?}??12?}???图1-2:阐述语句全覆盖以及路径全覆盖的程序示例。??与图1-1中的代码案例一样,在当前这个例子中,函数/?nc的输入是一个??长度为100的字符串,大小为100个字节。在这其中:???如果我们想要触发位于第8行的程序中断,需要满足:在作为输入的100??个字节当中,有且正好只有25个单字符’x’。此处,我们将这样一个测试??输入约束记为??鲁如果我们想要触发位于第10行的错误函数,需要满足:在作为输入的100??个字节当中,有且正好只有75个单字符’X’。此处,我们将这样一个测试??输入约束记为办。??这里可以发现:(:洲办是相互矛盾的。??现在我们己经知道全覆盖从强到弱可以分为:“路径全覆盖(Full?Path??Coverage)?”、“分支全覆盖(Full?Branch?Edge?Coverage)?”、“语句全覆盖??(Full?Statement?Coverage)?”。在图1-2所示的代码案例中,我们可以发现:??參当我们达成语句全覆盖的时候
Point)?”的两次执行,针对所有后续将会被读取的变量,如果这些变量当前取??值己经相同,那么两者后续路径必然相同,后续符号分析纯属冗余,可以进行??剪枝(状态剪枝原理如图3-1所示)。除了?RWset之外,在GUIDESE中,用??户向被测程序中插入特殊注释,而GUIDESE则据此遵循用户意志,有目标的??进行状态合并、路径剪枝。MULTISE通过利用状态合并,引导探索方向前往目??标执行路径。??不管如何,状态合并的核心思想是:针对抵达同一程序执行点的两次执??行,如果两者变量状态高度相似,那么两者可以进行合并(如果被判定为等??价),从而剔除冗余、指导搜索(状态合并原理如图3-2所示)。??
'''???參。??图3-1:在搜索空间中,状态剪枝原理示意。??图中所有节点代表测试输入,在这其中,黑色节点代表的是目标测试输入,带义号的节点??代表的是那些冗余或者尤价值的测试输入。状态剪枝通过提前剔除这些冗余或者无价值的??测试输入,从而提高邻居选择策略效果。??最后,让我们先回到动态符号执行所面临的挑战。我们现在己经知道,由??于路径约束内部存在依赖关系,后缀约束总是在控制流程上依赖前缀约束。随??意取反某个分支约束,极有可能导致被取反分支约束同前缀约束之间产生矛??盾。最终导致,很多时候,我们很难沿着当前执行路径,通过直接取反目标分??支约束,进入目标分支。另外一边,由于计算资源有限,但是现实程序中的执??行路径总量几乎无限
【相似文献】
相关期刊论文 前10条
1 山磊;;程序测试的心理研究[J];甘肃科技纵横;2006年06期
2 李淑宁;数据流分析在程序测试中的应用[J];小型微型计算机系统;1988年04期
3 黄琳;;符号踪迹测试工具——STTT[J];计算机研究与发展;1989年03期
4 李友仁;刘少英;;COBOL程序测试环境CPTS-1的设计与实现[J];西安交通大学学报;1989年01期
5 刘剑;;重视程序测试 提高软件质量[J];金融电子化;1999年03期
6 陈钢;王能斌;;程序测试与一个程序测试工具[J];南京工学院学报;1983年02期
7 刘远信;程序测试[J];南昌大学学报(理科版);1996年04期
8 赵千川;王达;薛文轩;;PLC程序测试与验证的研究进展[J];清华大学学报(自然科学版);2011年11期
9 黄采伦;RS-485 通讯接口及程序测试方法[J];电子仪器仪表用户;1998年02期
10 郭声;浅谈AXE—10的程序测试系统[J];江苏通信技术;1994年01期
相关硕士学位论文 前10条
1 曹阳;程序测试输入的自动生成技术框架及其优化实现[D];南京大学;2019年
2 王雅楠;基于微信的智慧校园应用[D];西安电子科技大学;2018年
3 胡琰琳;程序正义中的“声音”[D];浙江工商大学;2018年
4 徐文飞;选矿过程自动化逻辑控制程序测试平台的设计与开发[D];东北大学;2015年
5 张超群;选矿过程电气设备逻辑控制程序测试平台的设计与开发[D];东北大学;2014年
6 杨晓光;泵和阀门类设备逻辑控制程序测试平台的研发[D];东北大学;2011年
7 王文军;Java ME程序测试平台的若干关键技术研究[D];大连海事大学;2008年
8 李杜;字符识别技术研究及其在机器视觉测控中的应用[D];江南大学;2011年
9 张新杰;程序切片技术研究及切片方案设计[D];电子科技大学;2017年
10 王大伟;回归测试中基于需求优先级的用例选择算法研究[D];浙江工业大学;2012年
本文编号:2882479
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/2882479.html