Steering symbolic execution to less traveled paths