The paper reviews the software testing and the different tools used for testing the software.The testing is based on the methods of its attributes,security and its usability.Testing is an important part in software engineering where the coding gets deployed based on the testing.The testing can be done with different parameters of different types .I do not mean to give here a complete survey of software testing.Rather  I intend to show how unwieldy mix of theoretical and technical challenges faced by the testers between the state of art and practice.