Quality Assurance (QA) can mean different things to different people or companies. The Wikipedia definition states:
Quality assurance (QA) is a way of preventing mistakes and defects in manufactured products and avoiding problems when delivering products or services to customers; which ISO 9000 defines as "part of quality management focused on providing confidence that quality requirements will be fulfilled".
At Optima our QA is a separate role from the developer. But as it is done in house the developer receives quicker feedback on defects, than if the software were pushed directly to User Acceptance Testing, which is likely to be an external i.e. client side activity. The QA is also there to add confidence for the client that the product delivered will be of the quality they would expect.
So, what is QA testing?
At the beginning of each project, the QA’s key role is communication with the client. This then extends to helping the developer understand the client requirements especially where the QA has had experience as an end user.
The QA creates and plans a set of defined automated and manual tests to be carried out. The test set is generally set out at the beginning of the project but can evolve as the QA and the developer work through the build and spark ideas, think of edge conditions for other speciality test cases for a given project.
The QA’s tests will be set to pick up any new features but will include regression tests for problem areas from previous upgrades. Also, random non-standard tests to try and replicate low usage/new users.
Sometimes the developer will pass over an incremental build to allow the QA to prove phased builds are on track and that the end to end process is flowing as planned. i.e. the QA works in a loop, whereby the developer builds, QA tests and passes back for defect correction or next build phase.
Once the QA has tested the final version, having iterated through ironing out any bugs, the build is then released as a test slot to the User Acceptance Team (UAT). This team is client side and the aim is for the QA to have prevented any (critical) bugs reaching the UAT.
The objective is to pass over a test slot to UAT that is right first time. Examples of mitigating factors are unplanned time constraints, additional late build requirements being requested and finding new edge conditions.
So, what is the difference between quality assurance and quality control?
The Wikipedia definition for Quality Control (QC) states:
Quality control (QC) is a process by which entities review the quality of all factors involved in production. ISO 9000 defines quality control as "A part of quality management focused on fulfilling quality requirements.
There is a subtle difference between QA and QC at Optima.
Quality Assurance (QA) seeks to control the build quality of the software solution addressing the business requirements of the project. The aim is to minimise the effort required for acceptance by finding problems during the build.
Quality Control (QC) addresses whether the built solution has met the project requirements and that the product is performing as it is supposed to. Also, an element QC decides if the build has met the project scope and sign-off can be given. It is Quality Control that can assess if there has been any shift in scope in the real world, for example regulatory changes.The QC team may be aware of circumstances where the end users have a manual work around for an automated process to get around an issue. Whilst acceptable for manual processes this can then identify areas for which the new build does not work and of which the QA would be unaware. This is when the role of UAT working with the project team, as QC, have to clarify any gap in the build requirements.
Quality Assurance Manager
Kim is the Quality Assurance Manager for the software development side of Optima Systems. Her focus is to liaise between our clients and our software developers to ensure that we deliver good quality products, on time and within budget. More about Kim.
Ask Kim about Software Solutions