Overview
Explore mutation testing in Python through this 45-minute conference talk from GOTO Copenhagen 2015. Dive into the theory and practice of systematically mutating source code to validate test suites. Learn about the basic algorithm, goals, and benefits of mutation testing, including coverage analysis and detecting unnecessary code. Examine examples of mutations, discuss challenges like long execution times and equivalent mutants, and understand the Cosmic Ray tool for package-level mutation testing. Discover test system plugins, mutation operators, and module management techniques. Gain insights into multiprocessing and asyncio implementations for improved performance. Follow along with a comprehensive operational overview to enhance your understanding of this powerful testing technique for Python developers.
Syllabus
Introduction
What is mutation testing?
Basic algorithm
What does mutation testing tell us?
Goal #1: Coverage analysis
Goal #2: Detect unnecessary code
Examples of mutations
It takes a loooooooong time
Incompetence detection
Equivalent mutants
Cosmic Ray operates on packages
Test system plugins
Operators
Example operator: Reverse unary subtraction
Module management: overview
Module management: Finder
Module management: Loader
multiprocessing
asyncio
Operational overview
Taught by
GOTO Conferences