Michael Contento

Mutation Testing and Fuzzing in C#

What if your 100% code coverage score is meaningless? Learn how mutation testing and fuzzing find the critical bugs your unit tests miss.

Mutation Testing and Fuzzing in C#
#1about 3 minutes

Understanding the limitations of code coverage metrics

Different code coverage strategies like function, statement, and branch coverage can be misleading and turn testing into a numbers game.

#2about 4 minutes

Introducing mutation testing with a practical example

Mutation testing flips the testing paradigm by intentionally introducing small bugs (mutants) into your code to see if your existing tests can catch them.

#3about 3 minutes

Automating mutation testing in C# with Stryker

The Stryker framework for .NET automates the process of creating mutants, running tests against them, and generating an HTML report to identify weak spots in your test suite.

#4about 5 minutes

Exploring the different types of code mutations

Stryker can generate a wide variety of mutants by altering arithmetic operators, comparison logic, LINQ expressions, and even regular expressions to thoroughly challenge your tests.

#5about 4 minutes

Introducing the core concepts of fuzzing for quality

Fuzzing aims to find program crashes by feeding it mutated, semi-random input that is more effective than purely random data for discovering edge cases.

#6about 2 minutes

How coverage-guided fuzzing intelligently finds bugs

Coverage-guided fuzzing uses instrumentation to track which code paths are executed, prioritizing mutated inputs that explore new areas of the application.

#7about 3 minutes

Using AFL and SharpFuzz for fuzzing in C#

Combine the powerful AFL (American Fuzzy Lop) engine with the SharpFuzz library to create a test harness for fuzzing C# code, including whitelisting expected exceptions.

#8about 5 minutes

Analyzing fuzzing results and practical considerations

Learn to interpret the output from a fuzzing session to identify crash-causing inputs and consider the performance impact when integrating these tools into a CI/CD pipeline.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles

From learning to earning

Jobs that call for the skills explored in this talk.

Software Tester

Michael Page International (Deutschland) GmbH
Mainz, Germany

GIT
Java
Scrum
Python
Appium
+5