The world of software companies is full of testers and test departments named as Quality Assurance. There is a long ongoing quarrel if QA and Test is the same or not. Long story short, no they are not the same! But a person working in QA needs a lot of skills a good tester has.
My official job title is QA Lead, but I deliberately use the term Test Lead and have it proudly in my signature. Because that’s what I am doing, and that is even what my job description says. Calling software testers by the name of quality assurance implies for many that there is a step in the “production” process that assures the quality. And this is wrong!
Quality Assurance is a term coming from the world of manufacturing. People working in Quality Assurance are monitoring and auditing the production process and keep an eye on it, that everything is done accordingly to the pre-defined process models, that describe the current best way in the eyes of the company to produce this item, whatever it is. That way you have a rather good chance that the quality of each item that leaves the factory is as similiar as possible and fulfills the company’s standards. You can also see the Wikipedia articles about Quality Assurance and Software Quality Assurance.
In my view on this topic, people working in Quality Assurance are testers, but they don’t test software or a product, they are testing processes and process models. The skill set you need is similiar to that of a good tester and much more (skills that don’t do harm for a tester either). You need to collect information, analyze processes, audit and inspect projects, create models, monitor quality gates, ask lots of questions, and inform a stakeholder of the situation you found. But you don’t test software.
Software Testing is usually one or more steps in the software production process, and Quality Assurance will make sure that these steps are included and followed in the process.
In my eyes there is a problem with using terms and roles derived from the manufacturing industry in an IT context. Software development is unique, you don’t produce the same software twice. Software development, either called product development or project business, all are projects, and one of the ground-rules for projects is, they are unique! Using industrial/production terms doesn’t help in many cases, because it is so different. It creates an illusion that can only be realized by either hard planning and meticiulous management of the project or by serendipity. Believing that standarized process models will create the desired results every time is in my opinion dangerous to the business.
The process of producing software consists of many steps and a lot of roles and parties are involved. And each and every person has the responsibility to perform her steps in accordance to the defined rules, process models, standards or whatever has been decided to follow. Developers usually produce a certain amount of common rules to follow when producing code, like style guides, naming conventions, code reviews, rules for writing unit tests, and way more. In the first place it’s the developers responsibility to follow them all. But there is in some or maybe even many companies a department called Quality Assurance, that should regularly send someone to audit the process, make sure all the rules are followed and look for steps to improve based on the feedback they collect.
People woking in Quality Assurance need a skill set that overlaps a whole lot with that of testers, because they are testing processes. If your job is testing software, you are not part of the Quality Assurance team, you are a part of the Quality Assurance process.
So I want to close with statement which is the title to a blog that just came to my mind, while I finished my article. Testers get out of the Quality Assurance business!