August 2000 Feature Article

Testing as a Vocation

"Software testing has become a profession - a career choice - The software testing process has evolved considerably, and has reached a point where it is a discipline requiring trained professionals. To succeed today, an organisation must be adequately staffed with skilled software testing professionals who get proper support from management", says Edward Kit in 1995*.

Like other mature professions, specialisation is now required within testing. For example, there are whole organisations that specialise only in usability testing, and others that only deal with test automation. Enormous bodies of knowledge and practice, deal with test methodologies and others with inspection techniques. Even within these example testing areas, further specialisation is necessary.

Fitting anyone into the job of testing, merely because they are available (or worse - because they don't make the grade as a developer) is suicidal for product quality and to the future of the company that makes such decisions.

There is room in the market for test consultants, general test practitioners, testing specialists, test managers, technical testing specialists, application testing specialists, senior testers and normal test practitioners, as well as test apprentices and new testing entrants. It is vitally important for companies and individual projects to be aware of the range of skills that each proposed testing participant can contribute before finalising the building of a test team to meet the current needs.

In many companies, business users have migrated from the business into software testing because of their specialist understanding of the application. This is good, as they understand the business domain and rules. It is however important to ensure that such persons are trained in testing theory and practice or else they will remain inefficient as testers and the product under test will be exposed to unknown (potentially high) risks. Another solution is to complement these business testers with experienced testing professionals, ensuring that IT technical skills as they relate to testing, are present in the resultant group.

What makes a good tester? Good testers love to find every conceivable fault or weakness in the work-product. Detected errors are celebrated because early detection means they can be removed before the user finds them. Slogans like, "Live for the Crash!" display the required passion for testing excellence. Job satisfaction is achieved where errors are caught prior to shipping.

The mission to find product faults is aimed at the product itself and not at people. Diplomacy and teamwork are required for testers, as they are often the bearers of bad news to developers when yet another fault is detected. Yet testers must try not to inhibit productive and on-going communications with the same developers. Even more diplomacy is required when as a tester, you stand between users and/or management who may have unreasonable demands in terms of changing requirements or tight schedules, and the development team who have difficult solutions to create and are not necessarily aware of the urgency of some of the business issues.

Successful all-round testers need to be creative and analytical. Many of the techniques for deriving test cases involve analytical thinking, with skills of deduction, experiment, logic, and pattern recognition. Yet pure analysis is not sufficient. Fair doses of lateral thinking, creativity, illogical thinking and behaviour (to imitate some users!), and intuition are required. "Why did you do that!" and "Nobody would ever do that!" are typical responses to some of the successful test cases that come from this line of thinking. Just when you think a system is foolproof, someone will invent a better fool! It is extremely narrow thinking that does not cater for an unusual array of user and circumstantial behaviour likely to impact your system.

Testers need to be organised and systematic in their work. Much time is spent in comparing products to known rules and expected results, both of which usually occur in substantial volumes. A tester needs to be able to handle stress. A colleague of mine used to say, "Testing is 95 percent boredom and 5 percent sheer terror!"

The boredom comes from the reams of information to be diligently checked, but you may ask, "From where comes the terror?" There are a number of sources of this terror. The terror may be self-inflicted, inflicted by others, or may be derived from merely contemplating the sheer enormity of the situation and stakes (assisted by a fertile imagination). Deadline pressure is a factor that is often forced upon testers when the build date slips and yet the shipping date remains fixed. This pressurises the test execution phase and the testers. At this same point it is often most difficult to rationally distinguish between normal functional testing and stress testing. One can even become confused about the subject of the test. Is the product under test, or am I?

Terror also strikes each time a defect is found at the customer, especially if it is likely to have a major impact. What about the sheer enormity of some situations? Consider losing or delaying payment of a few million rands based upon an acceptance test milestone failing, and you were the one conducting it. Alternatively consider it being discovered that an error in the software lost your company millions of rands that cannot be recovered. Finally consider someone dying because of a software fault that went undetected. It is little solace that it is by law, in fact the responsibility of the project manager to prove due diligence.

The work of a tester includes, designing test plans, planning test designs, deriving test cases, verifying software development products by reviews and inspections for example, and validating the execution of the system by various testing types. Any discovered defects are reported, fixed, and then are re-tested. Skills that are necessary for productive and effective testing include a practical knowledge of the many testing techniques, intermediate knowledge of an office suite (word processor, spreadsheet, database, presentation software, internet, and e-mail). A sound understanding of software development processes and basic programming skills is also highly recommended for those who wish to follow testing as a vocation.

I have seen testers grow from entrants to senior testers to test managers and test consultants. Other (ex)-testers have very successfully moved into development, systems analysis, project management, or into their own businesses.

Is there a future for testing? All indications are that the market demand worldwide and in South Africa is currently exceeding supply for trained, professional testers. In my opinion this is likely to be the case well into the future, and certainly for as long as the demand for software development is intact. Is the work challenging? You bet! It will be some time yet before a program with zero defects is delivered to testing.

Wayne Mallinson

<< July 2000
September 2000 >>