ISTQB Specialist (CT-PT) 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 · Basic Concepts — 6 questions
According to ISO 25010, performance efficiency is broken down into three sub-characteristics. Which of the following is NOT one of them?
Time Behavior, including throughput rates
Incorrect - Time Behavior is one of the three sub-characteristics. It covers response times, processing times and throughput rates measured against requirements.
Reliability
Correct. Reliability is its own top-level quality characteristic in ISO 25010, sitting alongside performance efficiency rather than inside it.
Capacity
Incorrect — Capacity is one of the three. It is the maximum limit of a parameter, such as the number of concurrent users or transactions, that the system can sustain.
Resource Utilization
Incorrect — Resource Utilization is one of the three. It covers the amounts and types of resources (CPU, memory, disk, network) consumed while performing a function.
ISO 25010 defines performance efficiency through Time Behavior, Resource Utilization and Capacity. Reliability is a separate top-level quality characteristic in the same standard, not a sub-characteristic of performance efficiency.
A team runs a test in which the system is held at a constant, entirely normal…
A team runs a test in which the system is held at a constant, entirely normal production-level load for 72 hours without interruption. The goal is not to find the breaking point but to see whether response times drift upwards and whether the Java heap keeps growing across the run. Which type of performance testing is this?
Endurance testing
Correct. A long run at a representative load, watching for drift rather than for a breaking point, is exactly the endurance profile — it targets memory leaks, connection leaks and thread-pool exhaustion.
Scalability testing, to see if the service can grow to meet demand
Incorrect. Scalability testing determines whether the system can grow to meet future load, usually by adding resources or increasing load in stages. Nothing is being scaled here; the load is held constant and only elapsed time varies.
Stress testing
Incorrect. Stress testing deliberately pushes load beyond the anticipated maximum to find the point at which the system fails and to observe how gracefully it does so. Here the load stays at normal levels.
Spike test
Incorrect. Spike testing applies sudden, short bursts of load and then removes them, checking recovery. The load in this scenario is deliberately constant.
Endurance (soak) testing keeps the system under a sustained, representative load for a long period specifically to expose problems that only appear over time: memory leaks, unreleased database connections, exhausted thread pools, disk fragmentation and unbounded table growth.
A news portal expects a sudden burst of traffic the moment an election result is…
A news portal expects a sudden burst of traffic the moment an election result is announced: an ordinary background level of visitors, then roughly ten times that number arriving within a minute, then a return to the ordinary level a few minutes later. The main concern is whether the site recovers cleanly once the burst has passed. Which type of performance testing best matches this concern?
Soak test
Incorrect. A soak, or endurance, test holds a representative load for a long period to expose gradual degradation; a few minutes of burst is the opposite profile.
Stress testing, as the load is driven past the expected peak
Incorrect. Stress testing raises load steadily beyond the expected maximum to locate the failure point; the portal's concern is a short burst and the recovery that follows it.
Capacity testing, since what matters is how many readers the portal can serve inside its response limits
Incorrect. Capacity testing establishes how many users or transactions can be handled while the performance objectives are still met - a sustained question, not a burst-and-recover one.
Spike testing
Correct. A sudden, short, very large increase in load followed by a return to normal, with recovery as the key question, is the defining shape of a spike test.
Spike testing applies a sudden, large and short-lived increase in load, then removes it. Its distinguishing purpose is to observe both the system's behaviour during the burst and — crucially — its recovery afterwards.
A performance tester needs to generate load against a legacy thick-client…
A performance tester needs to generate load against a legacy thick-client trading application. There is no documented API, the vendor will not release interface specifications, and driving hundreds of GUI clients is not affordable in the available hardware budget. Network traces between the client and the server are, however, available. Which load generation approach is the most appropriate?
Load generation via captured communication protocols
Correct. Capturing the client-server conversation and replaying it at scale avoids both the missing API and the cost of driving many GUI instances.
Load generation through the user interface, driving one full client instance per simulated user so that real rendering time is included in every measurement
Incorrect. Including rendering time is a genuine advantage of UI-driven load, but each simulated user then needs a full client instance, which is exactly what the stated hardware budget rules out for hundreds of users.
Load generation via crowds, recruiting external volunteers to click through the thick client at an agreed time
Incorrect. Crowd-based generation uses large numbers of real users in distributed locations; it is poorly repeatable and controllable, and it is impractical for an internal trading system handling real positions.
Load generation via APIs
Incorrect. The API route presupposes a documented interface, and the vendor has refused to release the interface specifications.
The syllabus lists four ways of generating load: through the user interface, through crowds, through APIs, and through captured communication protocols. When neither the UI nor an API is a workable driver but client-server traffic can be captured, replaying the captured protocol is the remaining practical option.
Which of the following activities count as STATIC testing types within performance testing?
Reviewing the database schema and entity-relationship diagrams for structures that will not scale
Correct. Schema and ER-diagram review is explicitly a static performance testing activity — problems such as missing indexes or over-normalised joins are found without running anything.
Executing a system integration test with 200 virtual users to measure end-to-end response time against the agreed limits
Incorrect. This executes the system under load and is therefore dynamic performance testing, whatever the number of users or the acceptance limits applied to the result.
Reviewing SQL queries and stored procedures for inefficient constructs
Correct. Inspecting queries and stored procedures is a static activity and often the cheapest way to remove a performance defect.
Running unit tests with a code profiler attached
Incorrect. Profiling requires the code to execute, which makes it a dynamic testing type even though it operates at unit level.
Reviewing the network and system architecture for bottlenecks such as a single shared gateway
Correct. Architecture review is listed as a static performance testing type; structural bottlenecks can be identified from the design alone.
Static performance testing examines artefacts without executing the system: reviews of requirements, of database schemas and entity-relationship diagrams, of queries and stored procedures, of network and system architecture, and of performance-critical sections of code. Anything that runs the system under load is dynamic.
A web application responds acceptably when it is restarted, but over the course…
A web application responds acceptably when it is restarted, but over the course of each working week average response times climb steadily until the operations team reboots the servers on Friday evening. Load volumes are stable throughout the week. Which common performance efficiency failure mode does this describe, and what causes are typically behind it?
Degradation over time — typically memory leaks, disk fragmentation or unchecked growth of database tables
Correct. The signature is that load is unchanged while performance worsens with elapsed time, which points at resources that are consumed but never released or reclaimed.
Slow response under all levels of load - an inefficient algorithm or an unindexed query sitting on the critical path, so a single user already sees it
Incorrect. This failure mode shows slow responses even immediately after a restart with one user active. The application is described as responding acceptably when freshly restarted, which rules the mode out.
Inadequate handling of errors at the limits of capacity - connection pools, request queues and session caches sized too small for the peak, so the system fails ungracefully once they fill
Incorrect. This mode concerns ungraceful behaviour once the capacity limit is reached, such as raw error pages or lost transactions. The reported load is stable and well inside capacity, and the drift is in elapsed time.
Slow response under moderate-to-heavy load — resource saturation as concurrency rises
Incorrect. Saturation failures track the load level: performance is fine when few users are active and degrades when many are. Here the load is stable and time is the variable.
The syllabus distinguishes: slow response under all load levels, slow response under moderate-to-heavy load (resource saturation), degradation over time, and inadequate handling of errors at the limits. Steady worsening at constant load is degradation over time, typically caused by memory leaks, disk fragmentation or uncontrolled database growth.
Chapter 2 · Performance Measurement Fundamentals — 4 questions
Which approach does the CT-PT syllabus name for deciding which performance metrics should be selected and collected?
No named approach is used; metrics are taken from the load tool's default report set, as those figures are familiar
Incorrect. Accepting whatever a tool reports by default is exactly the undirected collection that GQM is intended to prevent, and familiarity is not a criterion for relevance.
Test Maturity Model integration (TMMi), applied at the process level
Incorrect. TMMi assesses the maturity of a test organisation's processes; it says nothing about which metrics an individual performance test should collect.
Goal-Question-Metric (GQM)
Correct. GQM works top-down from a stated goal, through the questions that would show the goal is achieved, to the metrics that answer them — which keeps collection purposeful.
FMEA risk analysis
Incorrect. FMEA identifies failure modes and their effects as part of risk analysis; it is not the approach the syllabus names for selecting performance metrics.
The Goal-Question-Metric (GQM) approach is the method named for metric selection: state the goal, derive the questions that must be answered to know whether the goal is met, and only then choose the metrics that answer those questions.
The syllabus groups typical performance metrics into three categories: the technical environment, the business environment and the operational environment. Which of the following metrics belong to the BUSINESS environment category?
Idle and busy thread counts in the app server
Incorrect. Thread pool occupancy is resource utilisation and belongs to the technical environment category.
Number of orders processed per hour
Correct. A count of completed business transactions per unit of time is a business environment metric — it speaks directly to commercial throughput rather than to machine behaviour.
Time to restore from a backup
Incorrect. Restore-from-backup timing is an operational environment metric, along with start-up, shutdown, resumption and alerting.
Compliance with the agreed service level agreement
Correct. SLA compliance is listed as a business environment metric; it is a contractual, business-facing measure.
Network latency between the application tier and the database tier under peak load
Incorrect. Network latency is a technical environment metric describing infrastructure behaviour, and measuring it at peak load does not move it into the business category.
Business environment metrics express performance in terms the business cares about: business process efficiency, the number of business transactions such as orders processed per hour, compliance with service level agreements, the concurrency of usage and the timing of usage across the day or year.
A tester enables verbose per-method tracing on the application servers so that…
A tester enables verbose per-method tracing on the application servers so that every call is timed and written to disk during a load test. Response times measured with tracing on are substantially worse than those measured with tracing off. What phenomenon does this illustrate, and what is the correct conclusion?
A valid finding — the traced figures are the real response times and the untraced run was simply optimistic, so the published results should be revised upwards before the report is issued
Incorrect. The traced figures carry overhead that will not be present in production, so publishing them as the real values would overstate the problem and send the team tuning code that is not actually slow.
Incorrect correlation of dynamic values in the load script, so requests are replayed against sessions that have already expired
Incorrect. A correlation defect shows up as errors and failed transactions in specific steps, not as a uniform slowdown that appears and disappears with the tracing setting.
Resource saturation — the servers have reached their capacity limit, so additional hardware should be ordered before any further test runs are scheduled
Incorrect. The load was identical in both runs and only the instrumentation changed, so the evidence points at the measurement apparatus rather than at capacity. Buying hardware here would address a symptom created by the tester.
The probe effect — the instrumentation itself is consuming resources and distorting the measurement, so a lighter collection method must be used
Correct. The syllabus warns explicitly that data collection must not influence the system under test; verbose tracing is a classic source of this distortion.
The 'probe effect' is the distortion introduced when the act of measuring changes the behaviour of the system under test. Instrumentation must be light enough that it does not materially affect the results being gathered.
A performance test finishes with all virtual users reported as passed and…
A performance test finishes with all virtual users reported as passed and acceptable average response times, yet the operations team suspects that database contention occurred during the run. Which of the three key sources of performance metrics is best suited to confirming or ruling out deadlocks, SQL exceptions and internal time-outs?
Performance monitoring tools reporting CPU and memory utilisation on the database host
Incorrect. Monitoring tools report resource consumption, and contention frequently shows as low CPU with poor response, so utilisation figures alone will not confirm a deadlock.
Log analysis tools applied to the application and database logs
Correct. Deadlocks, SQL exceptions and time-outs are written into application and database logs; log analysis is the source the syllabus associates with exactly these conditions.
The load tool's own transaction report
Incorrect. The load tool sees only what the client sees. A deadlock that was retried successfully leaves no trace in its transaction report beyond a slightly longer time.
The aggregated 90th percentile figure recalculated from the raw client-side response time samples already collected by the load tool
Incorrect. Recomputing a percentile from the same client-side samples adds no new information about what happened inside the database; it only re-expresses measurements the tool already produced.
The syllabus names three key sources: performance testing tools, performance monitoring tools and log analysis tools. Log analysis is the source specifically associated with deadlocks, SQL exceptions and time-outs, because these are recorded internally by the application and database and are often invisible to the load tool.
Chapter 3 · Performance Testing in the Software Lifecycle — 7 questions
A team is identifying performance risk categories for a native banking app that runs on customer handsets. Which set of risks is characteristic of the MOBILE APPLICATIONS architecture category as described in the syllabus?
Auto-scaling behaviour and configuration errors that surface only when new instances are provisioned under rising load, which is what makes handset-side measurement unpredictable
Incorrect. Self-scaling and the configuration mistakes that go with it define the dynamic, cloud-based category. A handset does not provision instances, so this cannot be the source of variation on the device side.
Safety criticality and hard real-time deadlines, where a late result counts as a wrong result
Incorrect. Deadlines whose violation is a failure rather than a slowdown characterise the embedded real-time category, which the syllabus keeps separate from mobile applications.
Predictable batch windows combined with newly exposed access through APIs and web services that bypass the established interface
Incorrect. That combination describes the mainframe category: a historically predictable system whose risk now comes from the modern access paths placed in front of it, not from a mobile device.
Constrained device resources, dependence on location and connection quality, battery drain, memory pressure, device temperature and sensor behaviour
Correct. These are the risks the syllabus specifically attaches to mobile applications; they arise from the device rather than from the server infrastructure.
The mobile category is distinguished by constraints that simply do not exist on server-side architectures: limited device resources, dependency on location and connection quality, battery consumption, memory pressure, device temperature and the behaviour of on-board sensors.
A retailer has moved its checkout service to a cloud platform configured to add…
A retailer has moved its checkout service to a cloud platform configured to add instances automatically when average CPU utilisation exceeds a threshold. Why does the syllabus treat this dynamic, cloud-based architecture as its own category of performance risk rather than as an equivalent of a fixed multi-tier deployment?
Because the resource available changes during the run, so the scaling rules themselves become a test object and misconfiguration is a distinct risk
Correct. The syllabus flags self-scaling and configuration errors as the defining risks here — the platform's reaction is part of what has to be tested.
Because cloud platforms expose no resource utilisation metrics to the tester, so the only measurements available are the client-side response times recorded by the load generation tool
Incorrect. Cloud platforms publish extensive utilisation and instance-level telemetry. The real difficulty is interpreting metrics gathered from a set of instances that changes during the run, which is a different problem from having no metrics.
Because cloud infrastructure is provisioned with generous headroom, so performance testing can be reduced to a short smoke run
Incorrect. Headroom does not remove inefficient queries, serialised components or badly set scaling thresholds, and the syllabus treats the cloud category as adding risk rather than removing the need to test.
Because load has to be generated from a single point of presence against a cloud-hosted system, which removes network variation from the results
Incorrect. Cloud hosting makes generating load from several points of presence easier rather than harder, and in any case the number of load injection points is not what defines this risk category.
In a self-scaling environment the amount of resource available changes during the test, and misconfigured scaling rules are themselves a performance risk. Results therefore depend on the scaling configuration, and a test can pass simply because the platform grew rather than because the application is efficient.
An insurer is buying a commercial off-the-shelf (COTS) claims package and will configure it for its own use. Regarding performance testing, what does the syllabus say about how responsibility is distributed between the acquirer and the supplier?
The acquiring organisation carries the responsibility, because only it knows its own operational profiles, data volumes and target infrastructure
Correct. The syllabus places performance testing of a COTS product on the acquirer; the supplier cannot have tested against this customer's specific usage and environment.
The supplier carries the responsibility in full, and the acquirer should rely on the supplier's published benchmark figures, which are produced under controlled and repeatable laboratory conditions on reference hardware
Incorrect. Controlled laboratory conditions are precisely the problem: the benchmark reflects the vendor's hardware, configuration and data, so it says nothing about the insurer's own profiles and volumes. The syllabus puts the responsibility on the acquirer.
Responsibility is shared equally by contract, and both parties must run the identical test suite before go-live
Incorrect. The syllabus describes no mandatory equal split, and running the same suite in two different environments would produce two sets of figures without answering the acquirer's question about its own deployment.
Neither party needs to test, because a COTS product is certified against standard workloads before it is released to the market and the configuration only selects features
Incorrect. No market certification covers the acquirer's configuration, data volumes and integrations, and configuration does far more than select features - it is exactly where COTS performance problems normally appear.
For COTS products the syllabus is direct: the responsibility for performance testing lies with the acquiring organisation. The supplier's product is a black box tuned for no particular customer, and only the acquirer knows its own operational profiles, data volumes and infrastructure.
During test monitoring and control of a performance test campaign, results show that the agreed response time target is being missed. Which of the following is an example of a CONTROL MEASURE in the sense used by the syllabus?
Recording the deviation in the test report and closing the test campaign
Incorrect. Recording a result is monitoring, not control. Control is the action taken in response to what monitoring reveals.
Recalculating the 90th percentile from the same run to obtain a more favourable figure for the report
Incorrect. Re-cutting the same data differently changes the presentation, not the system, and is not a control measure in the sense the syllabus uses.
Adding memory to the application servers and re-running the affected scenario
Correct. Changing the hardware and re-testing is one of the control measures the syllabus names, alongside adjusting load generation and altering network or software configuration.
Interviewing stakeholders to establish the operational profiles for the next release
Incorrect. Gathering operational profile data is a test analysis activity performed before design, not a corrective control measure.
Control measures are the corrective actions available when monitoring shows a deviation: adjusting the amount of load being generated, replacing or adding hardware, and making changes to the network or to the software itself.
In an iterative, Agile lifecycle, where does the syllabus suggest performance testing activities are typically positioned, and what makes this different from a sequential lifecycle?
Performance testing is not applicable in Agile lifecycles because increments are too small to produce a meaningful load profile or a stable baseline
Incorrect. The load profile comes from the operational profiles rather than from the size of the increment, and a baseline is established once and then reused; small increments in fact make it easier to isolate which change caused a regression.
Performance testing is started in an early or dedicated iteration and repeated continuously, supported by continuous integration and by production monitoring, with performance expressed as non-functional user stories
Correct. The iterative approach spreads performance work across iterations and relies on CI and production feedback, rather than concentrating verification at the end.
Performance testing is deferred to a hardening iteration after the final functional iteration, because meaningful measurement requires a feature-complete system and figures taken from partial increments would have to be discarded later
Incorrect. One of the five principles of performance testing is that it can be conducted on a complete or a partial system, so measurements from early increments are usable and waiting for feature-completeness only concentrates the risk at the end.
Performance testing is handled entirely by the operations team through production monitoring, with no test activity inside the iterations themselves, since live traffic is the only representative load
Incorrect. Production monitoring is a valuable additional source of data in an Agile context, but the syllabus presents it as a supplement to testing during the iterations rather than a replacement, and a defect found only in production is the most expensive one to fix.
In iterative development, performance testing is either started in the very first iteration or given a dedicated iteration, and it continues throughout with continuous integration support and production monitoring. Performance requirements are frequently written as non-functional user stories. In a sequential lifecycle, performance criteria are more commonly treated as acceptance criteria verified phase by phase towards the end.
A payment gateway has a stated requirement that no more than 1% of authorisation…
A payment gateway has a stated requirement that no more than 1% of authorisation requests may exceed 3 seconds. Risk analysis before testing estimated that, without mitigation, roughly 12% of requests would breach the limit at the forecast peak. After two rounds of tuning (a connection pool increase and the removal of a synchronous fraud-check call), the final test run at forecast peak load shows 2.4% of authorisation requests exceeding 3 seconds, with a further 0.3% failing outright. The release board asks the test manager to state the residual performance risk. Which statement expresses the residual risk in the way the syllabus recommends, and draws the correct conclusion for the release decision?
The residual risk is zero, because the 0.3% of failing requests should be excluded from the calculation as functional errors rather than performance results, leaving only the slow-but-successful requests to be re-tested in a later cycle
Incorrect. A customer whose request failed was not served within the threshold either, so excluding those requests understates the impact. The syllabus also warns that failed transactions distort results, because they usually complete faster and inflate apparent throughput.
The residual risk is low, because tuning reduced the breach rate from 12% to 2.4%, an improvement of roughly eighty per cent against the pre-test estimate
Incorrect. A relative improvement measured against an estimate says nothing about whether the agreed requirement is met, and 2.4% still sits well above the 1% ceiling. The statement also leaves the failed transactions out of the count entirely.
The residual risk cannot be quantified, because performance testing has no clear test oracle; the board should be given a qualitative rating of 'medium' instead, justified by the two successful rounds of tuning
Incorrect. Performance testing often does lack a clear oracle, but here an explicit numeric requirement exists and that requirement is the oracle. The syllabus asks for residual risk to be expressed quantitatively wherever the figures allow it.
About 2.7% of authorisation requests at forecast peak will either exceed 3 seconds or fail, against an agreed ceiling of 1%; the residual risk is therefore still roughly three times the accepted level and the requirement is not met
Correct. It quantifies the residual risk as a percentage of affected requests, correctly folds the 0.3% outright failures into the count of unserved customers, and compares the result against the agreed 1% ceiling.
The syllabus recommends expressing residual performance risk quantitatively — for example as the percentage of customers likely to experience a response time above the agreed threshold — rather than as a qualitative label. Failed transactions must be counted alongside slow ones, because a customer whose request errored has certainly not been served within the limit. Here 2.4% + 0.3% = 2.7% against a 1% target, so the requirement is still missed by roughly a factor of three and that is the fact the board needs.
A logistics company runs a three-tier order system: a web tier behind a load…
A logistics company runs a three-tier order system: a web tier behind a load balancer, an application tier, and a single mainframe that is now also exposed to partners through REST services. A performance test at 1.5 times current peak load produces these observations. Web tier: CPU 38%, all instances healthy. Application tier: CPU 44%, thread pool never above 55% occupancy. Mainframe: batch window unchanged and CPU well within its normal envelope, but the REST gateway in front of it shows a queue depth growing steadily throughout the run and a 95th percentile response time of 11 seconds against 0.9 seconds for the same operation submitted through the traditional batch interface. Which analysis of the architectural performance risk is best supported by this evidence?
The application tier is the bottleneck, because its CPU is the highest of the three tiers and a thread pool running at 55% occupancy is close enough to exhaustion to explain the queue building up at the gateway
Incorrect. 44% CPU and 55% pool occupancy are comfortable figures and neither is trending towards a limit, so neither can explain a queue that grows steadily. Picking the largest number among several low numbers is not analysis.
The load balancer in the web tier is distributing traffic unevenly, which is why the 95th percentile is so much worse than the average; the queue at the REST gateway is a secondary effect of a handful of overloaded web instances absorbing most of the partner traffic during the run
Incorrect. Uneven distribution would appear as differing utilisation between web instances, but every instance is reported healthy at 38%. It also would not explain why the batch path for the same operation returns in 0.9 seconds.
The mainframe has reached its capacity limit and must be upgraded before the load increase can be supported, since a growing queue at its front door is the usual symptom of a saturated back-end processor that the unchanged batch window merely hides
Incorrect. A saturated processor would show in its own utilisation figures, and the mainframe's CPU is within its normal envelope while the batch window is unchanged. Upgrading it would spend a large budget without touching the actual constraint.
The risk sits in the newly exposed mainframe access path: the REST gateway is serialising or throttling requests, so work queues in front of a mainframe that is itself far from saturated — this is the mainframe-opened-through-services risk category, not a capacity shortfall
Correct. A growing queue in front of a resource whose own utilisation is low is the signature of a constrained interface, and the enormous gap between the REST and batch figures for the same operation localises it to the gateway.
The mainframe risk category in the syllabus is characterised precisely this way: mainframes are historically predictable and well-behaved, but they are increasingly opened up through APIs and web services, and it is the new access path rather than the mainframe itself that introduces the risk. Low CPU everywhere combined with a growing queue at one specific interface points at a constrained serialising component in front of the resource, not at the resource being saturated.
Chapter 4 · Performance Testing Tasks — 20 questions
The Performance Test Plan contains a section on acceptance criteria. The syllabus associates each of the three main performance metric families with the stakeholder group that primarily cares about it. Which pairing is correct?
All three metrics matter equally to all stakeholder groups, so acceptance criteria should be presented identically to everyone in a single consolidated table, which keeps the reporting consistent across audiences
Incorrect. The syllabus specifically advises differentiating communication between business-focused and technology-focused stakeholders; one consolidated table buries the figure each audience actually needs.
Only response time can appear in acceptance criteria, because throughput and resource utilisation cannot be agreed in advance
Incorrect. Throughput and resource utilisation targets are routinely agreed in advance and appear as acceptance criteria in the Performance Test Plan.
Response time matters chiefly to the user, throughput chiefly to the business, and resource utilisation chiefly to the system owners
Correct. This is the mapping the syllabus gives, and it is what allows acceptance criteria to be justified to the right audience.
Response time matters chiefly to the business, throughput chiefly to the system owners, and resource utilisation chiefly to the user, since the user pays for the capacity consumed
Incorrect. Users experience response time directly and have no visibility of resource utilisation, so this mapping reverses the syllabus position; capacity costs reach the user only indirectly, through price.
The syllabus makes this association explicit: response time is chiefly the user's concern, throughput is chiefly the business's concern, and resource utilisation is chiefly the concern of those running the system.
A team plans to build its performance test data by extracting a copy of the production customer database and masking the personal fields to satisfy GDPR. What caveat does the syllabus attach to this widely used practice?
Masking is normally obligatory, but masked data can lose the real characteristics of the original, so index selectivity and data distribution may no longer be representative
Correct. Replacing values with uniform substitutes can flatten skew and change key cardinality, which alters query plans and makes the measured performance unrepresentative.
The caveat is one of volume: a masked extract is smaller than production, so its rows should be duplicated until the target volume is reached
Incorrect. Duplicating rows inflates volume while collapsing key cardinality and skew, so the result is less representative than the masked extract it was built from; the caveat the syllabus raises is about characteristics rather than size.
Masking is required only for direct identifiers such as names and card numbers, so the columns that drive index selectivity can be copied across unchanged and the distribution of the data is preserved automatically
Incorrect. Data protection obligations cover personal data in general, not only direct identifiers, and substituting values does not preserve distribution — the characteristics that drive index selectivity are exactly what masking tends to destroy.
Masking matters only where the test environment is hosted outside the organisation; data held on the organisation's own internal servers falls outside data protection obligations, so an unmasked production copy may be used there
Incorrect. The obligation follows the personal data itself rather than the location of the server, so an internally hosted test environment is not exempt from it.
Anonymising or masking production data is generally mandatory under data protection regulation, but the syllabus warns that masked data may lose the real characteristics of the original — distributions, key cardinality, string lengths and skew — which are exactly the properties that drive database performance.
A test environment for a performance test is a scaled-down copy of production: it has half the application servers and a database on smaller hardware. The team intends to measure there and then extrapolate to production capacity. Which statement reflects the syllabus position on this practice?
It is a normal and often unavoidable compromise, but the extrapolation is unreliable because performance is a non-linear function of the environment, and that uncertainty must be stated in the report
Correct. Halving the hardware does not simply halve the capacity: caches, connection pools and contention behave non-linearly, so the extrapolation must be presented with its uncertainty.
It should be rejected, because a reduced environment is treated as a blocking risk and the test has to be postponed until a full-size replica of production has been funded and built
Incorrect. One of the five principles is that performance testing may be conducted on a partial system, and the syllabus treats a reduced environment as a known limitation to be reported, not a reason to postpone the test.
It is acceptable and accurate, because performance scales linearly with the number of application servers: halving the hardware simply halves the capacity, so production figures follow by doubling every measurement taken in the test environment
Incorrect. Linear scaling is the assumption the syllabus warns against: caches, connection pools and shared resources do not scale proportionally, so doubling the measured figures is unsound.
It is acceptable provided only raw figures are reported and no extrapolation is attempted, since raw measurements speak for themselves and need no interpretation for the reader
Incorrect. The syllabus warns that raw figures on their own are frequently misleading, so publishing them without interpretation is a recognised pitfall rather than a safeguard.
The syllabus accepts that a reduced-scale environment is often the only affordable option and that extrapolation will be necessary, while warning that performance is a non-linear function of the environment, so extrapolation carries real uncertainty that must be made explicit.
When choosing which communication protocol a load script should drive, the…
When choosing which communication protocol a load script should drive, the syllabus notes that the protocols most commonly used in performance testing sit at the upper layers of the OSI model (ISO/IEC 7498-1), that is layers 5 to 7. Which of the following are named in the syllabus as protocols or interfaces used at those layers for database and web-service access?
Ethernet framing
Incorrect. Ethernet operates at layer 2, far below the range the syllabus identifies as relevant for scripting load.
JDBC and ODBC for database access
Correct. Both are listed as the database access interfaces a load script may drive directly, bypassing the user interface entirely.
SOAP and REST for web services
Correct. These are the two web-service styles the syllabus names for driving load at the service layer.
TCP and UDP, which carry all scripted traffic at the transport layer
Incorrect in this context. TCP and UDP are transport-layer (layer 4) protocols; the syllabus point is that scripting is normally done at layers 5 to 7, above them.
HTTP and HTTPS for web access
Correct. HTTP and HTTPS, together with HTML, are the web protocols listed for protocol-level scripting.
The syllabus groups the commonly scripted protocols: database access via ODBC and JDBC, web access via HTTP, HTTPS and HTML, and web services via SOAP and REST, alongside network protocols such as DNS, FTP, IMAP, LDAP, POP3 and SMTP.
A script step simulates a user who submits a search, waits for the results page, then pauses to read it before clicking through. In the terminology used by the syllabus, how do transaction response time, think time and elapsed time relate to each other?
Think time is the server processing time, and transaction response time adds the network latency on top of it, so the two together make up the elapsed time
Incorrect. Think time models the human pause between interactions, not server processing. Server processing and network latency both sit inside the transaction response time.
Transaction response time plus think time equals elapsed time
Correct. Elapsed time is the whole wall-clock duration of the step; the portion during which the system was working is the transaction response time and the remainder is think time.
Transaction response time and elapsed time are the same thing; think time is measured separately and sits outside it
Incorrect. The two differ precisely by the think time, which is why reducing think time in a script raises the load generated without adding any virtual users.
Think time plus elapsed time equals response time
Incorrect. This makes transaction response time the largest of the three, which cannot be right - response time is a component of elapsed time, not the sum containing it.
The syllabus states the relationship directly: transaction response time plus think time equals elapsed time. Think time is the time the simulated user spends not interacting with the system; it does not consume server resources but it does determine how much load a given number of virtual users generates.
The syllabus describes constructing operational profiles as a three-step activity. Which sequence and emphasis matches that description?
Ask the development team which functions they consider most performance-critical and build profiles exclusively around those
Incorrect. Developer intuition about criticality is not a substitute for data on how the system is actually used, which is what interviews and log analysis provide.
Record a single representative user session, multiply it by the expected number of users, then adjust the total until it matches the desired throughput figure agreed with the business
Incorrect. One recorded session cannot represent a mixed user population, and scaling it uniformly ignores the different behaviours of different roles, however carefully the total is tuned.
Construct the profiles bottom-up from the individual database queries observed during a trace, aggregate them into transactions and finally into user journeys, so that every profile is grounded in measured activity
Incorrect. The syllabus specifically recommends a top-down construction; starting from queries is grounded in data but loses the business context that determines realistic transaction mixes.
Identify the data needed by persona or role, gather it from stakeholder interviews and production logs, then construct the profiles top-down
Correct. This matches the syllabus sequence, including its explicit recommendation to build the profiles top-down rather than assembling them from individual transactions upwards.
The three steps are: identify the data needed, typically organised around personas or user roles; gather the data, through interviews with stakeholders and through analysis of production logs; and construct the profiles, which the syllabus recommends doing top-down.
A recorded load script replays without error against a single user but produces…
A recorded load script replays without error against a single user but produces a flood of authorisation failures the moment it is run with more than one virtual user. According to the syllabus, what is the single most common reason that recorded scripts fail to replay correctly, and what is the remedy?
The protocol chosen for recording sits at too high a layer of the OSI model: layers 5 to 7 hide the authorisation handshake, so recording should be repeated at the transport layer, where every exchange is captured verbatim and replays faithfully
Incorrect. The syllabus points to layers 5 to 7 as the appropriate range for scripting, and a verbatim transport-layer capture would be harder to parameterise, leaving the dynamic values just as hard-coded as before.
The load generator is under-resourced: one machine cannot hold several hundred open sessions at once, so more generator machines have to be added before the script will replay cleanly
Incorrect. A saturated generator distorts timings and drops requests, but it does not produce systematic authorisation failures that appear as soon as a second user joins.
Incorrect or missing correlation — dynamic values such as session identifiers and tokens must be captured from each response at run time and fed into subsequent requests instead of replaying the recorded literals
Correct. The syllabus names faulty correlation as the main cause of replay failure, and the symptom described — fine with one user, failing with many — is its classic signature, since all users would otherwise replay one recorded session identifier.
Think times that are too short: at scale the virtual users outpace the session timeout window, so the script must be slowed down step by step until the authorisation failures stop appearing
Incorrect. Think time governs how much load a given population generates; lengthening it does not repair a request that carries a session identifier belonging to another user.
The syllabus is unambiguous that incorrect or missing correlation is the principal reason recorded scripts do not replay. Correlation means capturing values generated dynamically by the server during the run — session identifiers, tokens, generated record keys — and substituting them into subsequent requests instead of replaying the hard-coded values captured at record time.
The syllabus describes a standard three-part structure for a performance test script. What belongs in each part, and why does the structure matter?
A section for each OSI layer being driven, so that layer 5, layer 6 and layer 7 traffic can be timed independently and the slowest layer read directly from the script output
Incorrect. Scripts are not partitioned by OSI layer; the layering concerns which protocol the script drives, not its internal structure.
A recording section, a playback section and a reporting section, executed in that order by the load management console, so that each script documents the full lifecycle of the measurement it produces
Incorrect. Recording and reporting are activities of the tooling and of the test process; they are not sections inside an individual script.
An initialization section run once, a main section repeated each iteration and carrying the transaction timers, and a clean-up section run once at the end — so that one-off work is not measured as part of the repeated transactions
Correct. Separating one-off setup and teardown from the repeated body is what keeps the timed transactions representative of steady-state behaviour.
A login section, a think-time section and a logout section, with a single timer wrapped around the whole script, since one end-to-end figure per iteration is what the acceptance criteria are written against and finer timers only add noise
Incorrect. Timing the whole script as one transaction removes the ability to attribute a slowdown to a specific business operation, which is exactly why individual timers are placed around the transactions of interest.
A script has an initialization section (executed once, for example logging in and establishing a session), a main section that is repeated for each iteration and normally carries the timers around the transactions of interest, and a clean-up section executed once at the end, for example logging out and releasing resources. Keeping one-off work out of the repeated section prevents it from distorting the measured transactions.
During execution, the syllabus advises focusing analysis on the steady state of a run, while noting an important class of exceptions. Which statement captures both the rule and the exception correctly?
Analysis should concentrate on the transient states, because a system that survives the ramp-up will sustain the steady load that follows, so the steady-state period adds only confirmation
Incorrect. Surviving ramp-up says nothing about behaviour over a sustained period, which is precisely why endurance testing exists and why the steady state is the usual object of analysis.
Analysis normally concentrates on the steady state, but transient states are the object of interest for mass log-on scenarios and spike tests, where averaging across the whole run conceals the effect being investigated
Correct. This is exactly the distinction the syllabus draws — the transient period is noise in a load test but is the subject itself in a spike or mass log-on test.
The distinction matters little provided the run is long enough, because the average over a sufficiently long run converges on the steady-state value and the transient contribution becomes negligible in the reported figures
Incorrect. Diluting the transient into a long-run average destroys the very behaviour a spike or mass log-on test is designed to expose, rather than making the distinction unnecessary.
Analysis should be restricted to the steady state, and data from ramp-up and ramp-down discarded as invalid, because measurements taken while the population is still changing cannot be compared against an acceptance criterion
Incorrect. Discarding transient data as a rule would make it impossible to evaluate the very scenarios — spike tests and mass log-on — in which the transient behaviour is itself the requirement under test.
Most performance analysis concentrates on the steady state, once ramp-up has completed and behaviour has stabilised. Transient states matter in their own right for scenarios such as mass log-on at the start of a working day and for spike tests, where averages taken across the whole run are actively misleading.
Which sections does the syllabus identify as making up a performance test report?
Executive summary
Correct. The executive summary opens the report and is aimed at stakeholders who will not read the detail.
The full source code of every load script used in the campaign, appended so that the run can be reproduced
Incorrect. Scripts are test artefacts maintained and versioned separately; the syllabus does not list them as a section of the report, and reproducibility is served by the test logs.
Test results, including a baseline snapshot to compare against
Correct. The syllabus specifies that results should be accompanied by a baseline, since a number without a reference point cannot be interpreted.
Recommendations
Correct. Recommendations close the report and turn the measurements into proposed action.
Sign-off
Incorrect. Formal sign-off is a governance artefact of the release process, not a section of the performance test report as the syllabus describes it.
The report structure given in the syllabus comprises an executive summary, the test results (including a baseline snapshot for comparison), the test logs, and recommendations.
A load scenario is built from a single script. Each virtual user repeats one…
A load scenario is built from a single script. Each virtual user repeats one iteration continuously: a balance enquiry whose transaction response time is 2 seconds, followed by a think time of 10 seconds. The scenario runs 600 virtual users in steady state. Using the throughput relationship given in the syllabus, what system throughput does this scenario generate?
60 transactions per second, treating the ten-second pause as the whole iteration cycle and the enquiry itself as costing no time
Incorrect. This divides the virtual users by the think time alone (600 / 10). The processing time is part of the iteration cycle and belongs in the denominator.
300 transactions per second, if the think time is left out of the cycle
Incorrect. This divides the virtual users by the transaction response time alone (600 / 2) and omits the think time, which greatly overstates the load actually generated.
600 TPS
Incorrect. This assumes every virtual user completes a transaction every second, which would hold only if the iteration cycle time were exactly one second.
50 transactions per second
Correct. 600 / (2 + 10) = 50. Each user completes one iteration every 12 seconds, so 600 users produce 50 completed transactions in each second of steady state.
The syllabus gives System throughput = [number of virtual users] / ([processing time] + [think time]). Here that is 600 / (2 + 10) = 600 / 12 = 50 transactions per second. The important consequence is that the generated load is governed by the iteration cycle time, not by the head-count of virtual users alone.
A business stakeholder states the requirement as a throughput target: the order…
A business stakeholder states the requirement as a throughput target: the order service must sustain 120 completed orders per minute. Measurement on the existing system shows that placing an order has a transaction response time of 3 seconds, and analysis of production logs shows that a typical user pauses for 27 seconds between orders. How many concurrent virtual users must the load profile contain to generate the required throughput?
120 concurrent virtual users, one user per order per minute
Incorrect. This equates the number of virtual users to the per-minute throughput figure directly, which only holds if each user completes exactly one transaction per minute - here the cycle is 30 seconds, not 60.
6 virtual users
Incorrect. This uses only the 3-second processing time as the cycle (2 x 3 = 6) and drops the think time, which understates the required population tenfold.
60 concurrent virtual users
Correct. 120 orders per minute is 2 per second; the iteration cycle is 3 + 27 = 30 seconds; 2 × 30 = 60 virtual users.
3 600 concurrent virtual users, from the per-minute target multiplied by the cycle
Incorrect. This multiplies the per-minute target by the 30-second cycle without first converting the target to a per-second rate, inflating the answer by a factor of 60.
Rearranging System throughput = [virtual users] / ([processing time] + [think time]) gives virtual users = throughput × cycle time. The target of 120 orders per minute is 2 orders per second, and the cycle time is 3 + 27 = 30 seconds, so 2 × 30 = 60 concurrent virtual users are required.
An HR system is used lightly through the night by around 100 batch and…
An HR system is used lightly through the night by around 100 batch and integration sessions. On the first working day of each month, employees log in to submit timesheets, and the operational profile shows the population climbing from that background level to about 220 concurrent users over the first hour of the working day, remaining there for roughly two hours, then falling away. The team must build a load profile that lets them observe the system at the peak and also see how it behaves while the population is climbing. Which load profile should be constructed?
Start all 220 virtual users simultaneously and hold them for two hours, dropping the 100 background sessions, since only the contractually agreed peak population has to be demonstrated and the climb adds nothing to the evidence
Incorrect. An instantaneous start makes the whole ramp period unobservable and creates a mass log-on transient the profile does not describe, while dropping the background sessions removes load that competes for the same resources.
Ramp continuously from zero to 220 over three hours with no hold period, and read the response time at the instant 220 is reached, treating that single value as the peak-load result
Incorrect. Without a hold at the peak the system never reaches steady state, so a single reading at 220 reflects a transient and is not comparable with a two-hour requirement; it also drops the 100 background sessions.
Hold 100 background virtual users throughout, ramp up in steps to 220 over one hour, sustain 220 for two hours, then ramp down — with the steps chosen so response times can be read at each intermediate population
Correct. It reproduces the real shape of the operational profile, preserves the background load that competes for the same resources, and the stepped ramp is what makes the climb observable rather than just the peak.
Run 220 virtual users with the think times removed so that the two-hour peak is compressed into a fifteen-minute run, since the same number of transactions is executed either way
Incorrect. Removing think time changes the throughput generated and breaks the relationship between population and load, and a fifteen-minute run cannot demonstrate two hours of sustained peak.
A load profile specifies how many virtual users execute the operational profiles over time. The syllabus works through an example of exactly this shape: a constant background population, a ramp-up in steps to the peak, a sustained period at the peak, and a ramp-down. The stepped ramp allows the response at each intermediate population to be read off, which a single instantaneous jump would not permit.
A run has just completed and the tester has the full set of results available…
A run has just completed and the tester has the full set of results available: virtual user status, transaction response times, transactions per second, transaction failures, hits per second, network throughput and the distribution of HTTP response codes. Applying the analysis order recommended by the syllabus, which item should be examined FIRST, and for what reason?
Transaction response time, because it is the metric named in the acceptance criteria and therefore decides pass or fail; the remaining metrics are needed only when the criterion has not been met
Incorrect. Response time matters most to users, but reading it before the validity of the run has been established risks passing or failing the system on figures drawn from a broken run.
The distribution of HTTP response codes, because codes such as 200, 302, 304 and 404 give the true error rate of the run, and that error rate has to be established before any timing figure is interpreted, reported or compared with the agreed criteria
Incorrect. Response codes are examined last in the recommended order, and virtual user status already answers the question of whether the users completed their work, at a higher and more direct level.
Virtual user status, because errored or failed users invalidate every other figure in the run — failed transactions complete faster and inflate throughput, and response time statistics are computed over work that was never really done
Correct. This is the order the syllabus gives, and the reason is that all remaining metrics are conditional on the run having actually executed the intended work.
Network throughput in bits per second, because a saturated network would account for every other symptom in the run, and ruling the network out first prevents effort being wasted on the application tiers
Incorrect. Network throughput comes later in the recommended order, after virtual user status, response times, transactions per second, failures and hits per second.
The syllabus recommends beginning with virtual user status. If virtual users failed or errored during the run, every other metric is distorted — failed transactions complete faster and inflate the apparent throughput, and response time averages are computed over a population that never did the intended work. Establishing that the run itself was valid must precede interpreting any of its numbers.
The acceptance criterion for an e-commerce checkout reads: "at least 90% of…
The acceptance criterion for an e-commerce checkout reads: "at least 90% of checkout transactions shall complete within 2.00 seconds". A single steady-state run produced 10 000 checkout transactions. The tester plots their distribution and marks the aggregate figures on it. The average is 1.34 s, the 90th percentile is 1.41 s and the 95th percentile is 4.24 s; 8% of transactions exceeded the 2.00 s limit.

Which analysis of this result is best supported by the plot?
The criterion is failed, because the 95th percentile of 4.24 s is more than double the agreed 2.00 s limit, and a percentile that high cannot be set aside once it has been measured and plotted next to the other aggregates
Incorrect. The criterion is stated at the 90th percentile, and 90% of transactions did complete within 2.00 s. Substituting a stricter percentile than the one agreed rewrites the requirement instead of evaluating it.
The criterion is met on the letter of the wording, but the distribution is bimodal: roughly 8% of transactions form a separate cluster around 4–5 seconds, which indicates a distinct execution path rather than ordinary variation, and this should be investigated and reported rather than hidden behind the passing 90th percentile
Correct. Two separated modes cannot be produced by ordinary variance around one behaviour; the honest reading is that the criterion passes while a second, materially slower population exists and needs a cause.
The result is a clean pass and no further analysis is warranted, since both the average of 1.34 s and the 90th percentile of 1.41 s sit comfortably inside the 2.00 s limit, and the agreed criterion is the only question the report has to answer
Incorrect. The average and the 90th percentile both fall inside the dense first mode, which is exactly why they say nothing about the second cluster. Reporting them alone is the misuse of aggregates the syllabus warns against.
The plot shows ordinary statistical scatter around a mean of 1.34 s, so the transactions beyond 2 s are outliers that should be trimmed from the data set before the percentiles are recalculated, after which the distribution will take the single-mode shape that a healthy system is expected to produce under a steady load, and the corrected percentiles can be quoted in the report
Incorrect. Ordinary scatter produces a single mode with thinning tails, not a second cluster holding 800 transactions, and trimming 8% of the population as outliers would delete the finding instead of explaining it.
The distribution is clearly bimodal: a dense cluster around 1 second and a distinct, separate population between roughly 2.5 and 8 seconds. The acceptance criterion is technically satisfied — 92% of transactions were within 2.00 s and the 90th percentile is 1.41 s — but the aggregate figures conceal the existence of a second population that behaves quite differently. The syllabus warns that raw and aggregated figures are misleading on their own, and that the analyst should correlate metrics to locate the cause. A second mode almost always means a subset of transactions is taking a different execution path, and that is what should be investigated before the result is reported as a pass.
A 12-hour endurance run was executed against a Java application at a constant…
A 12-hour endurance run was executed against a Java application at a constant, rate-driven 120 transactions per second. The load generators reported no failed virtual users for the whole run. The tester correlates four metrics over the elapsed time of the run: average transaction response time, CPU utilisation, throughput in transactions per second, and JVM heap in use immediately after a full garbage collection.

Which root-cause analysis is best supported by this combination of metrics, and what follow-up does it call for?
Resource saturation: the servers have run out of processing capacity at 120 transactions per second, which is why response time degrades through the run, and additional CPU must be provisioned before the endurance test is repeated and its results believed
Incorrect. CPU utilisation never leaves the 41–46% band across the whole run. Saturation would show utilisation climbing towards its ceiling as response times worsen, and it would not depend on elapsed time at a constant load.
A memory leak: heap retained after full garbage collection climbs monotonically under an unchanged load, so objects are being held and never released, and the growing collection cost is what drives response time up — the follow-up is heap profiling to identify the retained object graph, not additional hardware
Correct. Post-full-GC heap is the diagnostic figure, because it excludes ordinary garbage; a linear rise at constant load is the definitive leak signature, and it identifies degradation over time as the failure mode.
The load profile is faulty: throughput drifted upwards over the twelve hours, so the rising response time is simply the system reacting correctly to more work arriving, and the run should be repeated with a profile that holds the arrival rate constant
Incorrect. Throughput is flat at approximately 120 transactions per second for the whole 12 hours, and the profile was already rate-driven, which is what makes elapsed time the only variable that changed.
The probe effect: the monitoring agent that samples the heap is itself allocating memory and stealing cycles from the application, so these figures describe the instrumentation rather than the system under test, and the run should be repeated with monitoring switched off before any defect is raised against the application
Incorrect. The probe effect imposes a broadly constant overhead rather than one that worsens steadily over twelve hours, and switching monitoring off would remove the very evidence needed to characterise the defect.
The decisive signal is the heap in use immediately after a full garbage collection rising almost linearly while the load is unchanged. Memory that survives a full collection is memory the application still holds a reference to, so a monotonic rise means objects are being retained and never released — a memory leak. CPU utilisation staying flat in the low forties rules out resource saturation, and throughput holding at 120 TPS confirms the load itself did not change. This is the 'degradation over time' failure mode, and it is exactly the class of defect endurance testing exists to find.
A team implemented its scripts quickly by hard-coding one customer account…
A team implemented its scripts quickly by hard-coding one customer account number and one product code into the search and order transactions, so that all 400 virtual users work on exactly the same two records. Two runs are then compared. In the search scenario the measured response times are far better than the production baseline, and database CPU is close to idle. In the order scenario the measured response times are far worse than baseline, database CPU is again low, but the database reports a large number of lock waits on a single row. Which conclusions about the effect of the shared test data are correct?
The order result proves the database needs faster storage, because lock waits are a symptom of slow disk writes that clear as soon as each write completes quickly enough
Incorrect. The lock waits come from many sessions targeting one row; faster storage shortens each write slightly but leaves the serialisation created by the shared record in place.
The search results are unrealistically good because the single record is served from cache after its first retrieval, so the measurement never exercises the physical I/O path a real mix of accounts would trigger
Correct. Caching is the distortion the syllabus attaches to shared data on read paths, and near-idle database CPU alongside excellent response times is its signature.
The search result should be accepted as valid, because caching takes place in production as well, so a measurement dominated by cache hits is representative of what real users experience and no change to the test data is needed before the figure is reported
Incorrect. Production caches serve a wide working set at a far lower hit rate; a cache returning one record to 400 users is not production behaviour, so the figure flatters the system.
The order results are unrealistically bad because all 400 users contend for a lock on the same row, creating serialisation that would not occur across a realistic spread of records
Correct. Locking is the opposite distortion named in the syllabus, and low CPU combined with heavy lock waits on one row identifies contention rather than a capacity problem.
Neither run can be used to judge the system, and both scripts must be parameterised with a representative spread of accounts and products before the measurements mean anything
Correct. Both results are artefacts of the data design. Parameterisation with realistic data is the remedy the syllabus prescribes.
The syllabus warns that giving every virtual user the same data distorts results in two opposite directions. Read-mostly transactions become unrealistically fast because the single record is served from cache after the first access. Write transactions on a shared record become unrealistically slow because every user contends for the same lock. Both readings are artefacts of the data design, not properties of the system, and the remedy is to parameterise the scripts with a realistic spread of data.
A tester is scaling a scenario from 500 to 4 000 virtual users. Beyond about 2…
A tester is scaling a scenario from 500 to 4 000 virtual users. Beyond about 2 200 users, the reported transaction response times begin to rise sharply, but the application servers show CPU at 51% and the database shows no contention. Investigation reveals that all 4 000 users are being driven from one load generator machine, that the generator's own CPU is at 96%, and that the whole population appears to the application as a single source IP address. Which conclusions and corrective actions are justified?
The measurements above roughly 2 200 users are invalid: the generator at 96% CPU is queuing its own requests, and that delay is being recorded as system response time
Correct. This is why the syllabus insists on monitoring the load generators themselves — a saturated generator manufactures response time that has nothing to do with the system under test.
The application servers are the bottleneck, because 51% CPU at 2 200 users extrapolates linearly to over 90% at 4 000 users
Incorrect. Linear extrapolation of CPU is unsound — the syllabus notes performance is a non-linear function of the environment — and in any case 51% measured is not evidence of saturation.
The result should be reported as the system's capacity limit of roughly 2 200 concurrent users, since that is where the measured response time began to degrade, and the capacity figure the business commissioned the test to establish is precisely that degradation point
Incorrect. Reporting the generator's limit as the system's capacity would understate the true capacity and could trigger an unnecessary hardware purchase; the figure the business asked for still has to be a valid one.
Load generation should be distributed across several machines, ideally from more than one point of presence, and the run repeated
Correct. Distributing generation removes the generator bottleneck and, from multiple points of presence, also produces a more realistic network path.
Presenting the entire population from one source address may itself distort the result if the system applies per-address load balancing, connection limits or throttling; IP spoofing on the generator addresses this
Correct. The syllabus names IP spoofing for exactly this purpose — a single source address can defeat load-balancing and trigger per-client limits that real users would never hit collectively.
The syllabus stresses that load generators must themselves be monitored, because a saturated generator produces inflated response times that are attributed to the system under test. It also describes distributing generation across several machines and multiple points of presence, and mentions IP spoofing as a technique for making a single generator appear as many client addresses — which matters when the system under test applies per-address load balancing, throttling or connection limits.
A scenario is run with a fixed think time of 5 seconds. As virtual users are…
A scenario is run with a fixed think time of 5 seconds. As virtual users are added in steps, measured throughput rises to 400 transactions per second at 3 000 users and then stops rising: at 4 000 and 5 000 users throughput remains at approximately 400 transactions per second while the transaction response time climbs from 2.5 s to 7.5 s. A junior tester concludes that the load generation is broken because adding users no longer adds load. What is the correct interpretation?
The scenario is a closed system, so once the system saturates its service rate caps throughput at about 400 transactions per second; extra users cannot create extra work and instead accumulate as waiting time, which is why response time rises while throughput stays flat — 400 TPS is the measured capacity
Correct. In a closed system each user has at most one outstanding request, so beyond saturation the arrival rate is governed by the system's own completion rate. The flat throughput with rising response time is the finding, not an error.
The load generation is broken, because throughput is expected to rise in proportion to the number of virtual users whenever those users are actually running, so a flat line at 400 transactions per second indicates that the generator has stopped starting new iterations
Incorrect. Throughput tracks the population only while the system keeps up with it; the syllabus is explicit that the number of users does not determine load, throughput does. The rising response time shows the iterations are still running, only more slowly.
The results should be discarded because a response time above 2 seconds breaches the usual seven-second rule for web applications, and measurements taken beyond that threshold are not valid input to a capacity statement
Incorrect. The seven-second guideline is a usability expectation rather than a validity criterion for a measurement, and discarding the data would throw away the capacity finding the run produced.
The think time of 5 seconds is capping throughput at 400 transactions per second, and setting it to zero would let throughput resume growing in proportion to the population, so the run should be repeated with no think time at all before any capacity figure is reported to the business as the limit of the system
Incorrect. Removing think time raises the rate offered to the system, but the system is already returning its maximum completion rate; the ceiling is its service capacity. Response time climbing to 7.5 s while throughput is flat shows the constraint lies downstream of the generator.
This scenario is a closed system: each virtual user waits for its own transaction to complete before starting the next iteration. Once the system saturates, its service rate caps the throughput, and additional users simply wait longer rather than producing more work. Throughput flattening while response time rises in proportion to the added population is the expected signature of a saturated closed system, not a defect in load generation. The syllabus makes exactly this point when it stresses that load is determined by throughput rather than by the number of users.
As a verification technique, a team runs a small number of GUI-driven scripts…
As a verification technique, a team runs a small number of GUI-driven scripts alongside the main protocol-level load test. At 1 500 virtual users the protocol scripts report an average 'view dashboard' response time of 1.1 seconds, while the GUI scripts running at the same moment report 6.8 seconds for the same operation. Both sets of scripts are correct and the clocks on all machines are synchronised. What is the most sound analysis of this discrepancy?
The protocol scripts are wrong, because a correlation defect is making them record incomplete responses that return early, and that is the usual explanation whenever two measurement techniques disagree by more than a factor of five
Incorrect. A correlation defect yields errors or wrong content and shows up as failed transactions; here both script sets complete successfully and simply measure different boundaries of the same operation.
The GUI-driving machines are suffering from the probe effect, so neither figure can be trusted on its own and the two should be averaged to obtain a real response time of about 4 seconds, which is the value that should be compared with the acceptance criterion agreed for the dashboard before anything at all is reported to stakeholders
Incorrect. Averaging measurements of two different things produces a number that describes neither. GUI drivers are resource-hungry and must be monitored, but that is something to check, not something to compensate for with arithmetic.
Both figures are valid and measure different things: the protocol script covers server and network time only, while the GUI script covers the full end-to-end experience including rendering and client-side processing — so roughly 5.7 seconds is being spent in the browser and the user-facing result is 6.8 seconds
Correct. This is the reason the syllabus recommends the technique: the gap between the two measurements localises cost to the client side, which a protocol test alone can never reveal.
The GUI scripts are wrong, because a protocol-level measurement is taken closer to the server and is therefore the more accurate of the two, so 1.1 seconds is the figure that belongs in the report and the GUI results should be set aside as an artefact of the driver
Incorrect. Being closer to the server makes the protocol figure narrower, not more accurate; reporting 1.1 s would tell stakeholders the dashboard is six times faster than users find it.
A protocol-level script measures only the server and the network. A GUI-driven script measures the complete end-to-end experience, including everything the browser does after the response arrives: parsing, rendering, executing client-side script and issuing dependent requests. A large gap between the two therefore locates the cost on the client side, and it is a genuine user-visible finding rather than a scripting fault — which is precisely why the syllabus recommends running GUI scripts alongside a protocol test as a verification technique.
Chapter 5 · Tools — 3 questions
Which categories of tool does the syllabus identify as making up the tooling for a performance test?
Load generators, optionally operating from multiple points of presence
Correct. Load generators create the traffic, and running them from several points of presence gives a more realistic network path.
Test management tools holding the test cases
Incorrect. Test management tooling is general test infrastructure and is not among the three performance-specific tool categories.
A load management console that coordinates the generators and consolidates their results
Correct. The console is the orchestration layer that starts and synchronises generators and brings the results together.
Static analysis tools that compute the theoretical worst-case execution time from the source code before any run takes place
Incorrect. Static review of performance-critical code is a static testing activity, but such a tool is not one of the three categories of performance test tooling named in chapter 5.
Monitoring tools, applied to the system under test, to the load generators and to production after release
Correct. The syllabus specifically notes that monitoring must cover the load generators too, and that it continues into production once the system is live.
Three tool types are described: load generators, which create the virtual users and their traffic and may operate from several points of presence; the load management console, which orchestrates the generators and consolidates results; and monitoring tools, which observe the system under test, the load generators themselves and, after release, production.
Among the four factors the syllabus gives for assessing tool suitability — compatibility, scalability, understandability and monitoring — which one does it single out as being frequently underestimated, and on what grounds?
Monitoring - because a tool with weak built-in monitoring leaves gaps that separate monitoring products are rarely able to fill in time
Incorrect. The syllabus asks specifically whether a tool's monitoring capability can be supplemented by other tools, which implies that it normally can; and monitoring is not the factor it calls underestimated.
Understandability — because a tool that demands more technical skill than the team possesses will be used to produce incorrect results, however capable the tool is on paper
Correct. The syllabus explicitly names this as an underestimated factor, and its concern is the correctness of the results an under-skilled team will generate.
Compatibility - because the range of protocols, platforms and external interfaces a tool supports is the hardest factor to work around once the licence has been bought and the test campaign has already started
Incorrect. Compatibility with protocols, platforms and external interfaces such as CI is a genuine selection criterion, but the syllabus does not describe it as the underestimated one - protocol support is usually the first thing a team checks.
Scalability - because licence limits on the number of concurrent virtual users, and the number of generators needed to drive them, tend to surface only during the first large run, when the campaign is already committed
Incorrect. Scalability covers virtual user counts, licensing models and generator configuration and it matters a great deal, but it is not the factor the syllabus singles out as underestimated.
Understandability is the factor the syllabus flags as underestimated. It concerns the level of technical knowledge the tool demands of its users, and the warning is blunt: testers who lack the required skills will produce incorrect results with the tool, whatever its technical merits.
An organisation must select a performance testing tool for a portfolio that…
An organisation must select a performance testing tool for a portfolio that includes a REST-based microservice platform, a legacy Citrix-published desktop application and a mobile client. The test team consists of two manual testers with no scripting background. Peak scenarios need 12 000 concurrent virtual users, four times a year, and the results must be published automatically into the existing continuous integration pipeline. Tool A supports HTTP and REST only, is licensed per seat with an unlimited virtual user count, and is scriptless. Tool B supports HTTP, Citrix ICA and mobile protocols, offers a cloud pay-as-you-go virtual user model and a CI plug-in, but requires scripts to be written and correlated by hand in a programming language. Assessing both against the four suitability factors, which recommendation is best supported?
Select Tool A, because understandability is the factor the syllabus calls most underestimated and a scriptless tool matches the team's current skills, so the team can start producing results at once without a training budget
Incorrect. Understandability does matter, but a tool that cannot drive two of the three applications leaves the largest performance risks in the portfolio untested. A weakness that training can close should not outweigh a capability the tool simply does not have.
Select Tool A, because its unlimited virtual user licence removes any doubt about reaching 12 000 concurrent users, and the Citrix desktop and the mobile client can be covered by timing a few sessions by hand and extrapolating those figures to peak load
Incorrect. Timing a handful of sessions by hand produces single-user measurements and generates no concurrent load, so extrapolating them to peak says nothing about how those two applications behave under load. The compatibility gap remains.
Buy both tools and use each where it fits, since running a scriptless tool for the REST platform and a protocol-rich tool for Citrix and mobile scores highest on every suitability factor at once, lets two sub-teams work in parallel, and allows the result sets to be merged in the CI pipeline afterwards
Incorrect. Two toolsets mean two licence costs and two skill sets, and results produced by different engines are hard to consolidate or correlate — which weakens monitoring and reporting rather than strengthening them.
Select Tool B, because compatibility with Citrix ICA and mobile is a hard constraint that Tool A cannot meet and its pay-as-you-go model suits four peaks a year — but treat understandability as an identified risk and fund training or a scripting-capable engineer before the first campaign
Correct. It respects compatibility as the constraint that cannot be traded away, reads the licensing model against the actual usage pattern, and does not dismiss the understandability weakness but manages it explicitly.
Compatibility is a hard constraint: Tool A cannot drive Citrix ICA or the mobile client at all, so it cannot cover the portfolio regardless of its other merits. Scalability favours the pay-as-you-go model, because 12 000 virtual users are needed only four times a year and paying for permanent capacity would be wasteful. Monitoring and CI integration favour Tool B. That leaves understandability as the one factor on which Tool B is weak — and the syllabus treats this as a real risk rather than a formality, since under-skilled testers produce incorrect results. The sound recommendation is therefore Tool B combined with an explicit plan to close the skills gap.