Quality assurance (QA) is a stage of development that occurs between build completion and launch. It involves the rigorous testing of a product or piece of software, and occurs after the developer has performed their own testing. It could also be called the final testing stage.
The person performing the QA will try and break the product using extreme methods that the developer might not have considered and accounted for in their code, such as entering unusual characters from the keyboard into input boxes. The purpose of this is to simulate how a new user might act, and highlight any flaws they would encounter. A successful QA is declared when the tester has been unable to break the software/product. QA is not guaranteed to find all errors and bugs, but it maximises the likelihood of them being found.
It is crucial that QA is carried out by an individual that hasn’t been involved in the development stage. This allows them to approach the product in the same way as a new user would, and increase their chances of finding obscure bugs. A developer of the product could not perform QA in this manner because they know how it is made and might make assumptions about what the user knows or understands at certain stages.
As well as locating bugs, QA can also be used to highlight flaws in a seemingly-working product. For example, even though a particular section might be fully functional, during QA its layout could be declared too confusing to a new user, or too difficult to reach via the navigation. Decisions like this cannot be made by the developer, as they will already know the product intricately and therefore find it hard to judge it from a new user’s perspective.
When a company releases an update for one of its products, you’d expect any initial programmer testing to be focused on any new features. However, a QA stage is vital in order to consider the wider implications and how the update will fit into ‘the bigger picture’.
At SWS, when a new piece of software or an update has been developed the QA is performed by other developers who had no prior involvement. The combined approach and unique personalities of our developers allows us to cover and test a wider range of environments and possibilities in which an error could occur.