How I Learned to Love Writing Tests (and You Can Too!)
Tags: tdd, codequality, programming
Published: 2023-03-16 08:56:34


![Coding](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nxcpwiv79jrel1jc31iq.png)

As a software engineer, I used to think writing tests was boring and unnecessary. I was more interested in writing the actual code and getting the product out the door. But once I tried Test Driven Development (TDD), I realized how wrong I was. In this article, I want to share my personal journey towards loving writing tests and how you can too!

![Tests can't fail if there aren't any tests](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uhza3efede6ezdg71eqv.png)


### My Initial Doubts about TDD

Let’s face it, writing tests can feel like a chore. Who wants to spend their time writing code to test other code? I certainly didn’t. I had always seen testing as something that could be done manually — running the application, executing the code, observing the results, and debugging if necessary. So, when I first heard about TDD, I was hesitant to give it a try. It seemed like a lot of extra work that would slow me down, and I was unsure about how to write good tests.


![Not sure if TDD or development driven testing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wgiuo80q4aicoax2niod.png)


### How TDD Changed My Mind

Despite my reservations, I decided to give TDD a try on a new project I was working on. The first few tests I wrote felt awkward, and it was challenging to write code to pass them. But after a while, I began to appreciate the feedback loop TDD provides. Every time I wrote a test and ran it, I felt a rush of satisfaction when the test passed. It was like a game, and I was determined to win.


![Comic about debugging without tests](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9e0n4uon3clvd6byqo0w.png)
How many times you "relaunched" the app to "test" it?



### The Benefits of TDD

With TDD, I found that I could catch bugs early in the development process. I was able to identify and resolve issues quickly, which saved me time in the long run. TDD also helped me improve the design of my code. By writing tests first, I was forced to think about how my code should behave, and I was able to create more modular, extensible, and maintainable code. I felt more confident about my code, and that made me a happier developer.

TDD also helped me deliver code faster. Initially, I was worried that writing tests would slow me down, but I found that TDD helped me identify issues early, which meant I spent less time debugging. And as I got more comfortable with writing tests, I found that I could write code faster since I had a better understanding of what I was trying to achieve.


![I don't need to debug my code, I use tdd](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jmzosw1brov3bla0wap6.png)
Jokes aside, it is true. I hardly debug my code.

### How to Get Started with TDD

Getting started with TDD can be intimidating, but it doesn’t have to be. The first step is to understand the basics of writing tests and how they should behave. You can start by writing a simple test for a function that you want to implement. Once you have a test in place, you can write the code to make it pass. Rinse and repeat. The key is to start small and build up from there.

### Conclusion
In conclusion, TDD isn’t just about testing; it’s about writing better code. It may seem like a chore at first, but the benefits are well worth it. If I can learn to love writing tests, so can you! Give TDD a try and see for yourself how it can transform your coding practice. Remember, the key is to start small and build up from there. Happy testing!


![take the red pill](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/68a5g93hzur77vgdfcfm.png)
It does feel like these after you do it for a while.