The increasing use of software has deeply affected people's lives, especially in many safety-threatening industries, such as pharmaceuticals, aviation, and nuclear energy, and this trend has become more pronounced with the complexity of software. At the same time, it has also given rise to a worrying number of software failures, which not only lead to financial losses, but may even be life-threatening. Along with the increase in software costs, more than half of the repair costs are passed on to consumers. Therefore, in order to reduce cost and improve software quality, research on software fault localization must be strengthened. This paper introduces common fault location techniques, classifies and explains their principle models according to the information and location methods utilized in performing the location, and compares the advantages and disadvantages of different methods, and analyzes the differences between basic fault location techniques and multi-fault location techniques as well as the differences between basic fault location techniques and multi-fault location techniques, and finally summarizes the existing fault location techniques and presents the future research direction is proposed.