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.
SabIna compys

SabIna compys
Vienna, Austria

Remote
€20-100K
Intermediate
JavaScript
.NET
+1

Featured Partners

Related Articles

View all articles
CH
Chris Heilmann
Dev Digest 138 - Are you secure about this?
Hello there! This is the 2nd "out of the can" edition of 3 as I am on vacation in Greece eating lovely things on the beach. So, fewer news, but lots of great resources. Many around the topic of security. Enjoy! News and ArticlesGoogle Pixel phones t...
Dev Digest 138 - Are you secure about this?
LM
Luis Minvielle
The Best Upcoming IT Webinars
Now that you already know what IT webinars are and how they can help you level up your professional appeal, you might want actually to get into one. Live tech webinars are one of the best ways to stay on top of the latest trends and tools because eit...
The Best Upcoming IT Webinars
CH
Chris Heilmann
Dev Digest 109 -Egg-citing things…
As we are heading into the Easter break, here are some things to spend some time on. There's resources on improving the performance of your code and you hear from the winners of CODE100 Amsterdam what it was like to be on stage. Also, hang tight as t...
Dev Digest 109 -Egg-citing things…

From learning to earning

Jobs that call for the skills explored in this talk.

Senior QA Engineer

CheckYeti
Vienna, Austria

Senior
Selenium
JavaScript
Manual Testing
Automated Testing
Software Tester

Think-cell
Foster City, United States of America

Intermediate
Unit Testing
Manual Testing
Automated Testing