Abstract:In the process of software testing, the expected output of a program under test is an important factor in judging whether the program is defective or not. Metamorphic testing technique uses the properties of the program under test to check the output of the program, so as to effectively solve the problem of being difficult to construct the expected output of the program. In recent years, metamorphic testing has blossomed in the field of software testing. Many researchers have optimized techniques related to metamorphic testing and applied them to various fields to effectively improve software quality. This study summarizes and analyzes the research work of metamorphic testing from the following three aspects: theoretical knowledge, improvement strategies and application areas, and focuses on the research results of the past five years. Meanwhile, the potential research is discussed when metamorphic testing is applied for parallel programs. First, the basic concepts of metamorphic testing and the metamorphic testing process are provided. Next, according to its steps, the optimization techniques for metamorphic testing are summarized from the four perspectives: metamorphic relationships, test case generation, test execution, and metamorphic testing tools. Then, the application fields of metamorphic testing are listed. Finally, based on the existing research results, the problems faced by metamorphic testing are discussed in parallel program testing, and the possible solutions are provided for further research.