摘要
针对高可信软件提出一种软件脆弱性自动测试方法。与传统测试方法不同,该方法对待测试程序进行预处理,使用自动机学习算法构造软件与环境交互的抽象机模型,在符号化执行迭代过程中利用抽象机模型指导符号化执行,并动态生成测试数据,同时精化交互抽象机用于后继的符号化迭代测试。解决了传统符号化执行测试技术中缺乏指引、具有较高盲目性的问题,同时也提高了符号化执行测试的效率和代码覆盖率。
An automatic testing approach was proposed with dynamic symbolic execution and model learning. The model that represents I/O interaction of program with its environment was constructed by stepwise learning algorithm. With abstract interaction model, the process of dynamic execution is guided by states of the model,and test data is automati- cally generated. Abstract interaction model is also refined by the test data and used for further execution. The problem that traditional symbolic execution lacks guidance is solved, and its speed and code coverage rate are also improved.
出处
《计算机科学》
CSCD
北大核心
2013年第8期161-164,共4页
Computer Science
基金
中央高校自主科研基金(CCNU11A01012
CCNU11A02007)
湖北省自然科学基金(2010CDB04001)资助
关键词
自动机
自动测试
符号化执行
抽象机
Automation
Auto testing
Symbolic execution
Abstract machine