A question I’m often asked is how much extra does it cost to operate with no debt? What’s usually meant by this is how much extra effort is required to have 100% unit test branch and line coverage. There’s the effort involved with managing the extra code that’s involved in unit tests. About 35% of the commit activity is for unit tests on a 2 million LOC project with 37,000 unit tests. There’s effort in maintaining the tests and re-factoring the tests or changing them if an API changes. Sometimes the tests are brittle or change global static causing an unrelated test to mysteriously fail. So there’s work involved.
Studies at 3 major companies show that the extra effort is around 20%. This is the amount show by all three, independently of each other. So that’s the number I use. It jives with my own experience as well.
Of course, one can always say the the extra testing costs nothing because you recover the testing cost by defect reduction. True enough but most project managers are responsible to estimate specific tasks and projects which don’t usually include (or track) defect remediation. They need to estimate code and test effort. So it’s fair to consider the testing burden.