Service-Oriented Architecture (SOA) removed the gap between software and business. Today, there is a business transformation among enterprises and they adopt a service based information technology (IT) model. So, testing is necessary for SOA based applications. This paper investigates different type of approaches and techniques that address the testing problems of SOA based services. Here we also investigate the differences between SOA and web services and traditional testing and SOA testing. Various testing levels are also discussed in detail. This paper also expresses various testing perspectives, challenges of SOA testing and review the many testing approaches and identify the problems that improve the testability of SOA based services.