TESTING
SOFTWARE QA
RESOURCES

Quality assurance in software development aims to improve reliability and provide accurate assessments of the performance readiness of any given software project. It is important as well to translate these capabilities into cost savings. Procedural efficiencies and circulation of the knowledge gained from testing back into the design and build process can positively affect the profitability of the firm.

The QA process can realize cost savings through reducing support calls; reduction of the amount of defect repair and retest; limiting the need for rewrite of code; company reputation, prestige and sales edge gained through reliability and flawless presentation; support of delivery deadline management; reduction of overtime costs and increased agility in business decision making through precise knowledge of current product status.

The primary tool for cost effective QA is the identification and management of the sources of software defects. The cause and source of a bug must be identified, recorded, and cycled back into the development process. Learning from testing will cut costs while improving reliability. For example, determining a pattern of faults and identifying programmer ability in various coding tasks over time allows effective reuse of effort and targeting of fault detection. Of course patience and tact are needed to acquire and communicate an overview of software fault sources and to reduce their occurrence throughout the code base.

Quality assurance is most efficient when its practitioners are properly acquainted with the business problems that the software they test are intended to solve. Testers familiar with the expected outcome of their tests do not need to rely on a developer to determine the correctness of the result. As well, the practice of having testers interact directly with developers to resolve assigned bugs can waste time and be unreliable, particularly when several testers and developers are working this way in parallel. Valuable diagnostic information about causes and sources of bugs will not be available to management. Better is a model in which a single QA person meets with a single development person and business analyst to daily review the status, source and significance of all current bugs and together maintain the tracking system and currency of QA system configurations. Testing, debugging and repair work can be assigned on the basis of such meetings.

Sometimes testers investigate bugs outside the scope of typical business cases even under tight delivery deadlines. Complex test scenarios may validly expose flaws but take time away from a broader survey of intended business functionality. Scenarios outside normal client use can be investigated and repaired in maintenance testing after release deadlines provided that on balance the end user will not encounter them first.

Software testing groups are often over staffed and under equipped. It is not efficient for a tester to have to do all forms of testing on a single computer. Each tester should have at their disposal a proper set of maintainable configurations appropriate for the project. At a minimum this would be a test machine, a development environment, and a production environment modelling configuration. Testing reliability, fault source determination, and cost efficiency will all be improved in this way. Substitution of a single tester with three computers for the QA department will pay for itself, assuming average costs, in two months.

Well known but often ignored in software development is the fact that the costs of changes and repairs are significantly less during the design phase than at the testing phase. Since full advance requirement specification is almost never possible a realistic approach of conducting specification, development and testing in synchronization is most effective. QA management expertise in the business problems for which the software solution is intended can translate into an effective contribution to early cost saving in the design process.

The primary mission of QA activity must be consistent with the goal of improving the over all productivity and profitability of the firm. Day to day QA management is about the ability to support business trade-offs with good product information. It is important to find the balance between theoretical and practical solutions and to effectively communicate that balance to decision makers. This balance is also required in determining appropriate process steps within QA to achieve cost effective testing and quality management of software solutions.