在软件测试过程中, 待测程序的预期输出是判断软件是否存在缺陷的重要因素. 蜕变测试技术是利用被测软件的属性来检查程序输出, 从而有效地解决程序预期输出难以构造的问题. 近年来, 蜕变测试在软件测试领域取得了蓬勃的发展, 许多研究人员将蜕变测试技术进行优化, 将其运用到各个领域, 有效提高了软件质量. 我们从原理、过程及其优化, 应用领域3个方面, 总结蜕变测试的研究工作, 着重分析了近5年的研究进展, 进一步展望了蜕变测试用于并行程序时, 可能的研究主题. 首先, 介绍蜕变测试的基本概念和蜕变测试过程; 接着, 从蜕变关系、测试用例、测试执行过程以及蜕变测试工具4个角度, 总结蜕变测试优化技术; 然后, 汇总了蜕变测试的应用领域; 最后, 基于已有研究成果, 讨论蜕变测试在并行程序测试领域面临的问题, 为蜕变技术在并行程序测试领域的研究提供可能的思路.
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.