1. A method for detecting bugs in an application, the method comprising: executing a test application in a first virtual machine; creating a snapshot associated with the first virtual machine and the test application at a fork point; executing the test application at the fork point of the test application in a second virtual machine generated using the snapshot at the fork point, wherein the fork point of the test application defines a point in the test application after at least one predetermined input is applied to the test application; applying a test input to the test application executed in the second virtual machine; responsive to applying the test input, recording a test output comprising a first output type and a second output type; and determining that the test input is associated with a bug based at least in part on a distance of an output vector that indicates that the test output is associated with a bug, the distance of the output vector being determined using a first output differential between the first output type of the test output and a corresponding first output type of a happy path output associated with a happy path input at the fork point and a second output differential between the second output type of the test output and a corresponding second output type of the happy path output, wherein the happy path input is an input value that provides a desired or error-free execution of the test application.