Quality assurance testing is a little like plumbing. Most people don’t want to have anything to do with the job, but everyone appreciates when the job is done well and everything works.
At inQbation, there are several types of QA testing that we practice, to include stress or load testing, user acceptance testing, regression testing and Section 508 compliance testing.
The first type of QA testing is of a technical nature and is performed by developers. However, before testing can begin the business requirement must be identified. For example, during the London Olympic Games of 2012 the london2012.com website was expected to serve up to 1 billion requests per day. It is not enough to specify that your website must be “robust.” To some, robust might mean 15,000 website requests per day. To another, robust might indicate an Olympic level of web requests.
In a lab environment the developers will simulate the expected load of the website. The results from the load testing will be analyzed to determine what needs to be fine-tuned. Examples of required fine-tuning might be server or firewall setting changes, adding or changing a load balancer, or even changes to cache time-outs. In addition to the lab environment testing, an analysis should be performed on the entire infrastructure. For example, if the website relies upon two databases that are hosted separately, website performance will be impacted.
A second type of QA testing is user acceptance testing. The predecessor to creating the user acceptance test is to define the requirements or scope of work that must be implemented. The requirements should include the use cases, which is a collection of scenarios with their associated actors.
At inQbation we document a user story that identifies the who (actor), what (behavior) and why (business value) for each use case. Each user story will be expanded into a test script that documents the user’s action followed by the system behavior. In addition to the main flow of the test script, alternate flows will be documented to identify user entry errors (e.g., incorrectly entering a password) or other alternate scenarios (e.g., no data found). The user acceptance test is performed over the course of the website development period by a QA analyst to identify and resolve any bugs before the website is released to the customer to approve. More technically-savvy customers will execute the user acceptance test script to validate that the website meets all specified requirements and fully functions as expected. Other clients prefer to rely on inQbation to follow the formal test script and will informally “wale away” at the website when it is delivered. The danger of the wale-away method of testing is a bug may be found but cannot be reproduced because the user was not keeping track of his or her actions.
The third type of QA listed is regression testing. This is similar to user acceptance testing but the distinction is that an enhancement or bug fix didn’t inadvertently break something that was previously working. At inQbation we like to create automated test scripts to perform regression testing with a Firefox add-on tool called Selenium.
Finally, the last type of QA testing that is optional for non-Government websites is for Section 508 compliance. Section 508 refers to the portion of the US Rehabilitation Act that requires Government websites to be accessible to people with disabilities. If the commercial website has the additional budget for Section 508 compliance or the specific need for their target audience, the requirements for Section 508 compliance are outlined here: § 1194.22 Web-based intranet and internet information and applications
There are both automated and manual tools to test Section 508 compliance. At inQbation we have Section 508 compliance specialists who execute a checklist to confirm that all requirements have been met.
Quality Assurance testing is a critical component of any software development. Based on the project budget, the level of QA can range from quite basic to very extensive.