摘要
本发明公开了一种快速获取到达程序指定点测试用例的方法,包括:首先在给定的程序中设置一个目标代码点,该目标点代表程序实际运行时出现程序运行错误的位置;利用静态分析技术提取该目标点的dominator语句,dominator语句为到达目标点的过程中所必须经过的中间语句;增强学习技术利用Q-learning,将其写入一个独立的python文件中;符号执行工具选择KLEE,当KLEE遇到分支决策时,将与包含Q-learning算法的python文件进行socket通信,当前分支的决策将由Q-learning决定;若KLEE遵循了Q-learning算法并且在走完分支后遇到dominator语句,则返回给Q-learning一个值为正的奖励,否则为负的奖励;Q-learning将根据得到的奖励值更新决策;若KLEE覆盖到目标点则生成达到相应目标点的测试用例或达到给定时间则终止符号执行工具KLEE。
- 单位