top | item 21644220

Mutation testing based on LLVM (2018) [pdf]

27 points| luu | 6 years ago |lowlevelbits.org | reply

6 comments

order
[+] gkfasdfasdf|6 years ago|reply
For a great explanation of why you would want to use mutation testing, see https://pitest.org/ (a similar tool but for Java). In short - it is to gauge the quality of your test suite, because ideally any mutation of your app should cause a test failure.
[+] amelius|6 years ago|reply
Well, not any mutation. Deleting an assertion should not cause any problems. Replacing bubblesort by quicksort shouldn't either. Etc.
[+] eneyman|6 years ago|reply
Is mutation testing different than mutation-based fuzz testing? If so, how?
[+] jononor|6 years ago|reply
Mutation testing mutates the program (by making changes in the code, like flipping a condition in an if statement), and then checks whether the test suite catches it. That is, it tests the tests.

Mutation-based fuzz testing mutates the input to the program (often by starting from know-valid data and applying a mutation to the data). So it tests the program, much like unit-tests.