A software testing technique automatically generating test suites using symbolic execution