Atualização: February 27, 2023
Editores: Taís Caetano
Bio: QA @ ZBRA. As passionate about quality as she is about series and movies (especially Stranger Things 🧢 and Harry Potter 🪄)
Did you know that a QA person’s tasks on a development team are not just system testing? Have you ever stopped to think about what the roles and responsibilities of a QA really are? QA is much bigger than testing and that’s what we’re going to talk about here!
Before we start talking about why QA is bigger than testing, we need to understand how things worked there in the past and for that, let’s understand a little about the model used which was Waterfall. This model had the processes broken into stages and a stage only started when another ended. Within these stages, there was testing that only happened before delivery at the end of the process.
In this development model, there was the role of QA = Quality Assurance that acted in this Testing stage to “guarantee” that what had been developed was what had actually been requested. Basically, there was a conversation with the client at the beginning of the project in the Requirements stage, where what the customer wanted was defined and only there in the testing stage was it verified that the system was working as requested.
The problem with this methodology was that, as development time went by, the changes became more expensive, not least because a change requested in the Requirements phase would not cause as much “work” to be done as a change requested in the Tests phase. , for example.
It was then that agile models emerged. The idea of the agile manifesto was to have short iteration cycles using methodologies like Scrum, Kanban, etc. But in these development methods, there is not a specific role for Quality Assurance as it happened in Waterfall and why? When we talk about agile teams, we are talking about self-managing multidisciplinary teams, where everyone becomes responsible for the quality of what is being done, this is no longer an exclusive responsibility of the QA. In addition, the idea is also to have automated tests, regardless of how they are applied (Test after all, TDD, etc).
In this model, QA = Quality Assurance becomes the Quality Analyst, that is, the project’s quality analyst. This person is no longer the one who guarantees quality and becomes responsible for analyzing the quality of the process as a whole and with that, pointing out improvements.
For this, the Quality Analyst always needs to think about how to increase the quality of the system and this is where the Swiss Cheese Model can be used.
This model, generally used in aviation and engineering for risk analysis, aims to implement different layers of protection to reduce the chances of errors. But we know that they end up being imperfect, like Swiss cheese itself that has several holes. So the idea is that we have a layer of protection and, if something passes through it through a fault, the next layer can stop this problem. It can happen that a failure goes through all the layers, but by placing different layers throughout the development, we can avoid more and more errors and, consequently, increase the quality of the system. With this, the Quality Analyst has the function of perceiving which layers can be applied to protect the system.
But what about this person’s role since we don’t have a single testing phase as we saw in the Waterfall model? We’ll talk more about this subject in part 2 of this text, so keep following the blog so you don’t miss out!