It is planned to investigate techniques for testing object-oriented programs. Object-oriented programming is a relatively new programming methodology which has many attractive software engineering features. While traditional programs are based on the paradigm of active procedures operating on passive data, object-oriented programming employs the the paradigm of active data objects which perform operations on themselves. To date, most research on software testing has focussed on traditional programming languages. The features of object-oriented programming suggest several additional testing techniques, which may allow for more effective testing. This research will define several families of testing techniques for object-oriented programs, build tools based on some of these techniques, and investigate the cost and effectiveness of the new techniques.