Reliable Domain Coverage
In the ISTQB Advanced Level Test Analyst syllabus, data-based test techniques include equivalence partitioning, boundary value analysis, and domain analysis. Reliable Domain Coverage is best understood as a test design goal rather than a separately named technique: choose test data so that passing … In the ISTQB Advanced Level Test Analyst syllabus, data-based test techniques include equivalence partitioning, boundary value analysis, and domain analysis. Reliable Domain Coverage is best understood as a test design goal rather than a separately named technique: choose test data so that passing tests give justified confidence that the software behaves correctly across each whole input domain, not only at the values actually tested. The idea comes from testing theory, notably Goodenough and Gerhart's notion of a reliable test criterion. A domain is a set of input values, often defined by several variables and constrained by boundaries such as x + y <= 100. Domain testing assumes that all values inside a correctly identified subdomain are processed in the same way. If that assumption holds, one representative value can stand for the whole subdomain, and the coverage is reliable. If it is wrong, for example because hidden internal logic treats some values differently, the coverage is unreliable and defects may escape. In practice, test analysts pursue reliability with boundary-focused strategies. Domain analysis selects ON points, which lie on a boundary, and OFF points, which lie just beyond it, plus IN and OUT points where useful. A common approach is Beizer's 1x1 strategy, which uses one ON point and one OFF point per boundary. For linear boundaries, it can detect typical domain errors such as shifted, tilted, missing, or extra boundaries and wrong relational operators, for example < instead of <=. Coverage is usually measured as the percentage of identified partitions, boundary values, or domain test points that have been exercised. Reliability depends on correct domain identification, consistent processing within each partition, appropriate boundary precision, and attention to interacting variables. Analysts strengthen it by deriving domains carefully from specifications, involving domain experts, and adding tests where assumptions are uncertain. High coverage figures alone do not guarantee reliability. Confidence comes from well-founded partitions and boundaries combined with systematic test point selection.
Reliable Domain Coverage: A Complete Guide for ISTQB CTAL-TA (Data-Based Test Techniques)
Introduction
Reliable Domain Coverage is part of domain testing, one of the data-based test techniques in the ISTQB Certified Tester Advanced Level Test Analyst (CTAL-TA) syllabus. Domain testing extends equivalence partitioning and boundary value analysis to inputs whose valid regions depend on several variables at once. The word reliable describes a test selection strategy that is designed to detect specific kinds of boundary defects. This guide explains why the concept matters, what it is, how it works, and how to answer exam questions about it.
1. Why Reliable Domain Coverage Is Important
Many defects sit at the edges of input domains. Developers write < instead of <=, use the wrong constant, or combine variables in the wrong way. In multi-dimensional input spaces these defects are hard to see:
- Classic boundary value analysis handles one variable at a time and can miss defects where the boundary depends on a combination of variables, for example x + y <= 10.
- Testing every point near every boundary is too expensive, so testers need a small set of test points that still finds boundary defects.
- A reliable strategy gives a measurable and defensible level of thoroughness. You can state which fault types the test set is able to detect, which helps with risk-based test design and reporting.
- It shows the Test Analyst's skill in turning specifications such as business rules, eligibility conditions and validation logic into precise, efficient tests.
2. What Reliable Domain Coverage Is
A domain is a region of the input space where the system behaves the same way, similar to an equivalence partition. Each domain is limited by boundaries, usually expressed as conditions. Linear conditions look like a1*x1 + a2*x2 + ... <= c.
Key terms:
- Closed boundary: points on the boundary belong to the domain being tested. Example: x + y <= 10.
- Open boundary: points on the boundary do not belong to the domain. Example: x + y < 10.
- ON point: a point lying exactly on the boundary.
- OFF point: a point as close as possible to the boundary, but placed so that it gets the opposite classification from the ON point.
- If the boundary is closed, the ON point is inside the domain, so the OFF point lies just outside.
- If the boundary is open, the ON point is outside the domain, so the OFF point lies just inside.
- IN point: a point inside the domain that is not on any boundary.
- OUT point: a point outside the domain that is not on any boundary.
A domain test strategy is called reliable when, under stated assumptions, its test points are guaranteed to reveal certain boundary defects. The assumptions are typically linear boundaries and defects that change the boundary itself. The defects covered are:
- Closure defect: the wrong relational operator, such as < versus <=.
- Boundary shift: the wrong constant moves the boundary in parallel.
- Boundary tilt: a wrong coefficient changes the slope of the boundary.
- Missing boundary or extra boundary conditions.
The best-known reliable strategy is the 1x1 (one-by-one) strategy, also called simplified domain testing and associated with Jeng and Weyuker. For each boundary, it selects one ON point and one OFF point, with the OFF point as close as possible to the ON point. An older and more expensive approach, Beizer's N x 1 strategy, uses N ON points and 1 OFF point per boundary, where N is the number of dimensions.
Domain coverage is then measured as:
Coverage = (number of required ON and OFF points exercised) / (total number of required ON and OFF points) x 100%
Some sources state it per boundary instead: the number of boundaries tested with both an ON and an OFF point, divided by the total number of boundaries.
3. How It Works: Step by Step
Step 1: Identify the domains. Analyse the specification and list the conditions that define each region of behaviour.
Step 2: Identify the boundaries. Write each condition as a boundary and mark it as open or closed. Also note the data type and precision, for example integers or currency with two decimals.
Step 3: Select an ON point for each boundary. Choose a point that satisfies the boundary equation exactly and lies within the limits set by the other boundaries.
Step 4: Select an OFF point for each boundary. Move the smallest possible step (one unit of precision) away from the ON point. The direction depends on closure:
- Closed boundary: step outward.
- Open boundary: step inward.
Step 5: Handle equality boundaries. For a condition such as x = c, use one ON point and two OFF points, one on each side.
Step 6: Determine expected results. Classify each point correctly according to the specification, not according to the implementation.
Step 7: Measure coverage. Count the points exercised against the points required.
Worked Example
A discount applies when x >= 0, y >= 0 and x + y <= 10. All values are integers.
The domain has three boundaries, and all three are closed:
- B1 (x = 0): ON point (0, 5), inside the domain. OFF point (-1, 5), outside.
- B2 (y = 0): ON point (5, 0), inside. OFF point (5, -1), outside.
- B3 (x + y = 10): ON point (4, 6), inside. OFF point (4, 7), outside, because 11 > 10.
The 1x1 strategy needs 6 test points, which gives 100% reliable domain coverage. If only 4 of them were run, coverage would be 4/6 = 67%.
Now suppose the developer coded x + y < 10. The ON point (4, 6) would be wrongly rejected, so the closure defect is revealed. If the code said x + y <= 11, the OFF point (4, 7) would be wrongly accepted, so the boundary shift is revealed.
Relationship to other techniques:
- In one dimension, the ON and OFF points match 2-value boundary value analysis.
- IN and OUT points match representative values from equivalence partitioning.
- When many variables interact, domain testing is often combined with combinatorial testing to control the number of tests.
Limitations:
- The reliability guarantee depends on linear boundaries and on the defect being a boundary defect.
- Non-linear boundaries, defects in the processing itself, and coincidental correctness may not be detected.
- Choosing the OFF point requires knowing the data precision.
- The method can be laborious when there are many boundaries.
4. Exam Tips: Answering Questions on Reliable Domain Coverage
Tip 1: Memorise the definitions precisely. Questions often test whether you know where ON, OFF, IN and OUT points lie. The trap is the OFF point. Its position depends on whether the boundary is open or closed, not on a fixed rule such as always outside.
Tip 2: Determine closure first.
- Conditions with <= or >= are closed: the ON point is accepted and the OFF point is rejected.
- Conditions with < or > are open: the ON point is rejected and the OFF point is accepted.
Write this down before choosing any answer.
Tip 3: Use the correct step size. The OFF point is one unit of precision away from the boundary. That means 1 for integers and 0.01 for currency. Distractors often use points too far from the boundary; those are IN or OUT points, not OFF points.
Tip 4: Count the minimum tests carefully.
- For the 1x1 strategy, the minimum is usually 2 x (number of inequality boundaries), plus 3 points for each equality boundary.
- One point can sometimes serve two boundaries, such as a corner point. Check whether the question allows this before reducing the count.
Tip 5: Check the ON point against the other boundaries. A valid ON point for one boundary must still respect the remaining constraints. Otherwise you are not testing what you think you are.
Tip 6: Link test points to defect types.
- If asked which test detects a closure defect, the answer is the ON point.
- For a boundary shift towards the outside of a closed domain, the OFF point detects it.
- Using ON and OFF points together is what makes the strategy reliable.
Tip 7: Calculate coverage as a ratio. If the question gives the number of boundaries and the points tested, compute exercised points divided by required points. Read carefully whether coverage is defined per point or per boundary.
Tip 8: Recognise when domain testing is appropriate. Scenario questions may ask which technique fits best. Choose domain testing when validity depends on relationships between several numeric inputs. Choose plain boundary value analysis for independent single variables.
Tip 9: Use elimination. Discard options that confuse IN and OUT points with OFF points, that ignore closure, or that pick points violating other constraints. Usually only one option survives a careful check.
Tip 10: Know the limitations. K2 and K4 questions may ask what reliable domain coverage does not guarantee. Examples include detecting non-linear boundary defects, defects in output computation, or defects that do not change the classification of the chosen points.
Summary
Reliable domain coverage selects ON and OFF points for every boundary of every domain. Following the 1x1 strategy, this efficiently exposes closure, shift, tilt, missing boundary and extra boundary defects. To succeed in the exam:
- Identify the boundaries.
- Decide whether each is open or closed.
- Choose the minimal-step OFF points.
- Count the required points and calculate coverage carefully.
Unlock Premium Access
ISTQB Certified Tester Advanced Level Test Analyst
- Access to ALL Certifications: Study for any certification on our platform with one subscription
- 3161 Superior-grade ISTQB Certified Tester Advanced Level Test Analyst practice questions
- Unlimited practice tests across all certifications
- Detailed explanations for every question
- CTAL-TA: 5 full exams plus all other certification exams
- 30-Day Money-Back Guarantee: Full refund within 30 days if unsatisfied
- Risk-Free: 7-day free trial with all premium features!