While traditionally mutation operator are designed as a random process, previous work also tried to design more realistic mutation operators by learning from real bug fixes [1]}, by training an adversary to the repair model [2]} or by finding replacements that naturally fit the context [3]}.
