Domain Testing: IN and OUT Points
In the ISTQB Advanced Level Test Analyst syllabus, domain testing is a data-based technique that extends equivalence partitioning and boundary value analysis to domains defined by one or more variables. A domain is a region of the input space bounded by conditions, often linear inequalities such as x + y <= 100. Defects are often found at these borders, for example a wrong operator (< instead of <=) or a shifted or tilted boundary. Domain testing uses four kinds of test points: ON, OFF, IN and OUT. ON points lie exactly on a boundary. OFF points lie as close as possible to the boundary on the opposite side from the ON point. For a closed boundary (<=) the OFF point is outside the domain, and for an open boundary (<) it is inside. IN points are values that lie inside the domain and satisfy all of its boundary conditions, but are not on or next to any boundary. They represent typical, valid members of the domain. OUT points are values that lie outside the domain and violate at least one boundary condition, again away from the boundaries. They represent typical invalid inputs. IN and OUT points have several uses. First, when a test focuses on one boundary of a multidimensional domain, the variables not involved in that boundary are given IN-point values. This keeps those variables valid and ensures any failure is caused by the boundary under test. Second, IN and OUT points confirm that the domain is processed correctly as a whole: an IN point should be accepted and handled by the domain's logic, and an OUT point should be rejected or routed to another domain. Third, they help reveal major faults, such as a missing domain, extra processing, or the wrong domain being selected. IN and OUT points add little to precise boundary checking, which is the job of ON and OFF points. However, they complement them by giving cheap, representative coverage of the interior and exterior of each domain. Test Analysts select them to improve defect detection while keeping the number of test cases manageable.
Domain Testing: IN and OUT Points (ISTQB CTAL-TA Data-Based Test Techniques)
Domain testing is one of the data-based test techniques in the ISTQB Advanced Level Test Analyst (CTAL-TA) syllabus. It extends equivalence partitioning and boundary value analysis to inputs whose valid region (the domain) is defined by one or more conditions. These conditions may involve several variables at once, for example x + y <= 10.
Domain testing selects four kinds of test points: ON, OFF, IN and OUT. This guide focuses on IN and OUT points. However, you cannot understand them without ON and OFF points, so all four are covered.
Why It Is Important
1. Real software has multi-variable conditions. Rules such as eligibility, pricing and risk scoring often combine variables, for example income - debt >= 2000 AND age >= 18. Classic one-variable boundary value analysis does not handle these well. Domain testing does.
2. It targets typical domain defects. These include:
- shifted boundaries (wrong constant);
- tilted boundaries (wrong coefficient);
- wrong closure (< instead of <=);
- missing boundaries;
- extra boundaries.
4. IN and OUT points complete the picture. ON and OFF points check that boundaries are in the right place. IN and OUT points check that:
- the system processes clearly valid and clearly invalid data correctly;
- variables that are not under test are held at safe, typical values.
What It Is: The Four Point Types
A domain is bounded by boundaries. Each boundary is described by a condition, which may be closed or open:
- Closed boundary (<= or >=): the points on the boundary belong to the domain.
- Open boundary (< or >): the points on the boundary do NOT belong to the domain.
- ON point: a value lying exactly on the boundary. For a closed boundary it is inside the domain. For an open boundary it is outside.
- OFF point: a value as close as possible to the ON point, but on the opposite side of the boundary in terms of domain membership.
- Closed boundary: the OFF point is outside the domain.
- Open boundary: the OFF point is inside the domain.
- IN point: a value that satisfies ALL the domain's conditions and does NOT lie on any boundary. It is a typical, clearly valid value inside the domain.
- OUT point: a value that violates at least one of the domain's conditions and is neither an ON point nor an OFF point. It is a clearly invalid value, outside the domain and away from the boundary being tested.
How It Works: Step by Step
Step 1 - Identify the domain and its conditions.
Example: 18 <= age <= 65, with age an integer.
Step 2 - Identify each boundary and its closure.
- Boundary 1: age >= 18 (closed).
- Boundary 2: age <= 65 (closed).
- Boundary 1: ON = 18 (inside); OFF = 17 (outside, closest value).
- Boundary 2: ON = 65 (inside); OFF = 66 (outside).
- Any value strictly inside the domain and not on a boundary, for example 40.
- Values such as 19 or 64 are also IN points: they are inside and not on a boundary.
- In practice, testers usually choose a typical mid-range value.
- Any value outside the domain that is not an OFF point, for example 5 or 100.
- Note that 17 and 66 are outside the domain, but they are the OFF points, so they are not classed as OUT points.
When you test the ON/OFF points of one boundary, set every variable not involved in that boundary to an IN (typical) value. This ensures that any failure is caused by the boundary under test and not by another condition. This is one of the most important practical uses of IN points.
Two-Dimensional Example
Domain (integers): x >= 0, y >= 0, x + y <= 10.
- Boundary x + y <= 10 (closed):
- ON point: (4, 6), since 4 + 6 = 10, which is inside.
- OFF point: (5, 6), since 5 + 6 = 11, which is just outside.
- Boundary x >= 0 (closed):
- ON point: (0, 5).
- OFF point: (-1, 5).
- Here y = 5 is an IN value for y, chosen so that it does not touch any other boundary.
- IN point for the domain: (2, 3). All conditions are true and no boundary is touched.
- OUT point: (20, 20) or (-5, -5). At least one condition is false and the point is far from the boundaries.
Domain: 0 < price < 100, with price to 2 decimal places.
- ON points: 0.00 and 100.00. Both are outside the domain, because the boundaries are open.
- OFF points: 0.01 and 99.99. Both are inside the domain.
- IN point: 50.00.
- OUT points: -20.00 or 250.00.
What Each Point Detects
- ON/OFF points detect shifted boundaries, closure defects (< vs <=) and tilted boundaries.
- IN points detect:
- incorrect processing of normal valid data;
- extra boundaries wrongly splitting the domain;
- gross computation errors.
- OUT points detect:
- missing boundaries or conditions, where the system accepts clearly invalid data;
- incorrect error handling;
- misclassification of data into the wrong domain.
Domain coverage is measured as:
(number of ON, OFF, IN and OUT points tested) / (number of points identified) x 100%
A simplified approach selects, for each boundary, one ON point and one OFF point. It then adds an IN point for the domain, and OUT points where relevant.
Exam Tips: Answering Questions on Domain Testing: IN and OUT Points
1. Read the closure first. Is each condition <, <=, > or >=? This decides whether the ON point is inside or outside the domain, and therefore where the OFF point lies. Many wrong options exploit this.
2. Use the definitions literally.
- IN = satisfies all conditions AND is not on any boundary.
- OUT = violates at least one condition AND is not an OFF point (and not on the boundary).
3. Watch the data type and precision.
- For integers, the OFF point is plus or minus 1 from the ON point.
- For two decimal places, it is plus or minus 0.01.
4. Check multi-variable points against every condition. A point that is valid for one condition may violate another. Such a point is OUT, not IN. Substitute the values into each condition and evaluate.
5. Remember the role of IN values for other variables. If a question asks which test is correct for a given boundary, choose the option where the other variables hold typical IN values that do not sit on another boundary.
6. Classify systematically. For each candidate value, ask in order:
- Is it on the boundary? If yes, it is an ON point.
- Is it the closest value across the boundary? If yes, it is an OFF point.
- Is it inside the domain? If yes, it is an IN point.
- Otherwise, it is an OUT point.
8. Eliminate distractors. Wrong options often:
- swap the OFF and OUT labels;
- place the OFF point on the wrong side of an open boundary;
- call a boundary value an IN point.
10. Draw it. For two-variable domains, sketch the boundaries quickly on scratch paper and mark the points. This makes it much easier to see whether a point is IN or OUT.
Summary
Domain testing selects ON and OFF points to verify where each boundary lies. It uses IN points (clearly valid, not on any boundary) and OUT points (clearly invalid, not OFF points) to verify behaviour across the domain as a whole. In the exam, success depends on three things: reading closure and precision carefully, testing every condition for multi-variable points, and applying the definitions strictly.
CTAL-TA - Domain Testing: IN and OUT Points Example Questions
Test your knowledge of Domain Testing: IN and OUT Points
Question 1
A shipping service applies a reduced fee when the parcel weight w, in whole grams, satisfies w > 500 AND w <= 2000. The test analyst aims for reliable domain coverage. The ON and OFF points of both borders are already chosen. The analyst now adds the remaining points and uses one IN point for both borders. Which addition correctly completes reliable domain coverage?
Question 2
A test analyst is extending a simplified domain coverage set to reliable domain coverage for a grocery app rule. A bulk discount applies when the number of items n in the basket, counted in whole items, satisfies n > 20 AND n <= 75. The ON and OFF points already in the set are 21, 20, 75 and 76. The analyst wants to share one common IN point between both borders and add one OUT point per border. Which additional points complete reliable domain coverage for this partition?
Question 3
A ride-booking service grants a fleet discount when 10 <= x < 50 AND y > 2. In this rule, x is the trip distance in whole kilometres and y is the passenger count in whole numbers. The test analyst targets reliable domain coverage, uses one shared IN point, and keeps one OUT point per inequality border. The executed test points (x, y) are: (10, 5); (9, 5); (49, 5); (50, 5); (30, 3); (30, 2); (25, 6); (4, 5); (30, 0). Which test point must still be added to complete reliable domain coverage?