How is unit testing performed in organizations? Is it an informal activity that is done before integration if there is some time left after programming or is it the key element of the development effort? A recent poll examined the way unit testing is performed in software development organizations. Here are the results:
Unit testing is not performed 13%
Unit testing is informal 46%
Unit tests cases are documented 11%
Unit tests cases and their executions are documented 16%
We use a Test Driven Development approach 14%
As we can see, a majority of participants is still performing unit testing informally. This is symptomatic of the small consideration that is given to the testing phase in most software development projects. When the pressure to deliver on time is big, an informal unit testing phase allows mainly to test poorly without being noticed. It is however recognized that unit testing is an important building block of system quality and that it costs more to correct errors discovered in later project phases. Good documentation of unit tests allows also improving maintenance when the original developer has left the project or the company.
At a time where agile approaches repeat the importance of unit testing, the glass can also be considered as half-empty. From this point of view, It is already encouraging to see that 41% of the participants are documenting their unit testing efforts. A Test Driven Development approach is used by 14% of the participants and 16% are documenting the execution of their unit test. These percentages are already important. They could be explained by the emergence of a wide range of open source unit testing frameworks in the xUnit family. They are the tools that should lead to more and more repeatable unit tests.
Source: Methods & Tools (http://www.methodsandtools.com