Testing is an important phase of quality control in Software development. Software testing is necessary to produce highly reliable systems. The use of a model to describe the behavior of a system is a proven and major advantage to test. In this paper, we focus on model-based testing. The term model-based testing refers to test case derivation from a model representing software behavior. We discuss model-based approach to automatic testing of object oriented software which is carried out at the time of software development. We review the reported research result in this area and also discuss recent trends. Finally, we close with a discussion of where model-based testing fits in the present and future of software engineering