A passionate QA with extensive experience in the field of Software Testing, certified with MBA, ECBA and Scrum Master. Love to share knowledge and discuss Software Testing.
Published on
In the world of software development, there is always some discussion on whether or not QA will die. It's true that everyone adapts automated testing and releases fast — but does auto coverage really mean that QA is unnecessary? In this article, we will examine the differences between developer and QA-based testing, whether QA has really become redundant, and why it’s important to keep QA alive.
Agile has become the most common development process in every single organization, and it has been used to deliver values to their customers on a short cycle basis. Agile requires fast feedback in testing, and automation is the best practice to receive the results quickly. One of the most common best practices of Agile testing is to build the Test Pyramid, which focuses on building automation tests from the code level (unit tests), service level (API or integration tests), and a few tests from the UI levels (E2E). Exploratory testing is on top of the pyramid and is often used to find the issues from edge cases that different levels of automated tests have not covered.
Most tests are automated from the illustration above, and manual testing is minimal. The role of testers seems to be limited because most of the tests will be written by developers and executed by machines. Therefore, some companies adopt the best practices stated above and cut out the dedicated testers in their development team.
Based on what we have discussed so far, the QA/tester role seems unnecessary. So can developers take over the QA/tester role? Before we answer this question in the next section, let's analyze the different approaches in developer-based testing compared to QA-based testing.
Tests are written mainly from the code level, including:
Developers profoundly understand how each function, API, or component works. Also, with excellent technical skills, they can automate all the tests and get feedback quickly after executing tests. Nevertheless, they do not fully understand the entire system. Especially in a complex product, each developer will focus only on specific areas or some features.
Not all developers would write sufficient and suitable tests to ensure that their code will not break in the future. Because of the pressure of the competitors, many companies want to ship their product very quickly to the market without thinking about the future when the code base becomes complicated. Therefore, these companies usually ignore or have minimal testing coverage at the code level because writing these tests will take time and need to be maintained later. They mistakenly believe that it will slow down the development process and decrease product shipping speed in the short term.
On the other hand, some tech giants like Google or Facebook don't have QA roles. Their software engineers also test their implementation. They have thousands of top talents, so they have a ton of time and resources to produce the highest quality features. They also have a well-established process to ensure that all the code committed will be reviewed and tested thoroughly.
Tests are mainly designed and performed from users’ perspectives:
The trend of integrating QA with the development process rather than keeping them as a separate team to find and fix defects later is somehow triggering the question: Is QA dying? Do QAs become redundant? Will developers take over QA tasks?
To answer this question, let's dive into a scenario when an organization does not have a dedicated team of QA testers. Imagine that everyone involved in software delivery will need to put in extra effort to fill in the gaps. Besides producing new code and writing tests at code level, developers and IT experts will need to spend time for QA-based testing. It is possible. However, the story does not end like this if we think about the big picture when the product will grow at scale.
To ensure customers receive quality products, organizations need to build a solid QA operation. With that in mind, these activities should be performed regularly:
Yes, these responsibilities usually fall under QA. Not having people specialized in QA testing will mean all these tasks will be left behind.
When it comes to products that humans will use, no organization can release a product without manual testing.
When it comes to products that humans will use, no organization can release a product without manual testing. For instance, a computer is made and tested using an excellent automation process. Still, when it is in users' hands, many scenarios will introduce issues that automation can not find. Having no QA means lacking the human input to use the product as a user. QA people are the ones who possess a distinct skillset and are the first users who fortunately have an opportunity to use the product when it is released internally. While testing the new features from the user's perspective, besides detecting more bugs, they will raise concerns to improve the UX before launching the product to end-users.
Having no QA means lacking the human input to use the product as a user.
Having QA people in the development team will be a challenge when more organizations adopt the current trend of shifting quality responsibility to developers. Having said that, that trend does not eliminate the QA role in the Agile team. Indeed, QAs always have their value to shine. To keep the QA role from becoming redundant, here are some key points we should keep in mind.
QAs can discover issues via various user flows and examine the product under the combination of functionalities that can be missed by developer-based code testing.
Moving away from having QAs is popular now, and it makes QAs worried about their future when testers are no longer needed. But the value of having QA people in the development team will never disappear. To build a robust development process, we need to understand both the advantages and disadvantages of developer-based and QA-based testing. We also need to balance these approaches by having developers do testing at the code level and have QAs tackle bugs under the user's journey.
Get visual proof, steps to reproduce and technical logs with one click
Continue reading
Try Bird on your next bug - you’ll love it
“Game changer”
Julie, Head of QA
Try Bird later, from your desktop