A few months ago I joined a startup as QA Engineer. We have already established quality culture across the development teams, nonetheless, the company is still in the early stage, and many new people are joining every month. It was my first month there, and it was my first job in a product-oriented company, after few years spent in consultancy. I was still learning new terminology, especially the one related to the product domain.
One of my team fellows came to me one afternoon and asked: “Hey, we have this story to be deployed today, do you think you can QA it quickly?” I stayed puzzled for a bit, but then I realized he wanted me to test some change.
Is QA a verb?
Quality assurance (QA) is a way of preventing mistakes or defects in manufactured products and avoiding problems when delivering solutions or services to customers; which ISO 9000 defines as “part of quality management focused on providing confidence that quality requirements will be fulfilled”. This defect prevention in quality assurance differs subtly from defect detection and rejection in quality control, and has been referred to as a shift left as it focuses on quality earlier in the process.
Even though it’s an old definition, it still explains the fundamentals.
From Software perspective:
Software Quality Assurance consists of a means of monitoring the software engineering processes and methods used to ensure quality.
Having a look at Wikipedia, apparently QA stands for Quality Assurance and it looks like it’s a noun.
Now, why am I bragging about it?
First, there is a misunderstanding in fundamentals. QA is not testing. Testing is one of the actions QA Engineers perform in their daily work among others, risk analyses, test implementation, test data generation, bug triage, monitoring, automation, to improve development process. Quality stands in front of all mentioned actions.
Quality and particularly, assuring quality of software implementation is in the ownership of development teams. In each of the phase, product discovery, design, architecture, coding, testing, automation, deployment, monitoring there are set of actions which ensure that software meets the highest quality standards. It is a team effort to understand how each requirement, whether technical or functional will produce the value.
So, which exactly part do you want me to check?