You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stryker supports a variety of regular expression mutators, which are listed below. Do you have a suggestion for a (new) mutator? Feel free to create an issue!
Common tokens
Original
Mutated
[abc]
[^abc]
[^abc]
[abc]
\d
\D
\D
\d
\w
\W
\W
\w
\s
\S
\S
\s
Anchors
Original
Mutated
^abc
abc
abc$
abc
\Aabc
abc
abc\Z
abc
abc\z
abc
abc\b
abc
abc\B
abc
\Gabc
abc
abc*
abc
abc?
abc
abc+
abc
Quantifiers
Original
Mutated
abc{5}
abc
abc{5,}
abc
abc{5,8}
abc
abc{5,8}
abc{4,8}
abc{5,8}
abc{6,8}
abc{5,8}
abc{5,7}
abc{5,8}
abc{5,9}
abc{5,}
abc{4,}
abc{5,}
abc{6,}
Group constructs
Original
Mutated
(?=abc)
(?!abc)
(?!abc)
(?=abc)
(?<=abc)
(?<!abc)
(?<!abc)
(?<=abc)
Character class mutators
CharClassChildRemoval
Remove a child of a character class.
Original
Mutated
[abc]
[bc]
[abc]
[ac]
[abc]
[ab]
CharClassAnyChar
Change a character class to a character class which matches any character.
Original
Mutated
[abc]
[\w\W]
CharClassRangeModification
Change the high and low of a range by one in both directions if possible.
Original
Mutated
[b-y]
[a-y]
[b-y]
[c-y]
[b-y]
[b-z]
[b-y]
[b-x]
Predefined character class mutators
PredefCharClassNullification
Remove the backslash from a predefined character class such as \w.
Original
Mutated
\d
d
\D
D
\s
s
\S
S
\w
w
\W
W
PredefCharClassAnyChar
Change a predefined character class to a character class containing the predefined one and its
negation.
Original
Mutated
\d
[\d\D]
\D
[\D\d]
\s
[\s\S]
\S
[\S\s]
\w
[\w\W]
\W
[\W\w]
UnicodeCharClassNegation
Flips the sign of a Unicode character class.
Original
Mutated
\p{Alpha}
\P{Alpha}
\P{Alpha}
\p{Alpha}
Quantifier mutators
QuantifierShortModification
Treat the shorthand quantifiers (?, *, +) as their corresponding range quantifier
variant ({0,1}, {0,}, {1,}), and applies other mutations to the new node.
Original
Mutated
abc?
abc{1,1}
abc?
abc{0,0}
abc?
abc{0,2}
abc*
abc{1,}
abc+
abc{0,}
abc+
abc{2,}
QuantifierReluctantAddition
Change greedy quantifiers to reluctant quantifiers.