Software systems have increased in size and complexity. As a result, object-oriented programming (OOP) is increasingly being used in the development of such large and complex systems. Traditional procedural programming requires a design method that follows a sequential flow of control, which is difficult to follow in the case of large systems design. Thinking in terms of real-life objects and their interactions makes design easier in the case of OOP. However, OOP comes with its own set of disadvantages and testing is one of them. Testing of such systems requires much more effort and time. In our approach the program is analyzed to build a system dependence graph-based model. This model is analyzed for test script generation and to find state-save points within the program where the state of the program can be saved and reused for executing another test case. The test cases are prioritized looking at the structural complexity of the program. The distributed testing presented here is different from traditional distributed testing, where they address testing of web and distributed applications. The distributed architecture developed in this work enables testing of OOP in an efficient manner. The concept is implemented for Java programs as there is support for continuation.