Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
This video was recorded on http://wrocloverb.com. You should follow us at https://twitter.com/wrocloverb. See you next year! Slides: http://slid.es/markusschirp/mutation-testing-fight-2 Markus Schirp with CAN WE WRITE PERFECT TESTS? - MAYBE! Or: Why mutation testing is as a game changer for unit tests. The pros of a solid unit test suite are well understood and accepted in the ruby community. The problem: How to define solid? Traditional metrics like line-coverage, branch-coverage and even statement-coverage can be misleading. Having a statement executed once does not mean all edge cases are specified and bug-free! Automated tools can be used to identify uncovered edge cases that will introduce bugs into your program. Mutation testing brings fuzzing to the implementation level. Unlike input fuzzing it modifies the implementation to check if the test suite can detect a huge set of automatically introduced behaviour changes. This talk will elaborate the history of testing and the metrics that are used to define coverage. And how such metrics can and have misguided development direction. It will also show examples of projects that heavily adopted mutation testing. Especially the long term effects and how the (mutation)-metrics driven approach improved developer happiness and code stability. Showing what kind of actual bugs where caught and how code became naturally streamlined. Lastly the current and future limits of existing mutation testing tools will be presented. The idea is to create the "MUST HAVE"-Feeling in the audience. Finally, you can prove that you have good tests! Do not miss it!
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the video titled "Maybe!", Markus Schirp presents an enlightening talk on mutation testing, a strategy that examines the effectiveness of unit tests in software development, particularly within the Ruby community. The main theme revolves around the question of whether perfect tests can exist, and Schirp argues that mutation testing is essential in enhancing the quality of tests. The following key points outline the core content of the discussion: - **Introduction to Mutation Testing**: Schirp begins by explaining mutation testing as a method for testing the tests themselves. He emphasizes the importance of validating that tests effectively catch errors that mutations (intentional code changes) introduce. - **Coverage Metrics Limitations**: Traditional coverage metrics such as line coverage, branch coverage, and statement coverage can be misleading. Schirp shares personal experiences where total coverage did not guarantee bug-free code, noting that a single executed line may not cover all edge cases. - **Mutation Testing Explained**: Mutation testing modifies code to see if existing tests can detect changes. When a test fails after a code mutation, it is said to "kill" the mutant; if it passes, the mutant is considered "alive". Schirp uses examples to illustrate how mutation testing can reveal unseen weaknesses in test cases. - **Practical Applications**: He further discusses the integration of mutation testing in real-world projects, highlighting the Axiom library and the time efficiency gained by focusing tests on public interfaces instead of running the entire suite for every mutation. - **Challenges and Limitations**: The talk also covers the challenges faced in mutation testing, including equivalent mutants (mutations that do not alter the code's behavior) and the infinite runtime problem (where mutated tests could lead to endless loops). - **Integration in Development**: Schirp encourages implementing mutation testing as part of the development workflow. He highlights its potential to enhance code quality and developer satisfaction by ensuring better test coverage. - **Concluding Thoughts**: The talk concludes with the assertion that while mutation testing is not a silver bullet, it is a valuable tool that promotes better testing practices. Schirp aims to inspire attendees to adopt mutation testing in their development cycles. Overall, the disconnect between perceived test coverage and actual error detection is at the heart of mutation testing's importance. Developers are urged to recognize that good tests identify errors effectively, leading to more stable and robust applications.
Suggest modifications
Cancel