Are Your Tests Slowing You Down? • Trisha Gee • GOTO 2025
Summary
Trisha Gee's GOTO 2025 talk identifies critical bottlenecks in software testing: writing, troubleshooting, and execution. She underscores testing's importance for developer confidence, despite common frustrations. For writing tests, IDE features like live templates often surpass current AI tools for boilerplate, though AI aids in generating test data and considering edge cases. The core challenge is the "thinking" required to define test behavior. Troubleshooting is hampered by poorly named or structured tests; adopting "should" prefixes, assertEquals, and Given-When-Then patterns improves clarity. Tools like Devloity, with build scans and AI-powered test failure grouping, assist in diagnosing failures across code, data, or infrastructure. To accelerate execution, strategies include build caches (e.g., Spring Boot from 20 to 3 minutes), parallel execution, and predictive test selection, which uses machine learning to run only relevant tests, often cutting execution time by two-thirds. Flaky tests must be identified, quarantined, and fixed, as they signal underlying issues.
Key takeaway
For Software Engineers aiming to accelerate development cycles, prioritize investing time in writing clear, well-structured tests. Your tests should provide fast, informative feedback, especially when they fail. Implement build caches, parallel execution, and predictive test selection to drastically reduce test run times. Actively identify, quarantine, and fix flaky tests, as ignoring them erodes confidence and wastes resources. Focus on the "thinking" aspect of testing, not just typing, to ensure your test suite truly documents expected system behavior.
Key insights
Testing's value lies in reliable failures and fast feedback, driven by thoughtful design and efficient execution.
Principles
- Testing is "Xanax for programmers," reducing anxiety.
- The bottleneck in testing is thinking, not typing.
- Tests are most valuable when they fail informatively.
Method
Troubleshoot using a scientific approach: investigate, reproduce locally, change, run, and iterate with a debugger for fast feedback. Identify flaky tests via reruns or build comparisons, then quarantine them.
In practice
- Use IDE live templates for consistent test structure.
- Adopt "should" prefixes and Given-When-Then for test names/structure.
- Mock external dependencies like databases or system clocks.
Topics
- Software Testing
- Test Automation
- Flaky Tests
- Build Caching
- Predictive Test Selection
- Developer Productivity
Best for: Software Engineer, DevOps Engineer, MLOps Engineer
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by GOTO Conferences.