Source: TesterHome Community

In the context of agile and lean R&D, balancing product quality with test efficiency is extremely important. Many real-world situations look like this:
The question of “how to find as many important bugs as possible in as little time as possible” has been thrust into the spotlight.
Based on the Golden Circle proposed by Simon Sinek, we think from the inside out, starting with “why”. Improving R&D efficiency is a crucial strategic goal in the digital age. He Mian, the author of Lean R&D, points out that the essence of efficiency improvement lies in: “continuously and smoothly delivering effective value with high quality.”
For a tester, in this context, an important responsibility is to grasp the balance between product quality and test efficiency — achieving integration of quality and efficiency. Returning to the question: how to “find as many important bugs as possible in as little time as possible” — its essence is precisely the “path to balance” between product quality and test efficiency.
For daily testing work, let’s look at a simplified process to understand the activities involved:
Understand Product Requirements → Determine Test Scope → Organize Test Points (Test Analysis) → Write Test Cases (Test Design) → Execute Test Cases → Product Launch
If you are a tester, you will be very familiar with this process. This is exactly what you do in every iteration; there is nothing special about it. And indeed, that is true.
The intention of this article is not to innovatively propose a new testing model to balance product quality and test efficiency. Its focus is on seeking a better optimal solution within the daily testing model.
Regarding how to seek this better optimal solution, the key inputs include:
Xiaomei Tai can be considered a student and peer of James Bach. Regarding the models and frameworks constructed by these two individuals, an important foundation is Context-Driven Testing thinking, and a key principle is Risk-Based Testing (RBT) .
Context-Driven Testing thinking emphasizes paying attention to the project’s context, recognizing that the context can change, and that test strategies and methods should be formulated based on the context, and adjusted promptly and optimized continuously as the context changes.
Context-Driven Testing thinking is one of the main agile thinking methodologies and is also the foundation of test analysis in agile mode.
James Bach is a renowned representative of the Context-Driven school. For many years, he and Michael Bolton have been practicing and developing Context-Driven thinking, including his proposed methodologies such as:
It can be said that James Bach’s entire theoretical system of testing is built upon the foundation of Context-Driven Testing thinking.
The Heuristic Test Strategy Model (HTSM) is a concrete practice based on Context-Driven Testing thinking. The context-driven heuristic test strategy focuses on considering the impact of three aspects — Quality Criteria, Project Environment, and Product Elements — on testing techniques, methods, and tools.
Each aspect contains multiple factors (i.e., various contextual factors), ultimately delivering a product that meets users’ quality requirements.
Key Insight: HTSM consists of a series of guiding words that allow testers to think about the product and testing from “high-level abstraction” down to “low-level details”. It doesn’t teach you how to test; rather, it inspires you how to think, thereby uncovering the test object and strategy.
To test a product or feature well, it is natural to understand the project’s background, especially the project elements related to software testing. You need to acquire, analyze, and comprehensively understand detailed information related to these elements to better clarify:
James Bach, in his Heuristic Test Strategy Model, provides analytical guidance for the Project Environment. Combined with practical implementation, the analysis focuses on:
|
Component |
Description |
|
Customer |
Project goals and user needs |
|
Test Item |
Test scope |
|
Schedule |
Progress and milestones |
|
Developer Relationship |
Collaboration with dev team |
|
Test Team |
Available test personnel |
|
Equipment & Tool |
Test environment and tools |
|
Quality Requirements |
Test exit criteria and deliverables |
These parts form a crucial component of a test strategy.
The product is our test object, so it naturally demands even more attention. Once a project starts, testing should get involved as early as possible to understand:
Participating in relevant reviews helps you better grasp the system under test. The Product Element in HTSM is designed to facilitate better test analysis and confirm test coverage.
Quality Criteria are mainly considered from three aspects: the product’s target users, specific quality requirements, and which quality standards to reference. Essentially, it answers three key questions:
Consider these factors:
The ISO/IEC 25010 software quality model defines a quality-in-use model and a product quality model. The software product quality model includes eight quality characteristics:
|
Quality Characteristic |
Description |
|
Functional Suitability |
Does it meet stated needs? |
|
Efficiency |
Performance and resource utilization |
|
Compatibility |
Co-existence and interoperability |
|
Usability |
Ease of use and learnability |
|
Reliability |
Maturity, fault tolerance, recoverability |
|
Security |
Confidentiality, integrity, non-repudiation |
|
Maintainability |
Modularity, reusability, analyzability |
|
Portability |
Adaptability and installability |
Based on these quality characteristics, conduct deeper analysis in conjunction with user, business, and product characteristics to understand users’ specific quality requirements and which quality characteristics need priority attention.
What standards or industry specifications must the product comply with? Whether in the aerospace, automotive electronics, finance, or transportation industries, in addition to general international/national standards, there are specific industry quality standards or specifications.
Example: If the project is an application system for the securities industry, it belongs to the financial industry, and there are more than 200 related specification standards.
Example: For a product supporting Bluetooth functionality, if you want to display the Bluetooth logo, you must pass BQB (Bluetooth Qualification Body) certification. Otherwise, the Bluetooth Technology Alliance will consider it an infringement. In this case, the company needs to consider how to conduct pre-tests to ensure the product obtains certification within the expected timeframe.
Risk-Based Testing (RBT) is a testing method that uses software quality risks as the starting point for testing and the main reference for testing activities. It calculates the risk degree (risk level) based on the severity and probability of occurrence of risks, and then determines test priority and test coverage according to different risk levels.
Designing tests based on product risks is a common test design approach. In the complex real world, products face various risks. Only through comprehensive consideration and thorough testing can the serious consequences of risk exposure be avoided.
Core Insight: Recalling the goal – “to find as many important bugs as possible in as little time as possible” — its essence is making trade-offs after identifying and analyzing risks, finding that balance.
The most important viewpoint of RBT is to use the software’s potential risks as the basis and goal for test planning. Only through comprehensive analysis and understanding of current potential risks can you effectively design and organize appropriate tests, find as many potential defects as possible with as few testing resources as possible, maximize avoidance of potential risks, and reduce maintenance costs.
Due to the defect cluster effect (a small number of modules typically contain most of the defects), compared to specification-based testing, RBT can achieve more efficient testing through precise risk identification.
Due to the inexhaustibility of testing, situations with insufficient testing resources and time are often encountered. Given limited time and resources, you can only find a balance between limited time, resources, and quality.
Adopting RBT helps test managers:
Moreover, RBT no longer forces everyone to make release decisions based on insufficient strategic metrics such as defect counts or test case counts. Instead, it works with stakeholders to decide on the acceptable level of residual risk, thereby making reasonable release decisions.
The main process of RBT includes:
These steps should run through the entire software lifecycle, involved in test preparation, test analysis and design, test execution, and other testing activities, forming an effective closed loop.
Important Note: The most important characteristic of risk is that it is constantly changing. Never expect to design perfect test cases in one go and then consider test analysis and design activities complete. Every step of each process involves countless speculations. Good test analysis and design activities are not one-time activities; they are destined to be iterative and continuous.
Implementing Context-Driven Testing thinking and Risk-Based Testing as a sound testing model is extremely important. Just as RBT is not about following steps rigidly, it needs to be implemented as a habit and a way of thinking in the team’s daily testing work.
One of the best practitioners in this regard is Xiaomei Tai. She wrote the book Pirate Testing Analysis: MFQ&PPDCS. The focus of this book is not to explain various existing test design methods one by one, but to adhere to the idea of “starting from actual problems, not from methods.”
From the perspective of practical test analysis and design, it explains the patterns and methods that can be followed in software testing. For example, when a tester takes over a new system or feature under test, how to use various testing skills to analyze the test object step by step and ultimately complete the testing task.
The main content of Tai’s approach essentially elaborates a testing model for daily testing work:
Know Your Mission (KYM) → Test Coverage Outline (TCO) → Analysis Modeling (PPDCS) → Test Design → Test Execution
According to the Golden Circle, think from the inside out: Why, How, What.
KYM is heuristic. In RBT, it is an important action for collecting information, mainly including gathering information from four aspects:
Core viewpoint: Promote communication between testers and people around them, obtain valuable information in a timely manner, and identify risks early.
From daily testing, common problems include:
From a practical perspective, product R&D has a vision that defects should be discovered as early as possible. The discovery of these issues comes from decisions made based on information from understanding users, the project, and the product. This is precisely why KYM is important.
Core viewpoint: The essence of KYM is to collect information and understand the context by continuously asking questions.
The process of obtaining information is a continuous process of asking questions. How to ask questions and what questions to ask are the essence of KYM. The ability to ask questions is very important for testers.
Xiaomei Tai drew on the Project Environment from James Bach’s HTSM to construct a guide for asking questions — the mnemonic CIDTESTD:
|
Letter |
Stands For |
|
C |
Customer |
|
I |
Information |
|
D |
Developer Relationship |
|
T |
Test Item |
|
E |
Equipment & Tools |
|
S |
Schedule |
|
T |
Test Team |
|
D |
Description of Mission |
Core viewpoint: KYM can be applied at any stage of the project. KYM runs through the entire testing project; it is not a one-time activity.
Having performed KYM, you already have some understanding of the users, mission, and test object. But your understanding is still too coarse. If you only grasp one point and go deep, you may fall into the fog of “seeing the trees but not the forest.”
Drawing a TCO mainly helps achieve:
The Test Coverage Outline can be written in two ways:
|
Approach |
Method |
Use Case |
|
Quick analysis |
Based on Product Elements (SFDIPOT) from HTSM |
Select test points for rapid exploratory testing |
|
Deep analysis |
Based on MFQ (MD + FI + QC) |
Comprehensive testing and verification |
Note on MFQ: MFQ includes:
[Translator's Note: SFDIPOT represents Structure, Function, Data, Interface, Platform, Operations, Time dimensions in HTSM's Product Elements.]
Xiaomei Tai proposed using the PPDCS method for analysis modeling in Pirate Testing Analysis.
A model is an abstract and simplified representation of the test object. The test object can be represented by a model showing its internal logical relationships. Drawing a model is part of the test analysis process.
An important question: Faced with test objects of various characteristics and a wide variety of testing methods, which modeling method is most effective?
Carefully studying the basic testing techniques, we find they can generally be divided into several categories, each with its unique characteristics. When studying the test object, we also find that for a single function tested in isolation, its internal logic exhibits certain main characteristics.
When these two characteristics align, you can use that testing technique to analyze the single function. This is the origin of the PPDCS method.
[Translator's Note: PPDCS represents Parameter, Partition, Data, Combination, State dimensions for systematic test object analysis.]
When implementing the PPDCS method, proceed from the following four aspects:
|
Aspect |
Focus |
|
Triggers |
Identify what initiates the behavior |
|
Essentials |
Grasp the core functionality |
|
Spanning Differences |
Explore variations and edge cases |
|
Targets |
Define clear testing objectives |
The starting point of this article was to think about how to improve the testing efficiency of team members, thereby extending to the question of how to “find as many important bugs as possible in as little time as possible.”
The core is to seek a better optimal solution within the daily testing workflow. Incorporating model frameworks from industry experts such as James Bach, Xiaomei Tai, and Zhu Shaomin, this article derives an excellent testing practice model grounded in: