The modern software development requires more efficient production methods than ever before. It has been recognised that benefits can be obtained in software development by using object-orientation. Testing, however, has gained less attention, although it is still an important task in the software development to achieve such goals as finding errors and quality. The goal of this paper is to study how object-orientation affects testing as well as how the testing techniques that are adapted for object-orientation can be used for test design purposes. Utilisation of the Unified Modelling Language (UML) in testing is introduced, and some practical solutions to avoid the obstacles of the testing of object-oriented software are addressed as well. Moreover, these solutions are combined and a test automation system (test driver implementation), which makes it easier to test the object-oriented software, is presented. Finally, the testing techniques that are studied, are applied to a demonstration system, which is designed and implemented by using a CASE tool called Rhapsody. As Rhapsody provides its own impact to testing and test design, it is shown how the various UML diagrams are used for test design purposes in the context of Rhapsody. Although object-orientation provides benefits for software development, it can be argued that the testing of object-oriented systems is occasionally more difficult compared to the testing of traditional systems. However, by planning tests carefully and taking the special needs of the testing of object-oriented software into account, these obstacles can partially be avoided. Furthermore, since the UML provides a notation to express software designs, and as object-orientation emphasises functional testing, the UML gives information for test design that should not be overlooked.