ISTQB Advanced (CTAL-TA v4.0) Mock Exam #1 — Questions & Answers
Every question in this mock exam, with the correct answer marked and a written rationale behind each option below — for reading and review, not a timed run.
Chapter 1 · The Tasks of the Test Analyst in the Test Process — 8 questions
Which statement correctly describes the primary focus of the Test Analyst role, as distinct from the Technical Test Analyst?
The Test Analyst focuses on white-box structural coverage of the source code, because measuring statement and branch coverage is the most objective way to show that the business requirements have been exercised.
This describes the Technical Test Analyst's structural, white-box focus, not the Test Analyst's business-facing, black-box focus.
The Test Analyst owns scalability and performance characteristics, while the Technical Test Analyst covers functional suitability, since performance is what business stakeholders notice first.
This reverses the actual split: scalability is a Technical Test Analyst concern, and functional suitability belongs to the Test Analyst.
The Test Analyst's activities are limited to writing automated unit tests during the coding phase, because defects are cheapest to remove at the point where the code is written.
Unit-level automated testing sits with development/Technical Test Analyst work; the Test Analyst's scope is system, acceptance and system integration testing.
The Test Analyst focuses on business-facing testing — functional suitability and user-facing non-functional characteristics such as usability — applying black-box and experience-based techniques.
This matches the syllabus definition of the Test Analyst's scope exactly.
The syllabus defines the Test Analyst's scope as business-facing, functional and user-facing quality characteristics, using black-box and experience-based rather than structural techniques.
How does the Test Analyst's involvement in test activities typically differ between a sequential (e.g. V-model) and an iterative/incremental (e.g. Scrum) lifecycle?
In a sequential lifecycle, test analysis and design are largely concentrated in dedicated phases ahead of test execution; in an iterative lifecycle, the Test Analyst repeats analysis, design, implementation and execution within each short iteration alongside development.
This is the distinction the syllabus draws between the two lifecycle families.
In a sequential lifecycle the Test Analyst takes no part in test design, because detailed design is owned by the developers who wrote the component specifications, and the Test Analyst merely executes the scripts those developers produce once the completed build is handed over for system testing at the end of the development phase.
The Test Analyst performs test design in both lifecycle models; sequential models simply schedule it in a dedicated phase.
In an iterative lifecycle the Test Analyst performs each test activity once, at project completion, because the features delivered in earlier iterations are not considered stable enough to analyse or design tests against until the final increment has been integrated and the release candidate assembled.
This describes a sequential, one-pass approach, not the repeated per-iteration involvement typical of iterative lifecycles.
The difference is one of tooling rather than timing: sequential lifecycles rely on manual testing because their documentation is detailed enough to follow by hand, while iterative lifecycles rely on automation to keep pace with the delivery rhythm.
Tooling choice is independent of lifecycle model; both models can combine manual and automated testing.
Sequential lifecycles concentrate analysis and design in dedicated phases; iterative lifecycles repeat the full set of activities each iteration.
Which two of the following are typically part of the test analysis activity, as opposed to test design, test implementation or test execution? (Choose two.)
Evaluating the test basis for completeness and testability.
A core test analysis task.
Writing concrete input values for each test case.
This belongs to test design, not test analysis.
Prioritizing test conditions based on impact analysis.
Another core test analysis task.
Assembling individual test procedures into an executable test suite with a defined execution order.
This belongs to test implementation, not test analysis.
Test analysis covers evaluating the test basis and prioritizing test conditions; writing concrete test cases is design, and assembling suites is implementation.
A high-level test case differs from a low-level test case primarily in that it:
Is written to be executed by an automation tool, whereas a low-level test case is written for a human tester, since the level of abstraction in a test case is determined by how it will be run rather than by how much detail it records.
Automation status is independent of whether a test case is high- or low-level.
States the test objective and leaves the expected result out, because the expected result can be derived from the requirement at execution time by whoever happens to run the test.
High-level test cases still include expected results, just at an abstract level.
Describes test conditions and expected results in abstract, business-level terms without concrete data values, whereas a low-level test case specifies concrete inputs, preconditions and step-by-step actions.
This is exactly the distinction the syllabus draws between the two.
Is produced after execution to document what was actually covered, because coverage can be described at a business level once the detailed steps taken are known.
Test cases, high- or low-level, are designed before execution, not written retrospectively.
High-level test cases stay abstract; low-level test cases specify concrete data and steps.
Which two of the following are among the nine quality criteria for a well-written test case described in the CTAL-TA syllabus? (Choose two.)
Automatability by a tool.
Not one of the nine named criteria in the syllabus.
Understandability.
One of the nine syllabus criteria for test case quality.
Portability.
Portability is a product quality characteristic, not one of the nine test-case criteria.
Traceability.
Another of the nine syllabus criteria for test case quality.
Understandability and traceability are two of the nine named criteria; automatability and portability are not on that list.
The 'test oracle problem' refers to the situation where:
The test environment needed to run a test is unavailable for long periods, so the team has to predict what the result would have been instead of observing it, which makes the expected outcome a matter of judgement rather than measurement.
This describes an environment availability issue, not the oracle problem.
There is no reliable, feasible mechanism to determine the correct expected result for a given test input, so approaches such as pseudo-oracles, model-based testing or metamorphic testing are used instead.
This is the syllabus definition of the test oracle problem.
A defect report is rejected by development without a stated reason, leaving the tester unable to establish whether the behaviour that was observed is in fact a failure or the intended design of the feature under test.
This is a defect management issue, unrelated to the oracle problem.
Automated tests fail intermittently because the test data has aged since it was created, so the expected results recorded in the scripts no longer match what the application now produces for that data set, and the suite has to be re-baselined before it can be trusted.
This describes test data ageing, a different concept from the oracle problem.
The oracle problem is the lack of a reliable way to determine the correct expected result.
When production data cannot be copied into the test environment because of privacy regulation such as GDPR, which practice allows realistic test data to be used while protecting personal information?
Copy the production database unchanged and restrict environment access to the test team, since limiting who is able to read the data satisfies the regulation.
Access restriction alone does not satisfy data protection regulations that limit use of personal data.
Encrypt the production database in place and give testers the decryption key, since data that is held encrypted at rest is no longer treated as personal data.
Handing testers the decryption key gives them access to the personal data itself, so encrypting the database at rest does not address the privacy concern.
Publish an anonymized export on a public crowd-testing platform so that more testers can exercise realistic data.
Publishing data publicly, even anonymized, is not the syllabus's recommended test data practice.
Pseudonymizing or anonymizing production-derived data, or generating synthetic data that resembles production characteristics.
These are the syllabus's named test data privacy solutions.
Pseudonymization, anonymization and synthetic data generation are the syllabus's named solutions.
A team implementing keyword-driven testing for an insurance quoting system…
A team implementing keyword-driven testing for an insurance quoting system defines the keyword 'EnterApplicantAge' to input a value into a form field, and the keyword 'VerifyPremiumDisplayed' to check that the calculated premium matches an expected value. Both keywords are implemented once in a domain-specific keyword library and reused across dozens of test cases that combine them in different orders. Which statement correctly classifies these two keywords and the layer at which they are implemented?
'EnterApplicantAge' is an action keyword and 'VerifyPremiumDisplayed' is a verification keyword; both are implemented in the domain layer, which maps business-level keywords onto the lower-level test interface layer that interacts with the actual application.
This matches the syllabus's action/verification and domain-layer/interface-layer distinctions exactly.
'EnterApplicantAge' is a verification keyword and 'VerifyPremiumDisplayed' is an action keyword, because a keyword that supplies a value to the application is classified by the check it enables, while a keyword that reads a calculated figure is classified by the comparison it drives.
The two keywords are swapped, and there is no rule requiring verification before action.
Both keywords are composite keywords, because classification depends on how widely a keyword is reused across a suite: a keyword invoked by dozens of test cases is treated as composite, whereas an atomic keyword is one written for a single test case and retired with it.
Reuse frequency does not determine atomic versus composite classification; both keywords here are atomic, single-step keywords.
Both keywords are implemented directly in the test interface layer, because keywords naming business concepts such as applicant age and premium are resolved to application controls at that layer, while the domain layer gathers the results of those keywords for reporting.
The domain layer maps business keywords to the interface layer; it is not merely a reporting mechanism.
Action keywords perform steps, verification keywords check results; both live in the domain layer, which maps onto the lower-level test interface layer.
Chapter 2 · The Tasks of the Test Analyst in Risk-Based Testing — 3 questions
Risk-based testing, as described for the Test Analyst, consists of which two core activities? (Choose two.)
Risk analysis — identifying and assessing risks.
One of the two core risk-based testing activities.
Risk transfer to a third-party insurer.
Risk transfer is one possible risk response, not one of the two named risk-based testing activities.
Cost of quality analysis — calculating the total cost of prevention, appraisal and failure.
Cost of quality is a Chapter 5 defect prevention concept, not a risk-based testing activity.
Risk control — mitigating and monitoring identified risks.
The other core risk-based testing activity.
Risk analysis (identification and assessment) and risk control (mitigation and monitoring) are the two core activities, recorded in a risk register.
A Test Analyst supporting a mature e-commerce platform must decide how to select…
A Test Analyst supporting a mature e-commerce platform must decide how to select the subset of an 80,000-test regression suite to run before each biweekly release, given a fixed four-hour execution window. The team has: (a) a requirement traceability matrix linking tests to features, (b) two years of test execution history showing which tests have historically caught defects, (c) code coverage data from the last release, and (d) a change log showing which modules were modified this sprint. Based on the syllabus guidance that no single regression selection technique is universally 'best', which approach is most appropriate?
Select tests at random from the full suite each cycle, since randomisation removes selection bias and, over several releases, gives every test in the regression suite an equal chance of being executed within the four-hour window, independently of any assumption about where the code changed.
Pure random selection ignores the available impact and history data and is not the syllabus's recommended approach for regression selection under a time constraint.
Combine impact analysis of the changed modules with history-based selection of tests that previously found defects in those areas, and evaluate the effectiveness of the resulting selection after each cycle so the approach can be adjusted.
This reflects the syllabus's guidance to combine techniques and continuously evaluate selection effectiveness.
Run the entire 80,000-test suite each cycle and extend the execution window as needed, since any subset chosen by impact analysis leaves unexercised code paths that could regress.
The syllabus describes impact analysis as one of the most reliable regression selection techniques, and running the full suite is not feasible within the four-hour window.
Rely on the requirement traceability matrix alone, since a matrix linking every test to a feature already shows which features are covered and makes history-based input redundant.
The syllabus states no single technique alone is sufficient; combining techniques and evaluating their effectiveness is the recommended approach.
The syllabus recommends combining impact analysis with other selection techniques and evaluating effectiveness after each cycle, since no single technique is sufficient alone.
During a risk workshop for a new patient-monitoring device's companion mobile…
During a risk workshop for a new patient-monitoring device's companion mobile app, stakeholders identify the following candidate risks: (1) the app might display an incorrect heart-rate reading due to a Bluetooth sync bug, (2) the settings screen might be confusing for elderly users, (3) the app might fail to sync data when the phone's storage is nearly full, and (4) the release might slip because a third-party SDK update is delayed. Categorizing these against the quality-model-based risk categorization referenced in the syllabus, which pair correctly separates a product risk from a project risk?
Risk (2), the confusing settings screen, is a project risk, because usability findings are gathered from stakeholder opinion during a workshop rather than measured against a specification, and risks that cannot be measured objectively are grouped with schedule and resource risks.
Usability is a defined quality characteristic in the risk categorization model, making this a product risk, not a project risk.
Risk (3), the failure to sync when storage is nearly full, is a project risk, because the triggering condition arises from the end user's own device configuration, and conditions outside the delivered software are treated as environmental project risks.
This is still about the app's own reliability behaviour under a real operating condition, making it a product risk.
Risk (1), the incorrect heart-rate reading, is a product risk (a functional correctness/reliability issue with the product itself); risk (4), the SDK-related release slippage, is a project risk unrelated to the product's own quality characteristics.
This correctly separates a quality-characteristic issue (product risk) from a schedule/vendor dependency issue (project risk).
Risks (1) and (3) are both project risks, because each depends on a hardware or connectivity factor — Bluetooth and on-device storage — that the development team does not itself build or control.
Where a risk was raised has no bearing on whether it is a product or project risk; the classification depends on what the risk concerns.
Product risks concern the software's own quality characteristics (functional correctness, reliability, usability); project risks concern external factors like schedule and vendor dependencies.
Chapter 3 · Test Analysis and Test Design — 22 questions
In domain testing, which term describes a test point that lies exactly on the boundary between two domains, and which term describes a test point that lies inside a domain but away from any boundary?
'OFF' describes a point exactly on the boundary; 'ON' describes a point inside the domain away from boundaries.
ON and OFF are swapped here relative to their correct definitions.
'ON' and 'OFF' both describe points inside the domain, while 'IN' and 'OUT' both describe points outside it.
This groups the four terms incorrectly; each term has a distinct, specific meaning.
'IN' describes a point exactly on the boundary and 'OUT' describes a point just inside the domain.
IN and OUT are swapped here relative to their correct definitions.
'ON' describes a point exactly on the boundary; 'IN' describes a point inside the domain away from boundaries.
This is the correct definition of ON and IN in domain testing terminology.
ON is exactly on the boundary; IN is inside the domain away from boundaries; OFF and OUT are the corresponding outside-domain points.
In combinatorial testing, what distinguishes base choice coverage from pairwise coverage?
Base choice coverage varies one parameter at a time from a chosen 'base' combination, while pairwise coverage ensures every pair of values from any two parameters appears together in at least one test case.
This is the correct distinction between the two combinatorial coverage criteria.
Base choice coverage requires every possible combination of every parameter to be tested, while pairwise coverage reduces the effort by varying a single parameter at a time from a chosen starting combination of parameter values.
This reverses the actual relationship; neither criterion requires full exhaustive combination.
Pairwise coverage applies to Boolean parameters, since a pair can be formed from two values, while base choice coverage handles parameters of any data type.
Pairwise coverage applies to parameters with any number of discrete values, not only Booleans.
Both criteria cover every combination of every parameter, and differ in nothing more than the tool normally used to generate the resulting test suite.
Both criteria are specifically designed to reduce the number of test cases below the exhaustive combination count.
Base choice varies one parameter at a time from a base combination; pairwise ensures every value pair across any two parameters appears together.
In decision table testing, what does the 'don't care' symbol ('–') in a minimized decision table indicate?
The condition was not documented by the business, so the cell marks a gap in the requirements and the rule should be referred back for clarification before any test case is derived from it.
The don't-care symbol is a deliberate simplification technique, not a sign of a documentation defect.
The rule is infeasible and cannot occur in practice, so the dash marks it as unreachable and the tester may drop it from the set of rules for which test cases are derived, because no combination of inputs can satisfy it.
A don't-care condition does not make a rule infeasible; the rule is still feasible and testable, just independent of that condition.
The outcome of that rule does not depend on the value of that particular condition, so the condition can take any value without changing the result, allowing rules to be merged.
This is the correct meaning of the don't-care symbol in a minimized decision table.
The tester has not yet chosen a value for that condition, so the cell is a placeholder that must be filled in before the table is used.
The don't-care symbol is a deliberate, final notation, not a placeholder for an undecided value.
The don't-care symbol means the outcome does not depend on that condition's value, allowing rules to be merged.
Which two of the following are structural elements of a test charter, as used in experience-based / exploratory testing? (Choose two.)
Budget — the monetary cost allocated to the testing project as a whole for the financial year.
A test charter concerns a single exploratory session, not the project's overall budget.
Purpose — the information the session is intended to discover.
Part of the test charter's mission statement.
Setup — the resources and preconditions needed before the session starts.
One of the elements captured on a test charter / session sheet.
Deadline — the project's contractual ship date.
A test charter defines a session's mission, not the project's overall delivery date.
A test charter's mission format is 'Explore [target] With [resources] To discover [information]', with Purpose and Setup among its elements; it is not a project-level budget or deadline document.
A hotel booking form accepts a 'number of nights' value that must be a whole…
A hotel booking form accepts a 'number of nights' value that must be a whole number from 1 to 30 inclusive; any value outside this range is rejected. Applying domain testing with closed borders on both sides of the valid domain, which set of values gives an ON point, an OFF-below point, an OFF-above point and an IN point in a single, minimal test set?
1, 15, 30 and 45 — domain testing uses four evenly spaced values across the input range so that the interior of the domain is sampled just as thoroughly as its edges are, which keeps the test set balanced.
Domain testing points are chosen relative to the boundaries, not by even spacing across an arbitrary range.
0, 1, 30, 31, and 15 — where 1 and 30 are ON the boundaries (still valid), 0 and 31 are OFF (just outside, invalid), and 15 is IN the domain away from the boundaries.
This correctly assigns ON, OFF and IN points for a closed-border domain of 1–30.
0 and 31 — the two OFF points sit immediately outside the valid range, and a defect in a closed border shows itself as soon as those two values are correctly rejected by the booking form.
OFF points alone omit the ON and IN points needed to fully exercise the boundary and the domain interior.
1 and 30, treated as OFF points — with a closed border the extreme valid values are the ones lying off the domain, so no separate ON or IN point is required for this range of nights.
For a closed border, 1 and 30 are ON points (valid, on the boundary), not OFF points.
With closed borders, 1 and 30 are ON (the valid boundary values themselves); 0 and 31 are OFF (just outside); 15 is IN, away from the boundaries.
A currency conversion service takes two independent numeric inputs — 'amount'…
A currency conversion service takes two independent numeric inputs — 'amount' (domain: 0.01 to 100,000) and 'target currency count' (domain: 1 to 5) — each with its own boundaries. Comparing simplified domain coverage (Jeng) with reliable domain coverage (Forgács) for testing these two variables, which statement is correct?
Simplified and reliable domain coverage require the same number of test cases here, because both criteria are derived from the same four boundary values — 0.01, 100,000, 1 and 5 — and differ in nothing more than the order in which those boundary tests are documented and executed, which makes the choice between them a matter of reporting style.
Reliable domain coverage adds IN and OUT points beyond what simplified coverage requires, so the counts differ.
Reliable domain coverage needs fewer test cases than simplified domain coverage, because it treats each variable independently and therefore has no need for the IN and OUT points that simplified coverage adds to every variable's boundary set, which is what makes it the cheaper of the two to apply here. The same boundary values serve both criteria.
This reverses the relationship; reliable coverage requires more test cases because it adds IN and OUT points.
Simplified domain coverage requires every combination of both variables' boundary values to be tested, which makes it the more exhaustive of the two criteria, while reliable domain coverage samples a single boundary per variable and accepts the gaps that leaves between the two input ranges. Those gaps are accepted as the price of the smaller suite.
Simplified domain coverage is specifically designed to avoid full combinatorial exhaustion, not to require it.
Simplified domain coverage tests boundaries one variable at a time while holding others at a typical in-domain value, requiring fewer test cases; reliable domain coverage adds explicit IN and OUT points for every variable, requiring more test cases to also catch certain multi-variable defects that simplified coverage can miss.
This is the correct comparison between the two named domain coverage criteria.
Simplified coverage tests boundaries per-variable with fewer cases; reliable coverage adds IN and OUT points to catch additional multi-variable defects.
A shipping cost calculator has three parameters: 'package weight' (light…
A shipping cost calculator has three parameters: 'package weight' (light, medium, heavy), 'destination zone' (domestic, regional, international) and 'delivery speed' (standard, express). Using base choice coverage with 'light / domestic / standard' selected as the base combination, how many test cases are needed in total to achieve base choice coverage?
18 test cases — base choice coverage fixes a base combination and then requires every remaining combination of the three parameters to be exercised against it, which comes to 3 x 3 x 2 in total.
18 is the exhaustive combination count (3×3×2); base choice coverage is specifically designed to avoid this.
3 test cases — one per parameter, since the base combination already supplies a value for each of the other two parameters.
This ignores how many non-base values each parameter has, undercounting the required test cases.
6 test cases — one base test case, plus one additional test case for each non-base value of each parameter (2 for weight, 2 for destination zone, 1 for delivery speed).
1 (base) + 2 + 2 + 1 = 6, matching the base choice coverage formula.
8 test cases — the number of values available across the three parameters, counted as 3 + 3 + 2.
This sums the parameter value counts directly instead of applying the base-plus-non-base-values formula, which gives 6, not 8.
Base choice coverage needs one base test case plus one test case per non-base value of each parameter: 1 + 2 + 2 + 1 = 6.
The same shipping cost calculator (weight: 3 values, zone: 3 values, speed: 2…
The same shipping cost calculator (weight: 3 values, zone: 3 values, speed: 2 values) needs pairwise coverage of every value combination between any two parameters. Exhaustive testing of all combinations would require 3×3×2 = 18 test cases. Which statement correctly describes what pairwise coverage achieves instead?
Pairwise coverage needs the same 18 test cases as exhaustive testing for this parameter set, because every pair of values drawn from any two parameters appears together in a suite exactly when the full three-parameter combination table has been built out in its entirety, so pairwise saves documentation effort rather than execution effort for the same coverage.
Pairwise coverage is specifically designed to require fewer cases than the full 18-case exhaustive combination.
Pairwise coverage typically needs substantially fewer test cases than exhaustive testing (often around 9 for this parameter set) while still ensuring every pair of values from any two parameters is exercised together at least once, exploiting the fact that most real-world failures are triggered by interactions of only one or two parameters.
This correctly describes the reduction and rationale behind pairwise coverage.
Pairwise coverage considers the parameters two at a time, so the third parameter — delivery speed — is held at a fixed default value and contributes no test cases of its own, which is the trade-off accepted in return for the smaller suite, and the default chosen is normally the value most common in production. Changing that default would require the suite to be regenerated.
All three parameters are included; pairwise coverage ensures every pair of parameter values is covered, not that only two parameters are tested at all.
Pairwise coverage detects the full set of defects in the system, including those arising from three-way interactions, because covering every value pair necessarily exercises every higher-order combination as well.
Pairwise coverage targets one- and two-way interactions specifically; higher-order interaction defects may be missed.
Pairwise coverage exploits the fact that most real-world failures come from one- or two-parameter interactions, needing far fewer cases than exhaustive combination.
A team is testing a JSON parser that must accept syntactically valid input and…
A team is testing a JSON parser that must accept syntactically valid input and reject invalid input without crashing. Because there is no practical way to generate all conceivable malformed inputs by hand, and no simple oracle exists to predict the parser's exact internal state for arbitrary garbled input, which approach best fits the situation, and what must the team additionally provide for it to be effective?
Random or fuzz testing generating large volumes of both well-formed and malformed inputs automatically, combined with an automated oracle — for example, a rule that the parser must never crash or hang, only accept or cleanly reject input — since random testing needs some automatable check rather than manual verification of each result.
This correctly identifies random/fuzz testing and the need for an automatable oracle rule.
Manual boundary value analysis of every character position in the input string, because a parser's failures cluster at the first and last characters of each token, and a text-based format such as JSON offers a finite set of positions that can be enumerated by hand, so the effort stays bounded and the results are repeatable from one run to the next.
Random and fuzz testing are commonly applied to text-based formats like JSON; this is not a restriction the syllabus describes.
A single scripted test case reproducing one known malformed input, because once one invalid document has been shown to be rejected cleanly the parser's error path has been exercised, and the remaining malformed inputs follow that same path through the code, so repeating the case with other documents adds volume for the team to review rather than coverage.
One scripted case does not address the huge variety of malformed inputs that random/fuzz testing is meant to explore.
Random testing with no oracle at all, because the value of fuzzing lies in the volume of input it generates rather than in checking each result, and a genuine problem announces itself as a crash that the harness records by itself, without any expected result having to be written down in advance. The volume of generated documents is what gives the technique its reach.
Random testing still needs some form of automated oracle to determine whether a result is acceptable; it is not oracle-free.
Random/fuzz testing needs an automatable oracle, such as a rule about crashing versus clean rejection, since manual verification of huge volumes of generated input is impractical.
A contact management feature exposes these operations on a 'Contact' entity…
A contact management feature exposes these operations on a 'Contact' entity: Create, Read, Update (edit phone number), and Delete. A CRUD matrix built from the requirements shows that Update and Delete are both documented, but no test case exists that creates a contact and then attempts to delete it twice in a row (deleting an already-deleted contact). Which two aspects of CRUD testing does this scenario primarily illustrate? (Choose two.)
CRUD coverage computed purely from the number of entities in the data model, independent of which operations are tested.
CRUD coverage is based on which operations are exercised for an entity, not merely the count of entities in the model.
The test oracle problem, since there is no way to know whether a contact was actually deleted.
Whether a contact was deleted can be verified directly (e.g., a subsequent read fails), so this is not an oracle problem scenario.
Completeness — checking statically whether all four CRUD operations are documented for the entity.
The matrix shows the operations are all documented, which is the completeness check.
Consistency — checking dynamically, including negative test cases such as operating on data that no longer exists.
The missing double-delete test case is exactly the kind of dynamic, negative consistency check the syllabus describes.
Completeness checks statically that all operations are documented; consistency checks dynamically, including negative cases on stale or missing data.
A subscription's state machine has states New → Trial → Active → Suspended →…
A subscription's state machine has states New → Trial → Active → Suspended → Active → Cancelled, with transitions: New–[start trial]→Trial, Trial–[convert]→Active, Active–[missed payment]→Suspended, Suspended–[payment received]→Active, Active–[cancel]→Cancelled. Achieving 0-switch coverage (Chow) means testing every individual transition once; 1-switch coverage additionally requires testing every valid pair of consecutive transitions. Which statement correctly compares the two coverage levels for this state machine?
0-switch and 1-switch coverage require the same set of test paths for this state machine, because each of the five transitions is exercised once under both criteria and the subscription returns to the same state afterwards, so no additional sequences are produced and the two criteria collapse onto the same paths for this five-transition model.
1-switch coverage requires additional two-transition sequences beyond what 0-switch coverage requires.
0-switch coverage requires one test path exercising each of the five transitions individually at least once, while 1-switch coverage additionally requires paths that cover every valid two-transition sequence, such as Active→Suspended immediately followed by Suspended→Active, which is a stronger and more expensive criterion.
This correctly compares 0-switch and 1-switch (N-switch) coverage as defined by Chow.
1-switch coverage requires each transition to be exercised in isolation with no regard for what preceded or followed it, while 0-switch coverage requires complete end-to-end paths running from New through to Cancelled, which makes 0-switch the more demanding of the two criteria for a state machine of this size and shape, and for this set of five transitions.
This reverses the actual definitions: 0-switch tests transitions individually, and 1-switch adds transition-pair sequences.
0-switch coverage means visiting each of the five states at least once without necessarily exercising a transition, while 1-switch coverage means exercising the transitions while disregarding which states they happen to connect, so the two criteria divide the model between states on one side and transitions on the other, leaving nothing shared between them.
N-switch coverage is defined in terms of transitions and transition sequences, not a state-only versus transition-only distinction.
0-switch covers single transitions; 1-switch additionally covers every valid two-transition sequence, a stronger and more expensive criterion.
In the same subscription state machine, a path that starts at Active, moves to…
In the same subscription state machine, a path that starts at Active, moves to Suspended, and returns to Active (Active→Suspended→Active) forms a loop that begins and ends in the same state. Round-trip coverage (Ammann/Offutt) requires such loops to be exercised. Which statement correctly describes what round-trip coverage adds beyond simple transition coverage?
Round-trip coverage specifically requires every loop in the state graph — a path that returns to its starting state — to be tested at least once, catching defects where a sequence of transitions fails to correctly restore the object to its original state (for example, a suspended subscription that reactivates with the wrong billing date).
This is the correct definition and rationale for round-trip coverage.
Round-trip coverage applies to state machines containing a single state with no outgoing transitions, so it is irrelevant to this subscription model, whose Active, Suspended and Cancelled states are joined by five distinct transitions that each move the subscription on to a different state rather than back to the one it started from once the transition has fired.
Round-trip coverage applies to any state machine containing loops, and this subscription model has such a loop.
Round-trip coverage requires each documented transition to be executed in the reverse of its stated direction, so Cancelled would have to be driven back to Active and Trial back to New in order to close every path.
Round-trip coverage tests existing loops in the state graph, not reversed transitions that may not exist.
Round-trip coverage is another name for 0-switch coverage, since exercising each transition once from its source state already returns the model to its starting configuration by the end of the suite.
Round-trip coverage specifically targets loops returning to the starting state, which is a distinct criterion from 0-switch coverage of individual transitions.
Round-trip coverage requires every loop that returns to its starting state to be tested, catching defects in how the object is restored after the loop.
A 'submit expense report' use case has a main flow (employee fills form…
A 'submit expense report' use case has a main flow (employee fills form, submits, manager approves) and an exception flow triggered when the requested amount exceeds the employee's approval limit, causing the system to route the report to a senior approver instead. A test suite currently covers only the main flow. Which test case would specifically exercise the exception flow, and why is it necessary in scenario-based testing?
Submit a second report with a typical, in-limit amount, because running the main flow twice in succession exercises the routing decision a second time and therefore covers the alternative branch that the exception flow represents, the routing decision being the single branch point in this use case. Any further coverage of the branch is redundant.
Repeating the main flow does not exercise the alternate routing logic that defines the exception flow.
Submit a report with no amount entered at all, because an incomplete submission forces the system down its error-handling path, and every deviation from the main success scenario is handled by that same path, so one invalid submission stands in for the whole set of alternate flows in the use case. The approval limit is validated on the same screen.
An incomplete submission is a different kind of validation error and does not specifically exercise the approval-limit exception flow.
Submit a report with an amount above the employee's approval limit and verify the system routes it to a senior approver instead of the regular manager — exception flows represent deviations from the main success scenario and are just as necessary to test as the main flow, since they often contain the more error-prone logic.
This directly exercises the described exception flow and reflects its testing importance.
Review the use case documentation for exception flows and record them in the traceability matrix without executing a test case, because exception flows describe how staff are expected to respond rather than system behaviour.
Exception flows are executable parts of the use case and must be tested like the main flow, not merely documented.
Exception flows are deviations from the main success scenario and are just as necessary to test as the main flow, since they often contain more error-prone logic.
An online quiz feature allows a student to retake a failed quiz up to 3 times before the account is locked, with 0 retakes also possible (pass on first attempt). Applying simple loop coverage (0, 1, typical, maximum iterations), which set of test scenarios achieves this coverage?
Test the maximum of 3 retakes, because a loop that behaves correctly at its highest iteration count has already exercised every lower count on the way there, including the case where no retake is used, so the lower counts need no scenario of their own when the loop is tested.
Simple loop coverage requires 0, 1, typical and maximum values, not the maximum alone.
Test 0 and 3 retakes, because simple loop coverage is concerned with the two extremes of the iteration range and any value between them exercises the same code path through the retake counter and produces the same lock outcome.
Simple loop coverage also requires testing 1 iteration and a typical middle value, not only the two extremes.
Test 100 retakes, because simple loop coverage asks for a value well beyond the documented maximum in order to show how the loop behaves once its limit has been passed and the account lock is triggered.
Simple loop coverage is defined relative to the loop's own actual maximum, not an arbitrary large multiple of it.
Pass on the first attempt (0 retakes), fail once then pass (1 retake), fail twice then pass (2 retakes, a typical middle value), and fail three times reaching the retake limit (3 retakes, the maximum).
This covers 0, 1, a typical, and the maximum iteration count, matching simple loop coverage.
Simple loop coverage requires the 0, 1, a typical middle value, and the maximum iteration count to be tested.
A discount decision table has two binary conditions — 'is loyalty member' (Y/N)…
A discount decision table has two binary conditions — 'is loyalty member' (Y/N) and 'order total over $100' (Y/N) — giving four theoretically possible rules. The table as built lists only three rules: (member=Y, over100=Y)→15% discount; (member=Y, over100=N)→5% discount; (member=N, over100=Y)→5% discount. Applying the checksum procedure to verify completeness, what does it reveal, and what should be done?
The checksum procedure reveals that the combination (member=N, over100=N) is missing from the table — with two binary conditions there should be four rules (2²), and only three are present — so a fourth rule must be added specifying the outcome (likely 0% discount) for a non-member ordering $100 or less.
This correctly applies the checksum procedure and identifies the missing rule.
The checksum procedure confirms the table is complete, because the three listed rules already cover both values of each condition at least once, and a decision table counts as complete as soon as every condition value appears somewhere in it, however the values are combined across rules. The number of rules listed is not part of that check.
With two binary conditions the checksum requires four rules (2²), so three rules is incomplete.
The checksum procedure reveals that rule (member=Y, over100=N) and rule (member=N, over100=Y) produce the same 5% discount, so the two are redundant and one of them should be removed to keep the table minimal, with a single test case written for the surviving rule covering both. The remaining two rules are left untouched by the merge.
These two rules have different condition combinations and are not duplicates; the actual defect is a missing rule, not an overlap.
The checksum procedure applies to tables with three or more conditions, where the rule count grows beyond what can be inspected by eye, so a two-condition table such as this one is verified by inspection instead.
The checksum procedure applies to decision tables with any number of conditions, including two.
The checksum procedure checks that the number of rules matches 2 to the power of the number of binary conditions; here 2²=4 rules are expected but only 3 exist.
A shipping fee decision table has three conditions: 'order weight over 20kg'…
A shipping fee decision table has three conditions: 'order weight over 20kg' (Y/N), 'destination is international' (Y/N), and 'express delivery selected' (Y/N) — giving 8 possible rule combinations in a full table. The business confirms that whenever 'international' is Y, the fee is always the same flat rate regardless of weight or express selection, so those four rules can be merged into one rule using '–' for the other two conditions. How many distinct test cases does the minimized table now require, compared with the full table?
The minimized table still requires all 8 test cases, because merging rules with don't-care symbols changes how the table is presented: each of the four international orders still differs in weight and express selection, and each has to be executed to show that the flat rate holds for that particular combination of weight and delivery speed.
Minimizing with don't-care symbols does reduce the number of distinct test cases required, from 8 to 5 here.
The minimized table requires a single test case, because once the four international rules have been merged the remaining rules can be read off the same merged row, and one execution of the flat-rate path demonstrates the whole table at once, so the other rules need no execution of their own once the merge has been agreed with the business.
Only the four international=Y rules merge; the four international=N rules remain distinct and still need separate test cases.
The minimized table requires 5 test cases instead of 8 — the four rules with 'international = Y' collapse into a single rule using don't-care symbols for the other two conditions, while the four rules with 'international = N' remain distinct because weight and express selection still affect the outcome there.
4 rules collapse to 1, plus the 4 unchanged international=N rules, gives 5 total test cases.
The minimized table requires 4 test cases — one per condition plus one for the merged rule — because after minimization the test count follows the number of conditions in the table rather than the number of surviving rules, and the merged rule is counted once on top of those three. The four original international rules are no longer counted.
The required test case count is based on the number of distinct rules after minimization, not the number of conditions.
The four rules sharing international=Y collapse into one via don't-care symbols, while the four rules with international=N remain distinct, giving 5 total.
A route-planning feature powered by a machine-learning model recommends the…
A route-planning feature powered by a machine-learning model recommends the fastest driving route between two addresses, but there is no independent way to compute the single objectively 'correct' route to compare against, since real traffic conditions vary. To test this feature using metamorphic testing, which pair of source and follow-up test cases, with which metamorphic relation, would be most appropriate?
Source test case: request a route between address A and address B. Follow-up test case: request a route between the same two addresses a second time with identical inputs. Metamorphic relation: the two responses must be returned as character-for-character identical strings, since a feature with no reliable oracle can still be checked by confirming that repeated requests produce a stable, reproducible result for that pair of addresses on every call. A route that changes between calls is reported as a defect.
This checks determinism of output formatting rather than a genuine property of the routing logic, missing the point of a metamorphic relation.
Source and follow-up test cases are not needed for an AI-based feature of this kind, because metamorphic testing is applied where a reliable oracle already exists and serves to cross-check that oracle's output against a second execution of the same function.
Metamorphic testing is specifically recommended for systems with a test oracle problem, such as AI-based features, not for systems that already have a reliable oracle.
Source test case: request a route with a valid address. Follow-up test case: request a route with a deliberately malformed address. Metamorphic relation: the service must return the same route for both inputs, since a robust router normalises whatever it is given before the routing logic runs.
Metamorphic relations describe a meaningful expected relationship between source and follow-up outputs, not that all metamorphic test pairs must produce identical outputs.
Source test case: request a route between address A and address B. Follow-up test case: request a route between the same A and B but with the start and end swapped (B to A) over the same road network with no directional restrictions. Metamorphic relation: the total distance of the two routes should be equal, even though the exact turn-by-turn path may differ — a large unexplained discrepancy indicates a defect, without needing to know the single 'correct' route.
This defines a valid metamorphic relation that sidesteps the need for a single known-correct output.
A metamorphic relation exploits a known property (route distance symmetry) rather than requiring a single known-correct output, which suits AI-based features with an oracle problem.
A tester uses a pre-release checklist item that says 'Verify the checkout page…
A tester uses a pre-release checklist item that says 'Verify the checkout page displays the correct currency symbol for the user's selected region' — requiring the tester to actively perform an action and check its result — versus another item that says 'Confirm that the security review sign-off document has been completed', which only requires checking that something already done elsewhere was recorded. Which statement correctly classifies these two checklist item types?
Both items are 'do-confirm' items, because a checklist records what a tester should confirm has happened rather than prescribing new work, and the currency symbol item confirms that the checkout page rendered as the designer intended rather than asking the tester to drive the page.
Read-do items do require the tester to perform a new action, as the currency symbol item does here.
The currency symbol item is a 'read-do' checklist item, requiring the tester to perform an action and observe the result directly; the sign-off item is a 'do-confirm' item, requiring only confirmation that a task performed elsewhere was completed.
This correctly matches each item to its checklist category.
The currency symbol item is 'do-confirm' because it confirms the page loaded with the right locale settings, and the sign-off item is 'read-do' because the tester must read the document before deciding whether to accept it as valid evidence before the checklist item can be closed.
The classifications here are swapped relative to their correct definitions.
Neither item belongs to the 'read-do' or 'do-confirm' categories, because those two labels describe how scripted test cases are sequenced during execution rather than how checklist items are phrased.
Read-do and do-confirm are specifically checklist item categories described in the syllabus, not scripted test case categories.
Read-do items require performing an action and observing the result; do-confirm items only require confirming a prior task was completed.
A retailer is deciding whether to use crowd testing to validate a new mobile…
A retailer is deciding whether to use crowd testing to validate a new mobile checkout flow across a wide variety of real devices, operating system versions and network conditions shortly before a major sale event, on a tight one-week deadline. Weighing the syllabus's stated advantages and disadvantages of crowd testing, which combination best reflects an appropriate use of it here?
Crowd testing is well suited here because it can quickly cover a wide diversity of real devices and network conditions that an in-house lab cannot easily replicate; however, the team should still plan for variable tester skill levels, potential confidentiality exposure of the unreleased feature, and less predictable turnaround and reporting consistency than an in-house team.
This reflects both the advantages and the disadvantages the syllabus attributes to crowd testing.
Crowd testing should be ruled out for a commercial release of this kind, because an unreleased checkout flow would be exposed to testers outside the organisation, and that confidentiality risk outweighs the coverage benefit in the week before a major sale event that the retailer cannot reschedule. An in-house device lab, however small, keeps the feature inside the organisation until launch day.
The syllabus lists genuine advantages of crowd testing, such as broad device and condition coverage.
Crowd testing can stand in for in-house testing on this release, because the crowd supplies the device, operating system and network diversity the in-house lab lacks, and the volume of reports it returns covers the checkout flow more thoroughly than a small internal team could in the single week that remains. The in-house team can then be redirected to the campaign pages that go live alongside the sale.
The syllabus notes disadvantages such as variable skill levels and confidentiality risk, so in-house testing and oversight are still needed.
Crowd testing suits back-end API work rather than this checkout flow, because external testers are given programmatic access to endpoints rather than production-like accounts, and a user-facing mobile interface needs testers who already know the retailer's business rules and checkout promotions in detail. External testers recruited through a platform are rarely briefed on those rules before they start a session.
Crowd testing is commonly used precisely for user-facing, device-diverse scenarios like this mobile checkout flow.
Crowd testing offers real-device diversity but comes with tradeoffs in skill consistency, confidentiality and predictability that must be planned for.
A team is choosing which black-box technique class to prioritise for a new…
A team is choosing which black-box technique class to prioritise for a new insurance-claims workflow. They expect the most likely defects to come from users navigating the claim status through several distinct stages (submitted, under review, approved, paid) in unexpected orders, rather than from bad input values or business-rule interactions. Which technique class is the primary match for this expected defect type, and which specific technique from that class fits best?
Data-based techniques are the primary match, since the claim status is itself an input value the user selects; boundary value analysis fits best, as it exercises the first and last values in the list of permitted statuses as well as a value just outside that list.
Data-based techniques target input value domains, not sequences of stage transitions, so this is not the primary match here.
Behavior-based techniques are the primary match, since they focus on sequences of user or system behavior; state transition testing specifically fits, since it models the claim's distinct stages and validates both valid and invalid transitions between them.
This correctly maps the described defect type (unexpected stage ordering) to the behavior-based class and state transition testing.
Rule-based techniques are the primary match, since each claim stage is governed by a business rule; decision table testing fits best, as it combines the status conditions into rules.
Decision tables model condition combinations, not ordered sequences of stages, so this does not fit the described defect type as well as state transition testing.
Experience-based techniques are the primary match, since unexpected navigation orders surface while exploring the application; error guessing fits this defect type best.
Formal behavior-based techniques such as state transition testing are well suited to this scenario; experience-based testing is not the only applicable option.
Behavior-based techniques target sequences of behavior; state transition testing specifically models distinct stages and their valid/invalid transitions.
An account balance state machine has states 'Normal' and 'Overdrawn', with a…
An account balance state machine has states 'Normal' and 'Overdrawn', with a transition to 'Overdrawn' triggered whenever a withdrawal causes the balance to drop below $0, and a transition back to 'Normal' triggered when a deposit brings the balance back to $0 or above. The team wants to combine state transition testing with boundary value analysis on the balance amount, as recommended in the syllabus for techniques that can be nested within one another. Which set of test cases best combines both techniques for this scenario?
Test the state transitions with arbitrary balance values such as $500 and -$500, because the state machine's behaviour is determined by which side of zero the balance ends up on rather than by how close it comes to the threshold, so values well inside each state give a clearer and more readable test than values clustered around the boundary, and the transition fires on the sign of the balance rather than on its exact magnitude. Boundary values would add test cases without adding information about the two states themselves.
The syllabus explicitly describes nesting boundary value analysis within state transition testing as a valuable technique combination; arbitrary far-from-boundary values would miss the exact trigger point defects.
Test the boundary values of the balance — $0 and the amount immediately below it — as a separate boundary value analysis, and test the Normal and Overdrawn transitions on their own with convenient round figures, because each technique produces its own coverage items and merging them would leave neither criterion fully satisfied, while keeping the two sets apart shows which coverage item each case belongs to. Reporting the two criteria separately also makes it easier to show which of them has been satisfied at the end of the cycle.
The two techniques are specifically meant to be combined, using boundary values as the trigger points for the transitions, not tested in isolation from the transitions.
From a starting balance just above zero (e.g., $0.01), perform a withdrawal that leaves the balance at exactly $0 (stays Normal — boundary ON), a withdrawal that leaves it at -$0.01 (transitions to Overdrawn — boundary OFF), and from Overdrawn, a deposit that brings the balance to exactly $0 (transitions back to Normal — boundary ON) versus one that leaves it at -$0.01 (remains Overdrawn — boundary OFF); this exercises both the state transitions and the exact boundary values that trigger them.
This nests boundary value analysis inside the state transition tests, targeting the precise values at which each transition fires.
Test every balance value from -$1,000,000 to $1,000,000 in $1 increments, because nesting one technique inside another means the combined criterion inherits the coverage obligations of both, and an exhaustive sweep of the numeric range is what satisfies boundary coverage at every transition in the model.
Combining techniques means selecting specific, meaningful boundary and transition points, not exhaustively testing every value in a large range.
Combining BVA within state transition testing means choosing the exact balance values that both trigger and sit at the boundary of each transition.
A loan approval process is modeled as an activity diagram: an application…
A loan approval process is modeled as an activity diagram: an application enters, an automated credit check runs, and then a decision point routes the application to 'auto-approve', 'auto-reject', or 'manual underwriting review' depending on the credit score and requested amount. The team wants to apply 'process cycle testing', which the syllabus describes as combining scenario-based testing of the process flow with decision coverage of the decision point's outcomes. Which test set best reflects this combined approach?
Test the decision point's three outcomes in isolation using stubbed credit-score and amount inputs, without executing a complete path through the surrounding activity diagram, because process cycle testing takes its coverage items from the decision points in the process, the connecting activities add no coverage obligations of their own, and a stubbed harness reaches the same coverage figure in far less execution time. The surrounding activities are covered incidentally whenever the decision point is reached in production.
Process cycle testing specifically combines decision coverage with full scenario-based path coverage, not decision coverage in isolation.
Test one complete path through the activity diagram ending in 'auto-approve', because scenario-based testing of the most common business path is what process cycle testing calls for, and the auto-reject and manual-review outcomes are variations of the same path that this test case already traverses end to end, the credit check behaving identically on each of the three branches. Running the other two branches would repeat the same sequence of activities with a different outcome recorded at the end of it.
Process cycle testing requires decision coverage of all outcomes at the decision point, not just one path ending in a single outcome.
Test the activity diagram with state transition N-switch coverage in place of decision coverage, because the activities in the diagram behave as states and the arrows between them as transitions, so process cycle testing is satisfied once every pair of consecutive activities has been exercised, without enumerating the three outcomes separately in the test design. N-switch coverage of consecutive activity pairs subsumes the outcomes of the decision point, because each outcome is reached by one of those pairs.
Process cycle testing is defined as scenario-based testing combined with decision coverage, not as N-switch coverage applied to activity diagrams.
Test cases that each follow a complete, realistic path through the activity diagram from application entry to a final outcome (satisfying scenario-based/path coverage), designed collectively so that every one of the three possible outcomes at the credit-score-and-amount decision point (auto-approve, auto-reject, manual review) is exercised by at least one path (satisfying decision coverage), rather than testing the decision point's logic in isolation from the surrounding process flow.
This is the syllabus's description of process cycle testing as the combination of scenario-based path coverage and decision coverage.
Process cycle testing combines full-path scenario coverage with decision coverage of the process's decision points, rather than treating either technique in isolation.
Chapter 4 · Testing Quality Characteristics — 4 questions
ISO/IEC 25010 splits functional suitability into three sub-characteristics. Which option correctly distinguishes them?
Functional completeness (whether all specified functions are present), functional correctness (whether functions produce the correct results with the needed precision), and functional appropriateness (whether the functions facilitate the intended tasks and objectives).
These are the three ISO/IEC 25010 sub-characteristics of functional suitability.
Functional completeness, functional performance and functional security — describing, respectively, whether all specified functions are present, how quickly they respond under load, and how well they protect the data they handle from unauthorised access, all grouped under the functional suitability heading.
Performance and security are separate top-level quality characteristics, not sub-characteristics of functional suitability.
Functional correctness, functional usability and functional compatibility — describing whether results are right, whether users can operate the functions, and whether they work alongside other systems.
Usability and compatibility are their own top-level characteristics, not sub-characteristics of functional suitability.
Functional completeness and functional correctness — the standard names just these two, because whether a function suits the user's task is assessed under usability instead of functional suitability.
ISO/IEC 25010 defines a third sub-characteristic, functional appropriateness, in addition to completeness and correctness.
Functional completeness, correctness and appropriateness are the three sub-characteristics of functional suitability.
Which two techniques are described for evaluating usability, combining ISO/IEC 25010 interaction capability with ISO/IEC 25019 beneficialness? (Choose two.)
Automated code-coverage analysis of the user interface layer's event handlers.
Code coverage measures structural test coverage, not usability quality-in-use.
Usability test sessions using personas and operational profiles.
A named technique for evaluating usability.
Penetration testing of the login endpoints.
Penetration testing addresses security, not usability.
Standardized questionnaires such as SUMI and WAMMI.
Another named technique for evaluating usability.
Usability test sessions with personas/operational profiles, and standardized questionnaires like SUMI and WAMMI, are the syllabus's named usability evaluation techniques.
Within the flexibility (portability) quality characteristic, which sub-characteristics fall under the Test Analyst's responsibility, as opposed to the Technical Test Analyst's?
Scalability and replaceability are the Test Analyst's responsibilities, since both are judged from the user's point of view, while adaptability and installability are left to the Technical Test Analyst.
This is the reverse of the actual division described in the syllabus.
All four flexibility sub-characteristics — adaptability, installability, scalability and replaceability — sit with the Test Analyst, because flexibility is a business-facing characteristic that users experience directly.
Scalability and replaceability are explicitly assigned elsewhere (CT-PT and CTAL-TTA respectively), not to the Test Analyst.
No flexibility sub-characteristic is covered at CTAL-TA level; they are addressed in the CT-PT syllabus, where environment-related behaviour is covered in depth.
Adaptability and installability are explicitly covered as Test Analyst responsibilities in the CTAL-TA syllabus.
Adaptability and installability are Test Analyst responsibilities, while scalability is covered under performance testing (CT-PT) and replaceability falls to the Technical Test Analyst (CTAL-TTA).
This matches the syllabus's stated division of flexibility sub-characteristics across roles and certifications.
Adaptability and installability are Test Analyst concerns; scalability belongs to performance testing (CT-PT) and replaceability to the Technical Test Analyst.
Within the compatibility quality characteristic, which sub-characteristic is the Test Analyst's responsibility, and which is the Technical Test Analyst's?
Coexistence is the Test Analyst's responsibility and interoperability the Technical Test Analyst's, because sharing an environment with other software is something the user notices directly, while exchanging data between systems is a technical integration concern checked against interface specifications.
This reverses the actual division described in the syllabus.
Interoperability — the system's ability to exchange and use data with other systems — is the Test Analyst's responsibility; coexistence — the ability to perform required functions while sharing a common environment with other software — falls to the Technical Test Analyst.
This matches the syllabus's stated division of compatibility sub-characteristics.
Interoperability and coexistence both fall to the Technical Test Analyst, because each is verified against interface specifications and deployment configurations rather than against the business requirements the Test Analyst works from when designing tests for the business-facing quality characteristics.
Interoperability is explicitly a Test Analyst responsibility, not solely a Technical Test Analyst one.
Compatibility is not addressed at the Advanced Level for either role; it is covered at Foundation Level, where the exchange of data between systems is introduced alongside the other quality characteristics of the product quality model. The Advanced Level syllabi do not revisit it for either role.
Compatibility, including interoperability and coexistence, is explicitly addressed at the Advanced Level in this chapter.
Interoperability is a Test Analyst concern; coexistence is a Technical Test Analyst concern.
Chapter 5 · Software Defect Prevention — 8 questions
Which set of terms correctly matches the metrics used to evaluate defect prevention effectiveness: the percentage of defects removed before release, the percentage of defects found in the same phase they were introduced, and the total cost associated with achieving and failing to achieve quality?
Defect detection percentage (DDP), root cause analysis (RCA), and cost of quality, in that order of increasing scope.
DDP measures a different comparison (defects found vs. total known) and RCA is a technique, not a percentage metric; neither matches the first two definitions given.
Phase containment effectiveness (PCE), defect removal efficiency (DRE), and test gap analysis, matched in the order given.
The first two terms are swapped relative to their actual definitions, and test gap analysis does not measure total cost of quality.
Defect removal efficiency (DRE), phase containment effectiveness (PCE), and cost of quality, respectively.
These are the correctly matched definitions in the order given.
Cost of quality, defect removal efficiency (DRE), and phase containment effectiveness (PCE), matched to the definitions as listed.
All three terms are shifted out of their correct order relative to the given definitions.
Defect removal efficiency, phase containment effectiveness, and cost of quality are the three named metrics/concepts, in that order.
Which two of the following are among the five review techniques described for defect prevention? (Choose two.)
Automated static analysis — a tool scans the source code with no human reviewer involved.
This is a static analysis technique, not one of the five human review techniques described.
Perspective-based reading — reviewers adopt distinct stakeholder viewpoints.
One of the five named review techniques.
Pair programming — two developers write code together in real time.
Pair programming is a development practice, not one of the five named review techniques.
Role-based reading — reviewers are assigned specific roles to guide their focus.
Another of the five named review techniques.
Perspective-based and role-based reading are two of the five named review techniques; automated static analysis and pair programming are not among them.
After a release, defect cluster analysis shows that 40% of all post-release…
After a release, defect cluster analysis shows that 40% of all post-release defects trace back to a single 'payment reconciliation' module, even though that module makes up only 8% of the codebase. During the corresponding test phase, only 55% of the total defects eventually found in that module were actually detected before release (the defect detection percentage for that module). What do these two figures together suggest about the test effort for this release?
The figures show that the payment reconciliation module is among the more reliable parts of the system, because a module accounting for 40% of reported defects is clearly being exercised heavily, and a 55% detection percentage confirms that more than half of its defects were caught before the product shipped. A module of that size would be expected to carry a share of the defect count.
The module holds a disproportionate share of defects relative to its small size, which indicates a defect cluster rather than reliability.
The payment reconciliation module is a defect cluster — a disproportionate concentration of defects — and its low defect detection percentage (55%) indicates that testing for that specific module was comparatively weak, so future test effort and review focus should be increased there rather than spread evenly across the whole codebase.
This correctly interprets both metrics together to point to a specific, targeted improvement.
The 55% defect detection percentage shows the module was adequately tested, because the figure is measured against all defects known at the time of release and a majority finding rate is the normal expectation for a module of this complexity.
The syllabus does not treat 50% as a completeness threshold; 55% still means nearly half the module's defects escaped to production.
The two figures describe unrelated things — one counts where defects landed, the other how many were caught — so they should be reported separately and neither should drive where the next release's test effort goes.
Together, the two figures point directly to where test effort was insufficient, so they are not unrelated for this purpose.
A defect cluster combined with a low defect detection percentage indicates the module received disproportionately weak test effort relative to its defect concentration.
A recurring defect keeps causing incorrect tax calculations on invoices. Root…
A recurring defect keeps causing incorrect tax calculations on invoices. Root cause analysis using the 'five whys' technique proceeds: the tax is wrong → because the tax rate table wasn't updated → because the update process is manual → because there is no automated trigger from the regulator's rate-change notifications → because no one owns monitoring for those notifications. Which statement best describes how this result should be used, consistent with root cause analysis guidance?
Root cause analysis should stop at the first 'why', so the cause to act on is that the tax rate table was not updated; the later answers describe organisational matters that fall outside a defect investigation and belong to a separate process review rather than to this corrective action. The table itself can be corrected in a single change.
Root cause analysis is meant to dig past the immediate symptom through successive 'whys' to reach an underlying cause.
The five whys produced five distinct causes, so all five should be logged as equally likely candidates and investigated in parallel, since the technique is designed to broaden the search for causes rather than narrow it to a single one that might turn out to be the wrong one to act on. Each of the five is then owned by a different part of the organisation.
The five whys technique is a causal chain, not five independent candidate causes; the final why represents the identified root cause.
The five whys technique was developed for manufacturing and hardware defects, so this software tax-calculation issue should be analysed with a Pareto chart of defect categories instead.
Five whys is a general-purpose root cause analysis technique applicable to software defects, not limited to hardware.
The final 'why' identifies a process gap — the lack of ownership for monitoring regulatory rate changes — as the true root cause, so the corrective action should address that ownership and monitoring gap rather than simply patching the tax rate table for this one incident, which would only fix the symptom.
This reflects the purpose of root cause analysis: addressing the underlying cause rather than the surface symptom.
The last 'why' identifies the true root cause (an ownership/process gap); corrective action should target that, not just the symptom.
A defect is logged as: 'the confirmation email is sent, but it lists the wrong shipping address because the address-formatting function was never called after a recent refactor.' Using Orthogonal Defect Classification (ODC), which defect type best classifies the root cause of this defect, and why?
A 'missing function/algorithm' or equivalent 'missing' defect type — the correct address-formatting logic exists but is simply not invoked, so the defect is best classified by what is absent from the flow rather than by an incorrect value or interface mismatch.
This matches ODC's classification approach based on what kind of code change fixes the defect — here, adding a missing call.
A 'checking' defect type, because the confirmation email is produced by a validation step that inspects the order before it is sent, and ODC assigns a defect to the type of code that was executing when the incorrect output was produced, sent to the customer and accepted by the system.
ODC classification depends on the actual root cause of the defect, not on which feature happens to be mentioned in the description.
A 'timing/serialization' defect type, because the formatting function and the email dispatch run in sequence, and the fault shows itself as one step completing before the other has supplied its result to the message template that the email is built from, before the address block is rendered.
There is no such blanket rule in ODC; the root cause here is a missing function call, not a timing issue.
ODC classifies defects by the activity that found them and the tester who reported them, so this defect would be recorded under the test phase in which the incorrect email was observed, together with the name of the tester who raised it and the release in which it was found.
ODC is specifically a root-cause- and fix-type-oriented classification scheme, not a scheme based on who reported the defect.
ODC classifies defects by what kind of fix is needed; a function that exists but is never invoked is best classified as a 'missing' type defect.
A team builds a formal state model of a subscription lifecycle purely to help…
A team builds a formal state model of a subscription lifecycle purely to help design test cases via model-based testing, and during that modeling exercise, two business analysts realize the specification itself is ambiguous about what happens when a payment fails during a trial period — a gap neither had noticed before. Which two benefits does the syllabus describe for modeling activities like this? (Choose two.)
They can uncover defects in the specification itself.
Exactly what happened here — the ambiguity found during modeling.
They make further test design unnecessary, because the model is itself the executable test suite.
A model supports test design; test design work is still needed after the model exists.
The resulting model can feed automated model-based test case generation.
A named benefit of building formal models for testing purposes.
They prevent residual defects in the delivered code.
Modeling activities help find and prevent certain defects but cannot ensure the absence of all residual defects in the code.
Modeling activities can uncover specification defects and feed model-based test generation; they do not eliminate further test design or guarantee defect-free code.
Over the last three releases, defect detection percentage (DDP) for the…
Over the last three releases, defect detection percentage (DDP) for the 'reporting' module has been declining (78% → 65% → 52%), while root cause analysis of escaped defects in that module repeatedly points to the same underlying cause: requirements for reporting features are written by a different team than the one that reviews and tests them, and that team is not included in requirement reviews. Test gap analysis confirms the test basis for 'reporting' has not been updated to reflect two recent requirement changes. Which corrective action set best addresses the actual root cause rather than only the symptom?
Add testers to execute more test cases against the current test basis for the reporting module, since a declining defect detection percentage reflects how much execution effort the module receives, and restoring the earlier percentage is a matter of covering the existing test basis more thoroughly within each release window rather than changing how requirements are reviewed, the same basis having served the module across all three releases being compared. Execution effort, not the review process, is what the metric is measuring here.
Adding execution effort against an outdated, incomplete test basis does not address the identified root cause — the process gap and stale requirements coverage.
Stop reporting DDP for the reporting module, since a figure falling across three consecutive releases is being distorted by the volume of escaped defects counted after release, and a metric that moves in one direction irrespective of the team's effort gives no usable signal about how well the module is tested.
A consistent declining trend is meaningful data pointing to a real process problem, not evidence that the metric itself is unreliable.
Include the reporting requirements team in requirement reviews going forward (addressing the structural root cause identified by RCA), update the outdated test basis to reflect the two missed requirement changes (closing the specific gap found by test gap analysis), and track DDP for the module over subsequent releases to confirm the trend reverses — treating the declining DDP as a symptom that data-driven, targeted process change should fix, not just adding more test execution time to the current basis.
This combines the RCA finding, the test gap analysis finding and the DDP trend into a coherent, targeted corrective action.
Move the reporting module to the team that writes its requirements, since putting authoring, review and testing under one manager removes the hand-off that the root cause analysis identified, without needing to revisit the review process or the test basis for the module.
The root cause analysis specifically points to a requirement review process gap and an outdated test basis, not to which team owns the module.
Combining RCA, DDP trend and test gap analysis points to a structural process gap (exclusion from requirement reviews plus a stale test basis), which should be corrected directly rather than papering over with more execution effort.
A project's defect arrival pattern over the test phase is plotted and compared…
A project's defect arrival pattern over the test phase is plotted and compared against the classic Rayleigh model, which predicts defects should be found at a rising rate, peak partway through the phase, and then taper off as the codebase stabilizes. In this release, however, the defect arrival rate is still rising sharply in the final week before the planned release date, with no sign of a peak or taper. Combined with a test gap analysis showing that 30% of medium-risk requirements still have no executed test case, what is the most defensible interpretation and recommendation for the release decision?
A defect arrival rate still rising in the final week is the expected shape of the Rayleigh curve at this point, since the curve peaks close to the release date; taken with the 30% of medium-risk requirements still untested, it shows the team is finding defects at its most productive rate and the release can proceed as planned, with the outstanding requirements scheduled for a follow-up cycle after the release. A rising rate this late is read as evidence that the test effort is finally reaching the areas that matter most.
The Rayleigh model expects the arrival rate to peak and then taper by this point; a still-rising rate late in the phase is a deviation suggesting instability, not readiness.
A still-rising defect arrival rate this late in the test phase deviates from the expected Rayleigh pattern and, together with the untested 30% of medium-risk requirements, suggests testing is far from complete rather than that the product has stabilized; recommend delaying the release (or reducing scope) until the arrival rate shows a genuine peak and taper and the coverage gap on medium-risk requirements is closed, rather than treating a rising defect count as an unrelated coincidence.
This correctly combines both analyses into a single, defensible release-readiness judgment.
The untested 30% of medium-risk requirements can be set aside for this release decision, since test gap analysis reports on coverage of the test basis while defect arrival analysis reports on product stability, the coverage gap is a planning input for the next release rather than evidence about the build now under consideration, and the decision should rest on the stability signal the arrival curve provides. Coverage of the test basis is reviewed separately, in the retrospective that follows the release.
Both analyses point toward incomplete testing and should be combined, not treated as unrelated, when assessing release readiness.
The Rayleigh model describes defect discovery in large sequential projects and has little bearing on a modern release decision, so the arrival trend should be set aside and the decision taken against the planned calendar date, with the coverage gap on medium-risk requirements recorded as a known limitation in the release notes.
The syllabus presents defect arrival pattern analysis, including the Rayleigh model, as a practical input to release decisions, not something to disregard in favor of the calendar alone.
A still-rising defect arrival rate combined with an untested requirement gap both point away from readiness; the two analyses should be combined, not treated in isolation, when making the release decision.