With the increased production of complex software systems, verification and validation (V & V) has evolved into a set of activities that span the entire software life cycle. Among these various activities, software testing plays a major role in V&V. Conventional software testing methods generally require considerable manual effort which can generate only a limited number of test cases before the amount of time expended becomes unacceptably large. In this paper, we present a new approach to generating test cases based on artificial intelligence methods. By analyzing the branch coverage of previous test cases, an expert system is able to generate new test cases which provide additional coverage. Heuristic rules are used to modify previous test cases in order to achieve the desired branch coverage. This approach to software testing has the potential for greatly reducing the overall costs associated with branch coverage testing.