Software Testing


Delivering good news is easy

However, people who test software for a living need to do one thing really well – and that is:

have the uncompromising ability to deliver bad news.

And there are lots of really dedicated folks out there who do just that.  But there are also some who often mean well, but bend to real (or perceived) management pressure and compromise.  A deadline after all, is a deadline!

By “managing the message” – i.e. avoiding red RAG status events – Quality Assurance Managers often lull stakeholders into a false sense of security.  This can result in different types of unsavory scenarios, it does wonders for lowering overall team morale (who more often than not know the real story) and it wastes time and money.

How often have we seen elaborate test strategies degenerate into last-minute scrambling as integration and acceptance-testing cycles shrink and are pushed out to the right due to dirty data, broken functionality and environment issues? It’s a cycle that’s tough to break – but it needs to be broken.

Use The Force

Testing needs to be given the attention and recognition it deserves.  Just because it appears at the end of the food chain doesn’t mean that it’s not vitally important.

Tollgates that restrict movement of functionality from Development to System Integration Testing (SIT) through to Functional and User Acceptance Testing (UAT) and final implementation need to be strictly observed and deadlines that inevitably shorten cycle times need to be flexible enough to accommodate doing what is right, not just what is allowed.  On paper it’s all very simple, but in practice it requires conviction, courage and resolve.

Releasing untested code into UAT – or worse into Production – should be avoided. “Conditional Sign-offs” at the end of the day mean very little (as everybody ultimately forgets the conditions and only remembers the sign-off). Once bad code is implemented, operational “workarounds” are inevitable and extra work to plug the holes often prevails. Succeeding releases are delayed while bugs from the earlier release are being rectified and the vicious cycle deepens.

Over time, these workarounds are often baked-in to normal day-to-day operations and are accepted as common practice.  They linger sometimes for years; users work longer hours and overall cost increases.


Once your company has adopted an agreed testing approach and standard terminology, changing the language to suit the level of tested code only leads to confusion. Where I worked, there was no such thing as “Pre-UAT” – the correct terminology was “SIT”. “Functional Acceptance Testing” may as well have been called “Failure Acceptance Testing” because that’s all that was really happening.  Don’t allow any re-branding – this only serves to mask the real issue.

So the next time you see a quantum shift in the project RAG status – have a word with the testing team; check the Traceability Matrix to make sure that all requirements bases are covered and make sure the users are happy with all testing results.  It can save you a lot of money in the long run.

For those interested in the complexities of Software Testing – you should check out the wiki page.

Photo: Courtesy of Google Images

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.