Unit testing can be great in theory – but is actually quite burdensome in practice. Writing the same code over and over again instead of creating new functionality. Making sure to adapt a whole bunch of unit tests after each change to the system. No one wants to deal with these tasks. That is why you should not waste any more time and start automating your unit testing process. Not convinced yet? Read on to find out how automating unit testing can change your life.

Before unit test automation

In case you are still manually writing the code for your unit tests, you usually do that in an ad-hoc manner. Meaning that you get some requirements, implement them, and then write some unit tests to verify that your code does what it should do. If there is some more advanced organisational effort behind it, you might have to satisfy some level of code coverage with your tests before you are allowed to push/merge your implemented feature. However, by doing so, you usually do not care about putting these unit tests into a bigger picture, by applying design patterns or common naming strategies. Doing so would take even more time to think about your tests, which in turn means less time for implementing new, cool functionality. And anyways, they have already fulfilled their purpose to show that your code works. A good indicator for spaghetti unit tests is that if someone else looks at your code, there are a lot of questions (maintainable code should be self-explainable – because what if you are not there to explain any more). So what’s the problem here? Very soon, you will get to a state where you do not want to touch your unit tests any more, because you simply don’t understand what’s going on yourself, and finding out would take way too much time. But in that case, how can you adapt these unit tests if your requirements/implementation changes? You also cannot offload the work to someone else, because they also have no chance understanding your test cases. As a result, you start to ignore failing tests, because you are not sure whether this means that you actually found a bug, or your test is simply outdated. You even don’t want to find out, because understanding the test code would take too much of your precious time.
Another option (especially if there are no code coverage gates) could be that you don’t have unit tests at all, because you have learned from previous projects that the effort for the steps above simply outrun potential benefits. To be honest, doing no unit testing is indeed better than doing unit testing wrong (I’ve detailed this fact in the following article: Why you shouldn’t write a single unit test, before you know how to do unit testing right).

After unit test automation

In case you are already using modern unit testing tools that allow you to automatically create test code yourself, you do not have to worry about writing maintainable code, of having to write the same lines of code over and over again. Simply define the essential information that varies from test case to test case, and the tool takes care of the rest. Some tools even provide guidance for this test case definition by supporting methods such as equivalence class partitioning or boundary value analysis (read more here: 2 methods that help you save 60 % of your effort in Unit Testing)
If a created test fails, you know what to do. As you know that your tests are up to date, the implementation has some problem. The name of the test case already helps you identify the part of the software code that caused the error. If you have to look deeper into the unit test – no problem, because the generated code sticks to common design practices that are made for perfect readability of your test code. If you have to improve some part of the software, and thus adapt unit tests that you have written some months ago, this is also no problem! Obviously, you don’t remember what you did back then. But you have a look at the code, and automatically know what is going on. Even if you have taken over the software part from a colleague, you don’t have to worry about understanding their code, because the automation tool forces you to adhere to a certain structure to write unit tests. And finally, you have a good feeling when shipping new versions of your software, because you know that you have testes sufficiently, and all your unit tests actually pass before shipment.
Let me know about your experiences with unit test automation, in the comments section below!

Vector created by pch.vector – www.freepik.com

Leave a Comment

We use cookies to give you the best online experience. By agreeing you accept the use of cookies in accordance with our cookie policy.

Privacy Settings saved!
Privacy Settings

When you visit any web site, it may store or retrieve information on your browser, mostly in the form of cookies. Control your personal Cookie Services here.

GetResponse, Google Analytics

We use LinkedIn Insight for marketing purposes. You can disable these cookies.

We use Google Analytics for marketing purposes. You can disable these cookies.
  • __utmz
  • __utma
  • _ga
  • _gat

We use GetResponse for marketing purposes. This service cannot be disabled, otherwise the website functions will be limited.

Decline all Services
Accept all Services
Get Free Access Now to
9 eBooks!
All about Automated Software Testing
Proven experts
Learn to save up to 75% of your test efforts
Get Free Access Now!
Get Access Now! & Save 50%
Personal Trainer FREE Nutrition Custom Workout App
Get Access Now!
eBook Download
Enter your details to get your free ebook!
All about Automated Software Testing
Download Free Ebook
Lorem ipsum dolor sit amet, consectetur adipiscing