Abstract:Software testing is an important means to ensure quality of software and to improve reliability of software. But with the volume and complexity of software continues to increase, people constantly improve the software quality requirements. Software testing occupies an more and more important position in software development. At the same time, software testing is becoming more and more difficult. This article introduces the outline of software testing including the definition, phase, process model and purpose of software testing, then analyses and summarizes the strategies, methods and automation.