Automated coverage-driven testing: combining symbolic execution and model checking

摘要创新点软件测试是工业界最常用的软件验证技术, 而白盒测试是最基础的软件测试方法。 为了提高白盒测试有效性, 本文创新性地提出了一种混合的覆盖驱动测试方法, 它接受一个待测程序和目标覆盖准则为输入, 然后为可达的测试对象自动生成测试用例, 同时也检测出不可达的测试对象。 本文将驱动测试问题转化为特定路径的寻找问题, 提出了带引导的符号执行技术和增强的模型检查技术, 最终又将两项技术结合在一起, 进一步提高测试覆盖率并降低测试时间, 实现优势互补。

[1]  Zhendong Su,et al.  A Survey on Data-Flow Testing , 2017, ACM Comput. Surv..

[2]  A. Jefferson Offutt,et al.  Coverage criteria for logical expressions , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[3]  Bin Fang,et al.  Automated Coverage-Driven Test Data Generation Using Dynamic Symbolic Execution , 2014, 2014 Eighth International Conference on Software Security and Reliability.

[4]  Koushik Sen,et al.  DART: directed automated random testing , 2005, PLDI '05.

[5]  Zhendong Su,et al.  Combining Symbolic Execution and Model Checking for Data Flow Testing , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[6]  Gregory Tassey,et al.  Prepared for what , 2007 .

[7]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[8]  Thomas A. Henzinger,et al.  Generating tests from counterexamples , 2004, Proceedings. 26th International Conference on Software Engineering.