10 Compelling Reasons to Embrace Code Testing
Written on
Chapter 1: Common Misconceptions About Code Testing
No developer has ever deployed untested or flawed code into production—at least, not me. This article discusses ten common reasons that may seem legitimate but are actually just excuses for not testing code. Let’s delve into these anti-testing statements.
Section 1.1: "It Works on My Machine"
We've all been there. Some developers run a few Unit Tests on their machines before pushing their code and expect everything to function flawlessly. They often assert that any issues must be someone else's fault. However, we all understand that relying solely on local testing is inadequate.
This paragraph will result in an indented block of text, typically used for quoting other text.
Remedy: Test your work across multiple devices and establish an automated testing framework.
Section 1.2: "Manual Tests Are Quicker"
Upon hearing this excuse, it's clear that some developers prefer building code and testing it in real-time rather than using automated unit tests. They claim they can manually test every change, but this is simply unrealistic. If manual tests seem faster, it often indicates a flawed approach.
Remedy: Prioritize quality over speed.
Subsection 1.2.1: The Code Is Untestable
While it's true that some code may not warrant extensive testing, some developers argue that testing network code is futile due to uncertainty about backend conditions. They might skip testing critical paths in favor of a quick release, but that's a misguided attitude.
Remedy: Adopt a more constructive mindset.
Section 1.3: "Testing Takes Too Long"
In some Agile sprints, it can feel like there's no time to test, especially when presenting incomplete features. However, production code should always be held to a higher standard.
Remedy: Focus on producing quality code, regardless of the stage.
Chapter 2: Overcoming Testing Excuses
The first video, "Why Should Software Engineers Write Tests for Their Code?", emphasizes the importance of testing in maintaining code quality and reliability.
In the second video, "Theo Doesn't Write Unit Tests (This Is Why You Should)", the speaker discusses the pitfalls of neglecting testing and how it can lead to significant long-term issues.
Section 2.1: "Bad Requirements"
It's a valid concern: how can one ensure code aligns with specifications if those specifications are unclear? Requirements should ideally be well-defined before any coding begins.
Remedy: Strive for clear communication and consensus on requirements.
Section 2.2: "The Code Won't Change"
Change is the only constant in software development. Any assertion that a piece of code will remain static is naive. Every line of code, no matter how stable it seems, should undergo testing initially.
Remedy: Design for flexibility.
Section 2.3: "Clients Don't Pay for Testing"
While clients may not explicitly pay for testing, they do expect quality. Without proper testing, code can become unmanageable, leading to expensive bug fixes down the line.
Remedy: Advocate for the necessity of testing to ensure maintainability.
Section 2.4: "This Code Is Too Small"
Some developers might think small pieces of code don’t require testing. Yet, as requirements evolve, even minor methods can become complex and problematic.
Remedy: Always test, regardless of the perceived simplicity.
Section 2.5: "Dependent on APIs/User Input"
Some developers may resist testing by claiming their code relies heavily on APIs or user input. However, simulating environments and creating accurate unit tests is crucial to ensure everything functions as intended.
Remedy: Utilize mocking techniques and various testing tools.
Section 2.6: "Nobody Cares"
It’s easy to think that no one will notice if software fails, but user experience and customer satisfaction matter. Issues can lead to negative feedback and increased support calls.
Remedy: Take pride in your work and recognize the impact of quality code.
Conclusion
We all make excuses from time to time, but falling into this habit can lead to lower standards. It's essential to reverse this trend and strive for high-quality code. After all, that’s what our profession demands.
About The Author
Professional Software Developer “The Secret Developer” can be found on Twitter @TheSDeveloper and regularly publishes articles through Medium.com.