How Assumptions in Software Testing can be Evil

For QA professionals, whether experts in automation or manual testing, understanding the dangers of assumptions is crucial for delivering high-quality, reliable software within the project timeline. Assumptions in software testing have the power not only to delay deliverables but also to disrupt the entire agile process and its associated benefits.

It is a common human tendency to make assumptions when they have incomplete information. Often, assumptions arise due to overconfidence as well. This tendency is prevalent in the field of Software Testing, where it can become an evil over time.

I recall an incident while working with a well-known private sector bank.

In one of their services, the entry in the database was getting overridden when a new agent joined their team. This was a serious incident as they were losing data of their agents in the database. The issue stemmed from an assumption made during the development of the code for this service. The developer assumed that the bank would have only one million agents, so they added a loop that restarted the counter at 1 when the agent count reached one million.

This issue may have slipped through testing almost 10 years ago because it took that long for the bank to reach that agent count. However, when we identified the problem, we realised that data for some agents was lost, posing a significant risk to the business.

This is the intensity of assumptions in software testing world and it can cause a high severity issue with potential of taking down the entire system if not addressed immediately.

Assumptions are serious concern for entire software industry but this blog is primarily focused on assuming things in QA process and aims to shed some light on how to come out of the assumptive way of thinking while testing a software.

image asking to stop assumptions in software testing

Why QAs Assume?

People assume for various psychological reasons. Here are some common reasons why QAs tend to make assumptions:

  • Incomplete Information: Assumptions in software testing often arises when QAs don’t have access to complete or accurate information. In the context of software testing, if QA professionals are working with incomplete or unclear requirements, they might fill in the gaps with assumptions to proceed with their testing tasks.
  • Overconfidence: When human are overconfident, they prefer to assume rather clarifying the things with other people involved in the process. This can also be seen a very common practice among QAs, after spending some time, they start to assuming things like how a dropdown should works. But they forget that it is not their responsibility to decide how a dropdown should work, rather they are there to ensure that the dropdown works as decided by Product Owner.
  • Cognitive Bias: Another common reason for making in assumption is your cognitive bias, the cognitive bias comes with your past experience or perceiving information in a way that it aligns with their expectations. In testing, this could manifest as assuming that a particular feature behaves in a certain way because of past experiences of using a competitor’s product or preconceived notions.
  • Time Constraints: Tight deadlines and time pressures can push individuals to make assumptions as a shortcut to expedite the decision-making process. In software testing, this might involve assuming certain functionalities work as expected without thorough verification due to time constraints.

How to prevent assumptions in Software Testing

Mitigating assumptions in software testing requires a proactive approach and a set of best practices that QA professionals can adopt. Here are some practices to help prevent and address assumptions in software testing:

#1 Thorough Requirement Analysis

Invest time in a comprehensive analysis of project requirements. Work closely with stakeholders, including developers, product owners, and business analysts, to ensure a clear understanding of the specifications. Document and seek clarification on any ambiguities or uncertainties.

For better understanding of requirements, initiate short discussions with all stakeholders involved in a process. For instance, when a developer picks up a card for coding, have a conversation with the developer and the Business Analyst (and PO) to ensure everyone is on the same page. Most of the companies call this activity 3 amigos.

#2 Ask Questions

This is one thing which I believe QA should always do, that is “ask questions”. They should not hesitate to ask questions whenever there is uncertainty or ambiguity in requirements.
Effective communication is key to preventing assumptions. Regularly engage in discussions with team members to clarify expectations and ensure everyone is on the same page.

Don’t hesitate in asking questions even your questions are
– Silly and Stupid
– If answers are pretty obvious
– If you don’t get convincing, rephrase your question and ask it again.
– If answered in Yes or No, then ask open ended questions
– But you ask question.

#3 Collaboration and Team Communication

Foster a culture of collaboration within the testing team and across different departments. Regular team meetings, 3 amigos discussion, stand-ups, and collaboration tools can facilitate open communication, reducing the chances of making assumptions due to lack of information.
Actively participate in agile practices like daily stand-ups, where team members share updates and discuss any challenges or uncertainties they are facing.

#4 Feedback Loops

Establish feedback loops with developers, product owners, and other stakeholders. Regularly seek feedback on test scenarios, assumptions, and test results. This iterative process helps in identifying and correcting assumptions early in the development cycle.
Best way to have a feedback loop in Software Testing is setting up right testing process, where the team collectively reviews test scenarios (not necessarily documented but even if they are one liner, that should be fine). This not only identifies assumptions but also fosters a culture of continuous improvement and learning.

#5 Document your assumptions

Document your assumptions so that others are also aware of it and they can provide their insights on your assumptions.

To receive such articles directly to your inbox, please subscribe to our newsletter.

About Author