Digital Transformation Today

Software Quality Assurance Testing Limitations – Could Quality Assistance Be the Better Choice?

OR

The words “testing” and quality assurance (QA) are used interchangeably in the industry, and many aren’t aware of the difference between the two. Testing, as such, focuses on the correctness of the end product, whereas software quality assurance testing ensures that appropriate procedures and processes are in place and enables the delivery of a product/service to an agreed level of quality.

QA is a proactive process focused on finding ways to prevent bugs during the software development process. Quality assurance works as a gatekeeper to pass on the flawless product from the organization’s door to the user’s hand. It encompasses multiple methodologies and activities, including testing to ensure the product’s quality.

QA is used to verify and validate the product’s quality against the available or specified requirements and specifications, which restricts the scope of evaluating the product to given requirements and specifications. If the product fulfills the different requirements, it is meant to be acceptable for the release, but may not guarantee the quality.

Traditional QA is all too often the roadblock between highly accelerated development processes and highly automated operations-driven delivery processes. However, a re-envisioned QA helps the entire team collaborate to ensure that the release doesn’t place the business at risk, undermining the very “customer experience” that digital transformation is dedicated to enhancing.

Undeniably, traditional QA must change to accelerate application delivery and become a catalyst, rather than a barrier, to digital transformation. But what is the ultimate goal of QA in the new world of development and operations (DevOps) and cloud speed, and what is needed to achieve it? This should be the area of focus and progress.

So, What’s Next? Quality Assistance?

Is quality assistance a new term? No, but it is an alternative name to quality assurance by a different structure and means to ensure and assure software quality.

Quality assistance, first coined by Cem Kaner, is based on the idea that a QA engineer is a facilitator for high product quality instead of the individual performing the tests. Quality assistance, however, helps developers build quality into their features from the start, reducing the work and rework cycles that a traditional quality engineer and development team would go through. This assists in optimizing the release process for both quality and speed.

In a quality assistance model, there are different goals to focus on, including providing training, tools and environments for developers to test, helping streamline and improve software development processes, collecting and analyzing the metrics and preventing issues before they become bugs. It does not mean we exclude the roles of QA (testing the developers’ work before it gets released, detecting bugs, communicating findings and advocating for problems to be fixed). This model focuses on “built-in” quality rather than just testing.

QA Must Shift from “Quality Assurance” to “Quality Assistance”

With this shift, quality becomes a shared responsibility rather than the sole responsibility of one part of the team. The QA role is then expanded and elevated to assist teams with defining and achieving quality objectives.

QA is integrated throughout the development lifecycle, and it requires the project team to be involved, including stakeholders, business analysts, developers and testers. The QA process helps to improve the productivity of the project team by specifying and establishing the requirements for both the software development process and quality standards.

The quality assistance model has goals that start at the very beginning of the development cycle. These goals require a particular set of skills, which will need to be practiced to be effective. Here are six main skills to start developing:

  • Influence
    How to practice:
    Becoming an influencer can take time – one must gain the team’s respect/trust before suggesting changes. Be mindful of not giving an opinion but providing the team with facts. Collect metrics, examples and evidence to help the decision-makers. Accept that you can be wrong, and trust others to make good decisions based on the input you provide.
  • Testing Expertise
    How to practice:
    Ask developers to explain implementation details which will give a better understanding of the feature implemented. Get more details on how to handle various scenarios. Exploratory testing is a valuable technique that can be used extensively here.
  • Teaching skills
    How to practice:
    Pair up with the developers and be willing to share the ideas and experience that you have gained over the period. Discuss on the different challenges that might occur to achieve the goal/functionality/user story/acceptance criteria. Be mindful that teaching is not preaching but sharing one’s rich experience/knowledge.
  • Inspiration
    How to practice:
    The testing process is not a bunch of user experience interactions hoping to stumble across bugs. It is a valuable, challenging and fun activity. Question why testing could be fun – is it challenging to code, a thrill to find obscure edge cases or proactively protect against detrimental bugs?
  • Facilitation
    How to practice:
    The team needs to communicate well and hold each other to high-quality standards. You can make this happen by defining the quality bar, organizing testing sessions and ensuring that developers have the right tools, right data and right environments they need to carry out their testing efficiently.
  • Identifying problems
    How to practice:
    While every member associated with the team can perform actual testing, the QA gets an opportunity to look out for problems and create opportunities to improve the team’s quality, efficiency and independence. Many may be reluctant to change, so QA must be willing to try experiments and change course as needed if it does not provide the benefit expected.

In a nutshell, it may be inferred that unlike the quality assurance process, where the QA team is solely responsible for the release of quality products, quality assistance involves the engagement and contribution of each and every team toward the improved quality of the software product.

As you can see, improving your software quality assistance testing skills isn’t done in a void. You can start honing these skills right now, regardless of where your team is on the assurance-to-assistance spectrum.

Author: Nandini Rao | [email protected]

Contact Us

Put your best foot forward with Withum! Connect with our digital collaboration, engagement and productivity experts today to ensure the best procedures and processes tomorrow.