National Natural Science Foundation of China (No.61773384, No.61503220);National Key Research and Development Program of China (No.2018YFB1003800-02-01)
Mutation testing is a fault-oriented software testing method
which adopts manually injected defects for guiding the generation of test data and evaluating their adequacy. Researchers in the community of software engineering have paid much attention to mutation testing. The prevalence of multi-core architecture makes an ever increasing need for developing reliable concurrent programs. Many scholars have attempted to employ mutation testing to concurrent programs
with the purpose of improving the reliability and efficiency of testing these programs in recent years. Firstly
the difference between this study and previous reviews is displayed. Then
following the background related to concurrent programs and mutation testing
this study surveys the progress on mutation testing of concurrent programs from the following three aspects
mutation implementation
mutation testing adequacy criteria
and test data generation. Specifically
it surveys techniques related to optimizing mutation testing from such aspects as designing mutation operators
selective mutation
high-order mutation
weak mutation
methods of test data generation
and prototype tools. Finally
this study discusses some topics to be further researched.