<= Home
Unit Testing Misnomer
Just like the term SOA, unit testing is following the path of complete IT industry ambiguity. Despite Wikipedia’s correct definition of a unit test, the term already means many different things to different people.
I am amazed by how many development teams I have worked that say they do unit testing. 9 cases out of 10 it means that the developers are creating code and then stepping through the code manually with the debugger to verify the code works. To make things worse, it’s not even a real unit test…it resembles more of a cross breed between a half baked integration test and a low level “did I type something wrong” test, doing neither real justice. Instead of waiting around and expecting the whole of the IT industry to adjust and start using the term correctly, which will not happen, it is better to further clarify the type of unit tests being performed.
At ThoughtWorks we develop automated unit tests. Though adding the word automated may seem trivial, it’s a world of difference to what most IT groups implement as unit tests. Automated Unit Tests follow more the Wikipedia’s definition of a unit tests. Using the word automated will help separate the difference of creating automated unit tests that successfully test the code, from the ineffective manual method. This hopefully will make the project sponsors and stakeholders happy.
Automated unit tests can be created as an after thought and provide some benefit. But beyond automated unit tests, to even further clarify ambiguity, specifying test first unit test development or TDD is even more important. Obviously here the tests are created prior to the implementation and separating this term from just automated unit test can begin to help the project sponsors and stakeholders down the road of seeing the real positive difference of approaches.