  The process of testing any software system is an enormous task which is time
consuming and costly. The time and required effort to do sufficient testing
grow, as the size and complexity of the software grows, which may cause overrun
of the project budget, delay in the development of software system or some test
cases may not be covered. During SDLC (software development life cycle),
generally the software testing phase takes around 40-70% of the time and cost.
State-based testing is frequently used in software testing. Test data
generation is one of the key issues in software testing. A properly generated
test suite may not only locate the errors in a software system, but also help
in reducing the high cost associated with software testing. It is often desired
that test data in the form of test sequences within a test suite can be
automatically generated to achieve required test coverage. This paper proposes
an optimization approach to test data generation for the state-based software
testing. In this paper, first state transition graph is derived from state
chart diagram. Then, all the required information are extracted from the state
chart diagram. Then, test cases are generated. Lastly, a set of test cases are
minimized by calculating the node coverage for each test case. It is also
determined that which test cases are covered by other test cases. The advantage
of our test generation technique is that it optimizes test coverage by
minimizing time and cost. The proposed test data generation scheme generates
test cases which satisfy transition path coverage criteria, path coverage
criteria and action coverage criteria. A case study on Automatic Ticket Machine
(ATM) has been presented to illustrate our approach.
