Ask software developers about what do they mean by unit testing, and if they believe in it? And, the answer you get are some of the following:
- Unit testing is about writing tests for each of the method of the class. It is written only when you get some extra time after the code completion?
- Unit testing is done only when we are asked by our customers.
- Unit testing takes additional time and hence, done only if time permits.
- Test-driven development… What is that?
- Not sure if there are any benefits by writing unit tests?
- Test coverage… What is that?
- Why do we write unit tests when we are software developers and not the testers
Some of the most common terminologies in relation with unit tests are following:
- Test coverage
- Test-driven development (TDD)
- Xunit such as Junit, Nunit etc
On an average, in India, still today, it is uncommon to find software developers who are very much passionate about the unit testing. Then, there are software developers who are passionate about unit testing but are unaware about the software quality association with unit testing. Simply speaking, they are unaware of the fact that unit testing increases the test coverage of the code and hence adds to higher Maintainability of the block of code.
The lack of awareness of unit testing and its benefit can more be attributed to lack of awareness of project/delivery managers such that the managers include effort for unit testing in planning and estimation stage.