Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user. Software testing is the process of executing a program to locate an error. This paper describes most commonly used software testing techniques for detecting error .they is: white box testing, black box testing and grey box testing.