Avoid indirection in tests at all costs
Argues that test code should prioritize readability and avoid excessive indirection, even at the cost of code duplication, to simplify debugging.
Argues that test code should prioritize readability and avoid excessive indirection, even at the cost of code duplication, to simplify debugging.
A guide to verifying .NET dependency injection containers to catch missing registrations and captive dependencies at startup.
Explores the concept of testability in software architecture, its importance for quality and continuous delivery, and breaks down key components like controllability.
Explores the importance and benefits of automated testing in software development, addressing common barriers and the value of testing culture.
Explores why data and ML pipeline tests break incorrectly and offers strategies for writing more robust unit, schema, and integration tests.
Explains end-to-end (E2E) testing methodology, its purpose in simulating real user scenarios, and its role in a robust CI practice.
A guide on introducing Test-Driven Development (TDD) to a software team through leading by example and building consensus.
Learn how to write automated tests for your Django project to verify functionality and save time on manual checks.
A guide to diagnosing and fixing slow CI/CD pipelines, focusing on reducing lead time to under 15 minutes with anti-patterns and optimization strategies.
A software developer draws parallels between scientific experiments and software development, discussing how unexpected test results and failures can be valuable learning opportunities.
Explores using resilient randomized tests to improve software system robustness and prevent regressions during maintenance and change.
A discussion on why there's no single correct way to write tests, challenging the dogma around unit testing and TDD.
A practical guide to Test-Driven Development (TDD), explaining the red-green-refactor cycle and when it's most beneficial to use.
Explains the importance of frontend testing for user experience, team confidence, and preventing production bugs in non-trivial applications.
Argues against clearing the database between automated tests, citing speed, correctness, and parallelism benefits.
Explains why you should make your tests fail to ensure they are actually testing the intended functionality and not giving false confidence.
A guide on shifting testing focus from code coverage to use case coverage to build confidence in applications.
Argues that code coverage is a flawed metric for software quality, comparing it to IQ tests, and demonstrates its limitations with examples.
An article explaining the fundamentals of software testing, from basic assertions to advanced frameworks, and how to build your own testing tools.
The author explains how automated testing saves time and builds confidence in software development, based on personal experience.