Generating effective tests and inferring likely program specifications are both difficult and costly problems. We propose
an approach in which we can mutually enhance the tests and specifications that are generated by iteratively applying each
in a feedback loop. In particular, we infer likely specifications from the executions of existing tests and use these specifications
to guide automatic test generation. Then the existing tests, as well as the new tests, are used to infer new specifications
in the subsequent iteration. The iterative process continues until there is no new test that violates specifications inferred
in the previous iteration. Inferred specifications can guide test generation to focus on particular program behavior, reducing
the scope of analysis; and newly generated tests can improve the inferred specifications. During each iteration, the generated
tests that violate inferred specifications are collected to be inspected. These violating tests are likely to have a high
probability of exposing faults or exercising new program behavior. Our hypothesis is that such a feedback loop can mutually
enhance test generation and specification inference.