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
If you have been in the software development industry for a while, does this question sound familiar to you? For some, this question creates a myth of who is responsible for quality:
Myth: The main task of QAs is testing and finding defects. Therefore, quality is the sole responsibility of QAs. When a defect is missing, QAs should be held accountable for the incidents.
Fact: Everyone from product managers to developers is in charge of making sure that features can and will work when they're handed off. There are many phases from requirement gathering, planning, coding, testing involved before features are handed off to the users. But QAs do have an especially difficult task: finding as many defects as possible at this final stage. However, if a defect is missing, it's because something might go wrong somewhere in the process, not only in the final steps.
What's behind the myth that "QA is responsible for missing defects"?
In the traditional development process, testing happens very late. It's the only time where issues are found and reported. People rely on QAs to find and report all defects before a big milestone release. Of course, this leads them to think that if a defect is missed, there wasn't enough coverage.
Culture is another important factor. Developers and testers are two separate teams, and each has its objectives. Testers are supposed to report all possible errors created by developers' code. Having developers and testers as separate teams means no cross-functional collaboration and no responsibility for product quality.
Besides, quality is not included in many job descriptions of product managers or developers' roles as part of the responsibility. Hence, quality is often overlooked when people join and mistakenly believe that QAs will handle and be responsible for quality.
Anyway, let's have a more detailed look into why defects are leaked to production from different perspectives.
There are a couple of reasons why QAs missed defects and let users discover them:
Of course, QAs are human, and humans aren't perfect. That's why defects happen from their mistakes, such as missing test cases to cover obvious acceptance criteria, using invalid test data, not configuring their testing environment properly, and so on. With this in mind, yes, QAs should be responsible for such mistakes. But we'll get further into what QAs need to do in the next section.
The lack of training for new hires or junior testers regarding the product and its related systems can be one reason why they don't perform effective testing. If a new hire or junior does not have adequate knowledge and training, it's easy to miss an edge case or a dependency while testing a new feature.
On the other hand, many factors are out of QA's control.
Firstly, due to the complexity of the product and interrelated subsystems, it's hard to identify all possible scenarios in a short time. Additionally, because the product is complicated, it can be challenging for testers to mimic the production environment. This discrepancy in the testing environment sometimes causes issues that are only reproducible in the real environment.
Example: On the day the team deployed a feature to production, we experienced an awful performance issue where a SQL query crashed the production server because one of the columns was not indexed. It costs us time and effort to kill the query and roll back the servers to normal conditions. The query worked perfectly on the test environment because the database is much smaller than the production one.
One more factor related to the environment is when a user has installed something (e.g., an extension) on their computer that might block the code of application render on their browsers. If the volume of issues like this is high enough, this could be considered a missing defect.
The most common reason we all know is the time constraints that prevent thorough testing. Let's do the math here to understand the problem better.
Assume that an application has 100 test cases to be executed to ensure all features are tested before every bi-weekly release. Bird (short for Bird Eats Bug) wants to support all different OS such as Windows, macOS, Linux, ChromeOS, iOS, and Android. The app should be working on multiple browsers such as Chrome, Firefox, Safari, Chromium Edge, Opera, and more on each OS.
How many test cases to execute: 100 test cases * 6 OS * 5 browsers = 3000 test cases.
However, this is just the math to show the total number of tests to have the best coverage so that nothing is missed. That is not only impossible to apply in the real world; it's also not a wise usage of time and effort.
It is important to emphasize that there is no bug-free product. Bugs always exist, and we should accept that testing shows defects and testing everything is impossible. Suppose everyone in the team understands these principles; it'll be easy to build a culture where quality is a shared responsibility and missing defects will not be a big deal and can be easily reduced.
We should keep in mind that having fewer bugs does not equal having good quality. Thus, the purpose of testing is to help reduce the chance of introducing bugs and provide confidence for the product to be released within a limited amount of time and effort.
Here are the list we could do to improve quality and reduce leaking defects:
We want to offer the best product to our users so we release new features to production very often. At Bird, everyone is responsible for quality, from product managers to developers and testing happens on every stage of the development cycle, from design, coding to validation. QA plays quality assistant role and performs the last check before the release
As we've covered above, time constraints are the most common problem that prevents thorough testing. Bird is a time-saving tool that will help you (and anyone on your team dealing with bugs!) file an effective bug report and upload it in seconds to any bug tracking system you're using. Installing takes a few seconds, and you can take a screenshot of the issue or record a video to describe the steps to reproduce actual vs. expected results. More importantly, all the system information, console, and network requests will be automatically recorded while recording a video. Such information is super helpful for developers when it comes to debugging and fixing bugs.
Last but not least, you can upload bugs straight to Jira, Github, Linear, or Trello directly from the Bird app. Bird frees up more time to focus on testing to find more issues rather than spending your time on reporting bugs. The more time you test, the higher your test coverage, and fewer bugs are introduced to production.
The question "How did QA miss a defect?" should be changed to "Why was a defect missing?". By changing the way we ask, the objective is entirely different, which is a missing defect. Therefore, the solution will prevent the defect from happening again, and no blaming game will occur.
It's essential to build a culture where everyone is willing to make mistakes, learn from failure, and constantly improve.
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