Generating Test Data for Branch Coverage Soffa methods Branch coverage is an important criteria used during the structural testing of programs. In this paper, we present a new program execution based method to generate input data that exercises a selected branch in a program. The test data generation is initiated with an arbitrarily chosen input from the input domain of the program. A new input is derived from the initial input in an attempt to force execution through any of the paths through the selected branch. The method dynamically builds the path as it tries to force execution through the selected branch. We have implemented the technique and present experimental results of its performance. The method is general and can be easily extended to derive input test cases for other types of structural coverage criteria such as data flow testing.