Unit Tests can prevent you from a lot of trouble in your projects. Do you know the situation: A bugfix is done in a module, anything seems to work properly. The fix is checked in. Next week a completely different module that has apparently nothing to do with the first one does malfunction at the customers site. A nervous and costly analyze, that ties up most of the available manpower, shows that the malfunction is a side effect of the bugfix before.
We have seen this many times in many projects but we have also seen exemplary projects with well working Unit Test environments: A bugfix is done in a module, anything seems to work properly. The fix is checked in. Next day the Unit Tests of the automatic night build indicate a side effect in a completely different module that has apparently nothing to do with the first one. The team is amused about the phenomena and discusses it – drinking a cup of tea – until the issue is completely understood. Then it is planed to fix the issue without time pressure long before the next software release to the customer.
In our experience Unit Testing is still one of the biggest lacks in most projects. Mostly it is missed already in the beginning of the project to add a working Unit Test environment to the build environment. This is some extra initial work, of course. But after the Unit Test environment is running, it is worth many times the effort. The projects expensive and stressful debugging phase will be much shorter. The software quality will be much higher. The customer will be satisfied. Unit Tests point out problems that manual module tests or peer reviews can never expose.
Unit Tests should be written by your developers, too. It makes no sense to outsource them completely to offshore companies. Such an approach has no benefit for your project and only meets process requirements. It is only extra cost. On the other hand, if your developers have to write the tests by their own and don’t know how to start, if they have no idea how to utilize the huge benefit of Unit Tests for their programming work, the motivation may be low and the outcome, too. The best compromise is a launch within your project by experienced specialists and a continuous, attendant Unit Test training of the team members until the handover reaches 100%
We offer you expertise and consultancy in Unit Testing. We are experts in the industry standard CppUnit framework for testing C++ as well C code and have a long experience in writing Unit Tests. We test higher layer functions as well as drivers, register accesses and interrupt service routines. We can install you a framework at any point of your project. It is never too late to establish Unit Testing. Think about your upcoming projects and start Unit Testing now. Don’t hesitate to ask us.