7 Benefits of Unit Testing

7 Benefits of Unit Testing

We as developers hesitate to add unit testing to our work routine. Some refuse to do so because writing extra code adds more time and effort to an already busy day.
What is often not considered is that going the extra mile may save time in the long run. Eliminating unit testing is only time-saving if your code is going to work bug free….

If you need more reasoning, here is a short overview of the major benefits:

1. Unit testing reduces the number of bugs in the production code.

The goal of unit testing is to find bugs early in the process, before the product is released. Unit testing can be applied as early as when the code is still being written. The earlier we find bugs, the cheaper it is to fix them, and the happier everyone is.

2. Automated tests can run as frequently as required.

Unit testing is an automated test. Once written, it can be used as often you need it. If the code is changed later, this test can point to problems without additional effort.

3. Unit testing makes it easier to change and refactor the code.

Since automated unit testing can catch bugs easily, you can feel more confident when making changes to your code, even if the changes are beyond trivial ones.


unit testing, mocking

4. Unit testing can improve code design, especially with test-driven development.

This is a topic in its own right, but when you consider unit testing, you have to make sure that your code is testable. This improves the overall code design by clear unit separation, defining better unit interfaces and so on.

5. Unit tests are a form of documentation.

Unit tests fix the software’s behavior – they are passed only if the software works as intended. Thus everyone looking at a test can conclude how the unit is supposed to work.

6. Unit testing improves team work.

Seriously! An additional benefit of unit testing, as well as documentation, is that it improves teamwork. Your colleagues can review your code and coordinate their code accordingly.

7. Unit testing inspires confidence and is fun!

You develop software and then you write tests to examine if it works. You will be able to validate in the early stages whether your code is actually functional.
Once your tests are passed, you feel confident knowing that your software is in good shape. Many issues can be avoided this way (although not all). Knowing that your code is legit gives you a good feeling…and this is fun!


One comment

  1. Erik Dietrich October 24, 2012 at 5:10 pm

    Unit tests help me break tasks into manageable chunks.  It’s easy to start thinking on the module or class level and tripping over yourself trying to implement everything at once before running/testing (or even compiling).  With TDD, you’re forced out of that mindset.  You can only focus on the next simple, incremental functionality you want to add and thus problem you want to solve.

Leave a reply

Required fields are marked (*)