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 the QA is a separate role from the developer. As the software quality assurance testing the QA does is 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 high quality they would expect.
Quality Assurance is a key part of software development and always forms part of the project management and software testing process.
What is quality assurance 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 automation 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 to ensure the product meets and does not fail in problem areas from previous upgrades. Also, random non-standard tests to try and replicate low usage/new users.
As part of the development process the developer will sometimes 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.
What is quality control?
Quality Control will always be relevant and is generally the testing of a random sample of manufactured items and comparing them to the baselined expected output. It became increasingly more important during the industrial revolution as products started to be manufactured rather than being handmade. Whilst a process may not be perfect, QC can help prevent defects and ensuring a higher quality product whilst helping to reduce costs due to returns and errors/complaints.
So, what is the difference between QA and QC?
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 is 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