A Survey of Symbolic Execution Techniques