The Evolution of the QA Role in Software Development Teams

The Evolution of the QA Role in Software Development Teams

The role of the quality assurance (QA) engineer has changed significantly over the years, and we can see a lot of differences in the QA work in the past and now. In the past, QA was usually involved at the end of the software development lifecycle and its job was mostly focused on finding and reporting bugs. Now, the QA is a strategic element of the software development teams and it is included in the projects from the beginning. In this blog post, we will compare the traditional QA role and its modern version and we will discuss the differences and how much the QA role has evolved over the years.

The Traditional QA Role 📜

As I previously said, in the past, the QA role was seen as a necessary role in the software development teams, but the QA was usually included at the end of the software development process and its job was mostly focused on finding as many bugs as possible before the version was released to the customer. This software methodology is also known as the “Waterfall” model.

In the “Waterfall” model, the development phases were sequential, which means that every step of the software development lifecycle comes after the other. As you can see from the picture below, the Testing phase is near the end of the process, after the development, which means that the QA will wait until all the phases are finished, before it can be started with testing.

When the testing starts, it is usually done manually by a separate QA team that works apart from the developers and there were not that many tools that could support automation testing. That’s why the automation was minimal or non-existent.

Project Example from the past: Traditional QA works on a banking app 🏦

Let’s look at how your QA work would look like if you worked in the early 2000s on a banking application.

First, the project managers and business analysts would gather the customer’s requirements (from the bank). That would take some time until all the requirements are gathered and defined in a Software Requirement Specification.

After that, planning needs to be done about all of those requirements and the project overall.

When everything is defined, the development team starts with their work, which could take months of designing, coding, integrating, etc.

When the development team is done, the QA finally steps in, manually testing everything that was done during the past couple of months which often resulted in the discovery of critical bugs in the late stages of the software development lifecycle. The other problem here is that the QAs were not included in the project from the beginning which can result in not understanding the cases that need to be tested, which could result in more delays and frustrations.

The Modern QA Role 🆕

During the time, new modern and improved software methodologies were introduced, and with that, the QA role has also changed and improved.

In the new software development methodologies, like the Agile methodology, the QA is not waiting till the end before it starts with testing. The QA is included from the beginning, from the planning phase, the development phase, and beyond that. From the beginning of the software development lifecycle, the QA is included and closely collaborates with the developers, product owners, business analysts, etc., and it is thinking about all the possible testing scenarios even before the development starts.

The QA is now working in cross-functional teams and not in a separate isolated team, which brings more collaboration, communication, understanding of the requirements, and more quality.

Today, we have also a lot of advanced tools for test management, bug tracking, and automation testing which makes the testing more efficient. And while we are talking about automation testing, we must mention the Continuous Integration and Continuous Deployment (CI/CD) where the automation tests are integrated into the CI/CD pipeline and they are providing continuous testing and early finding of new bugs.

Project Example from the present: Modern QA works on an e-commerce platform

We saw how the work of the QA looked like in the early 2000s. Now, let’s see what the work of the QA looks like now, for example on an e-commerce platform.

The team is using Agile methodology and the team consists of a Project Manager, Business Analyst, Technical Lead, Developers, and QA. Every day the team has daily stand-up meetings, refinement meetings, sprint planning, and sprint retrospectives, where the QA is also involved. The QA starts to think about all the possible scenarios even before they are developed, the communication and collaboration between the team members is on a high level, and the testing is done continuously.

Automated tests are also created and included in the CI/CD pipeline, and they are triggered with every code commit, which helps a lot in maintaining the stability of the product and detecting the bugs earlier.

Benefits of the Modern QA Approach

The transformation of the QA role has brought numerous benefits to software development teams and the products they deliver, like early detection of defects, quicker resolution, and making more quality products. The product is delivered to the end-users more quickly, the development process is less costly, and the customers are more satisfied. Also, the communication between the team members is improved now, which leads to fewer misunderstandings.

Waterfall-to-Agile-Methodology

As we saw, over the years the QA role has transformed from an isolated function to a very strategic element of the software development lifecycle. Modern software development methodologies have made new QA practices that helped the teams to deliver higher-quality software faster and more efficiently. As the software development processes continue to evolve, the role of QA will also continue to adapt and innovate with the goal that the quality of the product is on the highest possible level.

Comments

No comments yet. Why don’t you start the discussion?

    Leave a Reply

    Your email address will not be published. Required fields are marked *