Incremental symbolic execution for automated test suite maintenance

Sarmad Makhdoom, Muhammad Adeel Khan, Junaid Haroon Siddiqui
2014 Proceedings of the 29th ACM/IEEE international conference on Automated software engineering - ASE '14  
Scaling software analysis techniques based on source-code, such as symbolic execution and data flow analyses, remains a challenging problem for systematically checking software systems. In this work, we aim to efficiently apply symbolic execution in increments based on versions of code. Our technique is based entirely on dynamic analysis and patches completely automated test suites based on the code changes. Our key insight is that we can eliminate constraint solving for unchanged code by
more » ... ng constraints using the test suite of a previous version. Checking constraints is orders of magnitude faster than solving them. This is in contrast to previous techniques that rely on inexact static analysis or cache of previously solved constraints. Our technique identifies ranges of paths, each bounded by two concrete tests from the previous test suite. Exploring these path ranges covers all paths affected by code changes up to a given depth bound. Our experiments show that incremental symbolic execution based on dynamic analysis is an order of magnitude faster than running complete standard symbolic execution on the new version of code.
doi:10.1145/2642937.2642961 dblp:conf/kbse/MakhdoomKS14 fatcat:6mvcgrhwcvbn5eyt2eg4jwz6tu