Programs often contain branches to break off from their main execution. These branches contribute to the total cost of testing, because they also need to be tested. The paper presents a new approach to improve the testing of such branches by annotating them. Our tool automatically generates test-sequences. Then, invariants in the form of pre-and post-condition over the executions passing each annotated branch are dynamically inferred, and reported to the programmer for inspection. Contradiction with the programmer's assumption on what the behavior should be indicates a bug. As invariants, a certain class of simple expressions are proposed, which are discriminative enough for testing break-off behavior, while keeping their amount feasible for inspection.
- Automated testing Java
- Automated testing Object Oriented programs
- Automated unit testing
- Invariant inference
- Specification mining