1. Introduction
Developing any program/application that is free of defects is very important and really challenging. Code review, unit testing, integration testing, system testing, functional testing, etc are different steps in the development lifecycle that helps in detecting defects in software. As the system under development becomes more complex, covering all possible scenarios as part of testing may not be possible as it may be too costly. Similarly, reproducing the fault scenarios reported from the deployment site may not possible in a lab environment under simulation mode. In addition, there can also be other defects which are very difficult to identify and reproduce such as buffer overflow, memory corruption, memory leak etc. Identifying such issues manually takes lot of time and sometimes it is hard to find.










