The term quality assurance, when applied to web sites, describes the process of enforcing quality control standards and working to improve the processes that are used in producing the web site and its components, infrastructure and content. When quality assurance is well implemented, a web site should see progressive improvement in terms of both lessening rate of defects and general increase in site usability and performance.
Quality assurance should function as a “voice” for the user, a reminder to the designers and developers that the site is designed for users outside the office. Quality assurance as ombudsman would be a positive force for a quality user experience.
If you are limited in what you can accept responsibility for, document those limits. For example, if you can’t test data or middleware, announce that fact whenever you provide test results for the quality of the site. Even the best designed and developed sites will experience problems and failures, so a good quality assurance team should set expectations — for the entire web site team and with management — for what QA can effectively accomplish.
Focus on Improving Processes
The key to understanding quality assurance is understanding the emphasis on process: quality control focuses on what comes out of the web site creation process (creation, development, publication — whatever term you prefer that describes the process that results in the web site). Quality assurance focuses on what goes into the creation process as well as on the process itself with the goal of improving the quality of output by improving everything “downstream”.
Quality assurance looks beyond the structured testcases used by quality control because these testcases are necessarily limited. Quality assurance focuses on more than a site’s ability to meet a specific benchmark; quality assurance aims to make the site better so tests are passed more consistently, so that the benchmark can in fact be refined, and so that problem areas can be eliminated.
Quality assurance should be involved in the development process. QA should review new designs before they are finalized with an eye towards usability and user experience factors; heading of problems before they become real improves quality immediately and reduces problems “downstream”.
Quality assurance should be involved in customer service and user-support communications, especially with a commerce site, so that usability defects can be reviewed. With user input, QA can refine user scenarios to better match “real” behavior. There is no substitute for user comments.
Are the tools used to create and maintain your web site appropriate for their tasks? Can the tools be tweaked to shorten the processes or eliminate some steps? Can some tests be incorporated earlier in the creation process, such as spell checking? If your site has changing content, is the content checked after it is published, or before it is entered into the database? Quality assurance should pay attention to all of these issues.
Following any major phase of your web site, perform a postmortem analysis: review the success of the changes, redesigns, scheduling, file transfers, etc. What could be made more efficient? Which processes could be smoothed out?
Focus on Tracking Problems
Quality assurance also involves a closer involvement with defects and their resolution. During the quality control process, problems are discovered and typically reported and handed off to the people who “own” the work with the defects. Quality control can be a binary process: something passes, or it fails and is “bounced” back to the team responsible for fixing it enough to be tested again.
Quality assurance catches the problems discovered through use of quality control testcases, but also finds problems uncovered through more general site reviews and ad hoc usability and consistency testing. In addition, quality assurance testing finds areas for improvements that may not be defects, but rather opportunities; user input is a great source for such “opportunities”. The set of problems returned by thorough quality assurance testing is therefore larger than the set found through quality control testing. The handling of this larger set of problems is a major function of QA.
Quality assurance should log reported problems in a database of some kind, assigning properties to the problem such as the priority and scope, and recording such attributes as description, error message, affected functionality, etc. In addition, QA should assign and track ownership of the problem, and should track the progress made towards resolution of the problem. Quality assurance must take an active role in getting problems fixed; demanding schedules for the fixes, explanations for the problems, working to eliminate the type of problem in the future — these are all common actions.