Participants and "customers" in the testing process

Participants and "customers" in the testing process

In this article, let’s consider who could be the potential stakeholders and consumers of testing services. To do that, we need to answer the following questions:

  • How, at what stage, and with whom does the testing team interact in the software development process?
  • What do various participants in the development process expect from the QA team, and how can that be achieved?
We are not going to focus on the selection of a specific methodology, because it is not so important (or at least it is not our first priority) in looking for answers to the questions. That could be a Waterfall process with a dedicated and separate testing team, or it could be Agile with a single development team. First of all, it is crucial to focus on the appropriate implementation of the quality assurance function. To perform this function efficiently, the testing team must know all stakeholders and understand their expectations and how to cooperate with them in the most efficient way.

What is quality?

Before we deal with all the expectations and requirements of the testing team as well as product quality, let us take a step back and look at the notion of quality.

What is quality? How do we know something is of high quality? What do we expect from a high-quality product? What makes a high-quality product different from a low-quality product?

  • Quality is a very subjective attribute. Everyone will give their own definition of quality or description of a high-quality product.
  • Every person may consider one or another thing, product, or service to be of high or low quality, based on his or her needs, values and priorities. One and the same thing can be seen as being of high quality for one person and of low quality for another.

To sum up, we get the following definition: quality, first of all, means meeting expectations. In other words, it is a subjective assessment, and depends on who is assessing.

What follows from this? To achieve a higher assessment of your quality, you need to understand who makes it and what it's based on. Therefore, if you want to get a high quality software product, you must understand the expectations of all people involved in the development and operation of that product. You should be able to work together with all the participants in the development process and at all stages.

What type of expectations can be had with regard to the quality of a software?

The understanding of software quality may differ among different participants in the development process. The same is true about expectations from the testing team within the QA process. Let us summarize all requirements in the following table.

 Participants in SW development process Expectations from high-quality software   Expectations from QA
 Business customers
  • Business benefits, high ROI
  • Market success, growth opportunities
  • Confirmed operability of all new features and products
  • Checking the business processes
 Analysts, architects
  • Transparent logic
  • Scalability of solutions
  • Control over the full implementation of the logic of functionality, objects, and methods of their interaction
 Developers
  • Clear requirements
  • Code quality
  • Relevance of technology stack

  • Checking the code compliance with requirements
 Outside IT teams
  • Reliable integration
  • System support
  • Revealing the mutual influence of systems and checking the integration point
 Users
  • Easy, intuitive interfaces, high performance
  • Familiar functions and interfaces remain intact
  • Confirmation that the new functionality enables people to solve real life tasks
 Support
  • No failures or crashes
  • Clear installation and configuration instructions
  • Sufficient performance of servers
  • Warranty that the new software will not disable the existing one

At what stages of development should testers be involved?

A brief answer is—at all stages. As we have seen, the testing team collaborates with all participants in the software development process. If there are separate stages and steps within the process, then testers should be involved at each stage or step.

The splitting of the process into stages does not necessarily mean Waterfall. In agile development, too, you can find different tasks: analyzing and working out users' stories, configuring the environment, debugging the software, demo, features acceptance, etc.

The following activities can be identified within the software development process, each involving the QA team:

The Software Testing Process

Other activities will be present in both waterfall and iterative development:

  • In Waterfall, these are separate stages/steps of development
  • In Agile, these could be different activities within one iteration
In the second part of the article we will look at how the QA interacts with other stakeholders in the software development process.

Pavel Novikov
Program Manager