Testing software is critical because the cost of fixing bugs once the software is up and running is extremely high. As a result software testing is in demand and is a growing market.
I recently interviewed Geoff Thompson of the TMMi foundation. TMMi is a testing methodology that ingrains testing into the software development process. This way bugs are identified along the way. It is an alternative to hiring lots of bodies to test software when the development is complete and then having to fork out thousands of pounds to fix bugs. So the theory goes.
Thompson told me that Chinese and Sri-Lankan companies are currently interested in gaining TMMi accreditation to differentiate themselves from Indian software companies.
TMMi accreditation, which has five levels, is aimed at end user businesses that want peace of mind and service providers that want to put a rubber stamp on their testing practices. The first service provider expected to be fully certified is a Spanish company that will probably get the rubber stamp next month.
Software quality testing company Cast says the average cost of fixing software bugs after release is $2819 per thousand lines of code. Cast says the typical business application has 374,000 lines of code. Below is a list of the average number of violations per thousand lines of code for different programming languages, according to Cast.
ABAP - 20
Cobol - 89
.NET - 169
J2EE - 463
C/C++ - 438
The five levels of TMMi are:
This is basically chaos and the stage that companies are at when they have nothing in place when it comes to a testing process. These companies rely on their people to find faults, rather than processes. Testing is done ad hoc when the software development is complete.
When a company reaches this level it means testing is a core processes. This will include Design, strategy, planning and setting up initial models. Testing is separated from debugging at this stage.
The testing phase is no longer seen as something that happens after coding is complete. Test planning is done early on.
Testing is now fully defined with measurable processes. There will also be peer reviews.
Testing is now completely defined and improvement to processes will be made through quantitative understanding of causes of software failures