Software Testing is the pre-eminent part of the software development life cycle process. It is the process of evaluating system or its components with the specified requirements or not. It is important process by means of accessing the quality of software, reusability and traceability of the requirements specified. There are many number of testing techniques and tools available for this task. Software testing is an essential part of research and lot of development has been made in this field. In this chapter, testing techniques and tools including test design tools, load and performance testing tools, test management tools, test implementation tools, test evaluation tools, static analysis tools, Basic path testing, Loop testing, Control structure testing, code based techniques, Path testing, data flow testing, syntax testing has been described. Some distinctive latest research and development in testing strategy have been summarized.