Your resource for web content, online publishing
and the distribution of digital products.
S M T W T F S
 
 
 
 
 
 
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Bug-Free Software Isn’t Luck—Here’s How Smart QA Teams Actually Make It Happen

DATE POSTED:February 27, 2025

My name is Iaroslav Gerasimov, and I hold the Senior QA Automation Engineer position at Innovecs. In our company, we prioritize knowledge sharing and team training. Recently, I conducted an internal lecture for colleagues interested in learning more about the QA process or diving deeper into quality testing metrics. This article is a summary of that lecture, so it should be helpful for anyone looking to understand QA processes or refine their approach to quality metrics.

Why the QA Process is Important

The QA process is a key element of development aimed at ensuring product quality. Its primary goal is to prevent unforeseen issues that could harm users and the business overall. Quality is always a matter of expectations, so it’s crucial that the QA process helps meet them and ultimately saves the company money.

\ In this article, I aim to share practical insights and a pragmatic approach that considers both quality assurance efforts and business needs.

Notably, quality assurance is a function that can be carried out by various specialists depending on the project specifics, not just QA engineers. However, QA specialists, with their expertise, can perform this work more efficiently and save resources. Skipping their involvement may lead to additional challenges for the team and disproportionately high future costs.

\ The QA process involves several key stages, including requirements analysis, planning, creating and executing test cases, and defining testing completion criteria. It is an integral part of the Software Development Life Cycle (SDLC), with each stage playing a vital role in achieving the desired results.

Variables Impacting the Quality Assurance Process

The QA process is influenced by various factors, such as the collaboration model between the development team and the business, product type and delivery flow, and team structure. These components determine how effectively the team can achieve the required product quality and adapt the process to project-specific needs.

Collaboration Model (Development Team — Vendor)

Depending on the collaboration model — whether it is product development, outsourcing, or outstaffing — the QA process will have varying levels of control and influence. 

\ Product teams fully manage resources and decision-making processes, outsourcing teams propose solutions that are agreed upon with the client, and outstaffing teams primarily follow business instructions. This defines QA's decision-making freedom and requires effective communication and clear agreements with the client.

\ The QA process is also shaped by the business domain, the type of product being developed, the product's development stage, the development methodology, as well as the software development and testing life cycle.

** **The Software Testing Life Cycle (STLC) is a structured process that defines a sequence of activities for testing software to ensure quality. STLC is the foundation of the QA process but not its full equivalent. 

\ It requires clear entry & exit criteria for each testing stage and quality gates — control points where QA engineers decide if the product is release-ready. These decisions rely on well-defined readiness criteria and accountability.

Business Domain

The business domain refers to the industry a product serves (e.g., banking, gaming, healthcare). Understanding the domain helps identify the type of product, business goals, priorities, and user needs, which guide the selection of development methodologies, SDLC, and STLC.

\ It’s critical to grasp the domain’s specifics and user priorities. For instance, e-commerce focuses on performance, banking prioritizes security, and gaming emphasizes seamless UX. These factors shape QA priorities, influencing testing methods and the focus on certain quality aspects. Let's be honest - you can't test everything. You shall prioritise quality aspects of your solution and dedicate more time for assuring quality at what is more important for business. Understanding domain specifics will be a tip here.

Product Domain (IT Solution Type)

The product type (web, mobile, desktop, IoT, etc.) defines its delivery to users and QA specifics. If we talk about delivery aspects — mobile apps require store releases, while IoT products involve integration with diverse devices. And it’s universal truth that mobile testing differs from web/desktop/etc. here is where we define what product type are we dealing with and what are product-type-based aspects we shall consider once assuring quality of your solution.

Product Development Phase

QA processes must align with the product’s development phase. A startup launching an MVP has smaller, flexible teams with dynamic roles, whereas mature products focus on detailed testing and maintenance. In support phases, team composition, release volume, and speed differ significantly.

Development Methodology

The development methodology shapes the QA approach. Agile, Waterfall, RAD, and other models define workflow rhythm and team interaction, influencing flexibility, speed, and user satisfaction.

\ Understanding expectations and available resources helps distribute QA tasks efficiently, sometimes delegating to project managers or developers.

\ Selecting a methodology involves aligning with resources, expertise, delivery goals, and client expectations. Teams can use pure methodologies or hybrid approaches tailored to project needs. However, changing methodologies mid-process requires significant resources and should be carefully planned.

Software Development Life Cycle & Software Testing Life Cycle

All SDLC stages: e.g. planning, analysis, design, implementation, testing, deployment, and support — impact QA processes. Clear understanding and transparency in these cycles prevent quality issues and enhance development efficiency.\

Clear responsibility allocation is central to avoiding QA being blamed for issues caused by poor release decisions. A structured process helps pinpoint errors and identify areas for improvement.

\ Testing must be integrated across all SDLC stages. Testing shall be done as early as possible to minimize costly late-stage fixes. Quality assurance starts from “testing” the requirements, follows with testing code itself, and ends with functionality code delivers and how it (functionality) integrates into the system. Effective planning includes requirement analysis and test case development in parallel with coding.

Git Flow

Git Flow is a process that defines the path of code to the end user, which is key for QA engineers to understand. It helps identify the points at which quality activities should be conducted and allocates them to appropriate stages. QA engineers need to be familiar with Git Flow and understand how code changes impact each release to ensure product stability and predictability.

\ Additionally, test scenarios should be considered for each stage when transitioning code to a new branch or release, determining whether full regression testing is required, or feature and integration testing will be enough to ensure quality.

\ In modern project development, interactions with the business don’t always follow best practices, often due to user expectations and time constraints. One approach to optimize testing time is to reduce validation scenarios gradually as code transitions from feature branches to release branches. For example, new feature coverage is fully tested on the feature branch, while integration into the release candidate involves testing only key scenarios of feature introduced and testing of related functionality are done, but overall regression testing for release build is performed later to ensure the feature integrates well with the rest of the product.

\ This practice allows the focus to be on core functionality, although it doesn’t always cover full validation at every Git Flow stage, which can sometimes become a bottleneck in development.

Also important to consider

For quality assurance, it is crucial to set up proper environments that enable testing of various product aspects. Standard environments (such as Development, Testing, Stage, and Production) are necessary for quality and performance work. 

\ However, for specific needs like performance testing, it is advisable to have separate environments to prevent disruptions and provide more accurate results. Separate environments allow multiple features to be tested in isolation simultaneously, preventing conflicts between functional and integration tests.

\ It is also important to consider different testing levels that ensure quality coverage. For example, the test pyramid helps organize testing across components, systems, and integrations. It is relative and may vary depending on the system's structure.

Test Automation and Team Composition

Test automation is a crucial element, though in some projects it may be absent or only partially implemented (e.g., limited to a smoke suite).

Test automation is an investment in the future, significantly saving resources by automating repetitive tasks. The automation process requires understanding ROI (Return on Investment), as it involves time and budget costs. The goal of automation is to use specific tools and technologies to create solutions that reduce the volume of repetitive work in the future, thus saving time and team resources.

\ The approach to automation and the role of the Automated Quality Assurance team can vary depending on the organization’s structure. Some teams integrate automated testing into the broader QA function, while others designate it as a separate unit. This choice also depends on the budget and business collaboration model. It's essential to maintain close collaboration between AQA and QA engineers (if these roles are separated) to ensure automated checks align with real quality and functionality requirements.

\ The effectiveness of the QA team is also influenced by factors such as team composition, the number of people, and their skill levels (a.k.a. seniority). The right balance of experienced and less experienced specialists ensures proper process support and the integration of new solutions. Tools used for project management, testing, and documentation are also vital. Integrated systems significantly speed up task execution and make the process more data-driven, which is vital for achieving effective communication and meeting business goals.

\

Tools: PMS, TMS, Project Documentation, Devices

The tools the team uses directly influence the QA process. The right selection and integration of tools can significantly impact work efficiency and team satisfaction.

\ Firstly, the ease of using tools like Project Management Systems and Test Management Systems provides quicker access to information and simplifies communication among project participants. This, in turn, speeds up product delivery and allows data-driven decision-making.

Secondly, documentation is a critical element in the QA process. However, its quality is often subpar; in the best case, only partial information is available. Without proper documentation, teams struggle to align their actions and strategies, which can lead to errors and project delays. Documentation is indeed indispensable, although Agile emphasizes delivering a working product. To assess quality effectively, it is essential to have formalized expectations and quality criteria agreed upon by all stakeholders in the product development process.

\ Additionally, devices play a vital role in achieving the required test coverage. Choosing the right devices enables teams to conduct testing across various platforms, ensuring better product quality and user satisfaction. It’s important to discuss this with the business and document agreements to avoid misunderstandings.

Tips & Tricks for a Successful QA Process

For a successful QA process, it is essential to align quality criteria with the client (Functional, UI, UX, performance, security, etc.), discuss what constitutes quality for the business, and provide recommendations based on the team's experience.

\ Developing an SDLC diagram for your project will help understand the process of delivering code to the production environment and identify potential issues. Define mandatory actions for ensuring quality and integrate testing into the development cycle, aligning them with the client’s expectations.

\ The SDLC diagram helps synchronize the vision of all project participants: project managers, delivery managers, developers, and stakeholders. It clarifies which QA activities are being performed at each stage and how they impact the further progression of the code in the production environment.

Transparent integration of STLC into SDLC is critical for ensuring product quality. At different stages of development, it is imperative to clearly define which QA activities need to be performed to detect and address defects promptly.

Define Metrics to Be Used for QA Effectiveness Evaluation

Metrics play a vital role in assessing the effectiveness of the QA process. Some key metrics to track include:

  • Critical Defects = Total number of critical defects found before and after release.
  • Defects Found After Shipping = Total number of defects found after release.
  • Critical Defects Percentage = (Critical Defects / Total Defects Reported) × 100.
  • Test Effectiveness Percentage = (Defects found in test / (Total Defects Reported (defects found in test + defects found after shipping))) × 100.
  • Fixed Defects = Total number of defects fixed before and after release.
  • Number of Reopened Tickets.
  • Test Coverage Level.
  • Time to Test (smoke/sanity/regression).

\ Among these, the Test Effectiveness Percentage metric is particularly significant as it measures the number of issues detected during testing compared to those reported overall, and also considers issues found after release.

\ If we talk about metrics in general — it is also important to consider who the metrics are being collected for, as different team members have different needs for data. I would not recommend overloading the team with metrics, as this requires resources and proper infrastructure. The number of reopened tickets and the level of test coverage are useful metrics but should be applied thoughtfully.

\ In addition, i would suggest to consider Test Maturity Model in evaluating the quality of the QA process. 

\ Finally, it is necessary to clearly define team responsibilities to avoid situations where QA engineers take on additional functions that prevent them from focusing on quality assurance.

\ In conclusion, building an effective QA process requires a deep understanding of your project’s specifics, including its domain, development methodology, and team structure. By aligning QA activities with business priorities, leveraging the right tools, and defining clear metrics, you can ensure a streamlined process that delivers quality at every stage of development. Continuous collaboration, transparency, and adaptability remain the pillars of a successful QA strategy, driving both product excellence and customer satisfaction.

\n