Photo

What doesn't the 100% Code Coverage metric tell us?

Mateusz Wojczal

from Escola (Poland)

About speaker

CTO Fullstack/DevOps developer.

Full-stack web developer/DevOps since 2005. Starting as an expert in ActionScript, throughout my career, I have gained commercial experience coding in PHP, JavaScript, Node.

About speakers company

.

Abstracts

broad

The metric of 100% code coverage has become a frequently used buzzword in the software development world, suggesting excellent testing quality. However, it's worth remembering that achieving full code coverage does not guarantee that all possible test cases have been considered. Focusing solely on the 100% code coverage metric can lead to overly complicated tests or the creation of tests that don't actually verify important aspects of the code. It's important to use code coverage as one of many quality indicators for tests while also focusing on finding and eliminating real weaknesses in the testing process and ensuring a thorough verification of the application's logic and functionality.

Yet some additional techniques like Static Code Analysis are working great next to high code coverage. Mutation testing is a type of software testing that involves deliberately introducing errors (so-called mutations) into the program's code to assess the quality of unit tests. In mutation testing, the program undergoes a series of mutations, and tests are then run to check whether the tests detect these changes. Fuzz testing, also known as fuzzing, is a software testing technique that involves inputting random, distorted, or invalid data into a program to detect errors or security vulnerabilities. Fuzz testing allows for the automated generation of a massive number of tests, which can help in uncovering hard-to-detect bugs in software.


Introduction:

Speaker's background: Mateusz Wojczal
Career milestones (e.g., CEO Qunabu Software House, CTO Escola, Wellms Open Source Headless LMS)
100% Code Coverage Metric:

Discussion on what the 100% code coverage metric does not tell us.
Different types of code coverage:
Function coverage
Statement coverage
Branch coverage
Line coverage
Evaluation of Code Coverage:

Does 100% code coverage indicate good code quality?
Common perceptions of code coverage percentages (e.g., libraries or frameworks boasting 90%+ coverage).
Comparison of Code Coverage Approaches:

Questions on which method of coverage measurement is better.

The Program Committee has not yet taken a decision on this talk

other talks of this topic

Photo
Three Flavors of Pokémon - Framework Agnostic UI Testing

Shelly Goldblit

Dell Technologies

broad
Photo
Go performance profiling in theory and practice

Alexey Palazhchenko

FerretDB Inc.

broad
Photo
Workshop: Master Anti-Ban & Web Scraping Techniques (2h)

Fabien Vauchelles

Scrapoxy

specific
Photo
Simple and stable UI tests with Ultron

Aleksei Tiurin

Exness

specific
Photo
JavaScript is weird. MythBusters special.

Małgorzata Janeczek

Sector Alarm Tech

broad
Photo
Taking Shortcuts Beyond Your IDE

Annelore Egger

OpenValue Switzerland

broad
Photo
How we elevated tracking data accuracy from ~60% to ~80%

Alina Krasavina

Delivery hero

broad
Photo
Putting the asm in Wasm: from bytecode to native

Edoardo Vacchi

Tetrate

specific
Photo
Path to Golden Path

Daniel Drack

FullStackS GmbH

broad
Photo
What the @#!? is Auth

Warren Parad

Authress

specific
Photo
How Unit Testing Saved My Career

Annelore Egger

OpenValue Switzerland

broad
Photo
Throw exceptions... out of your codebase

Guillaume Faas

Vonage

specific
Photo
UX at the centre of system development and design

Anesu Makwasha

Tose Technologies

specific
Photo
From null to applications on Kubernetes

Roberth Strand

Sopra Steria

specific
Photo
You don't need to implement GraphQL

Sefi Ninio

Tikal Knowledge

specific
Photo
Sculpting Data for Machine Learning: Generative AI edition

Rishabh Misra

Attentive Mobile Inc

broad
Photo
Become a Gen AI Bot Master in Just 50 Minutes – No Kidding!!

Ambesh Singh

Visionet Systems Deutschland

broad
Photo
Algorithm Of Massively Parallel Networking In C++

Vladislav Shpilevoy

VirtualMinds

specific
Photo
Deep dive into the postgres index types

Jesús Espino

Mattermost Inc.

specific
Photo
Crafting the Ultimate Docker Image for Spring Applications

Pasha Finkelshteyn

BellSoft

specific
Photo
Continuous Profiling on K8s - why, when and how

Ant(on) Weiss

PerfectScale

specific
Photo
C# 13 Unleashed: Live Demos of my Top 10 Cutting-Edge Features!

Ambesh Singh

Visionet Systems Deutschland

broad
Photo
Why You Ignore Best Practices and How You Can Fix It

Annelore Egger

OpenValue Switzerland

broad
Photo
From Server to Serverless - A story of saving Cost

Yoav Nordmann

Tikal Knowledge

specific
Photo
An Efficient Git Workflow For High-Stakes Projects

Vladislav Shpilevoy

VirtualMinds

specific
Photo
Pros and Cons of Jetpack Compose Toolkit

Stevan Milovanovic

InterVenture

specific
Photo
Collaborative applications and how to make them fast

Bartosz Sypytkowski

appflowy.io

specific