Certifications · OTCA · Practice Questions

OTCA Practice Questions

Twenty-five single-best-answer questions, built the way the real OTCA builds them: a stem, four options, exactly one option that answers this stem better than the other three. They are split across all four domains from the OTCA blueprint in rough proportion to their weight — eleven on the API & SDK, seven on the Collector, five on Fundamentals of Observability, and two on Maintaining & Debugging Pipelines — so a strong or weak score in one section tells you something real about where your marks would actually land. This page is untimed and open-book on purpose: work through it slowly, read every explanation even for questions you got right, and only once these twenty-five stop surprising you should you move on to the two full, weighted, timed papers — Mock Exam · Set 1 and Mock Exam · Set 2. For the fuller walkthrough this bank is drawn from, see the sibling coverage at Platform Engineering's OTCA guide.

☺ Explain it like I'm 10

Picture a quiz card with four doors instead of a blank line. One door is right. The other three were built on purpose to feel almost right — one says something true, just not about the thing you were asked; one uses a big bossy word like "always" or "only," where real pipelines almost always run on trade-offs and version-dependent details; one is a setting, port, or capability that was simply made up, dressed to look official. Reading these questions is a skill on top of knowing the material. This page hands you both at once: real OTCA-shaped questions about the API, the SDK, and the Collector, and a full explanation of every door — not just which one was right, but why each wrong one was built the way it was.

🐰🐘Your hosts for this topic: Remy the Rabbit & Ellie the Elephant — Remy wants to answer every question in two seconds flat, which is exactly the instinct this bank is here to train and discipline; Ellie remembers the exact shape of the data model and the pipeline underneath, and she's the one who insists Remy can name why a door was wrong, not just that it was.

How this bank is built

☺ Like you're 10: The biggest pile of questions covers the biggest part of the real test. Study in that order and you're spending your time where the marks actually are.

The OTCA curriculum weights its four domains 46 / 26 / 18 / 10, and this bank mirrors that shape rather than splitting twenty-five questions evenly into piles. The API & SDK alone gets nearly half the bank, because it's nearly half the real paper; Maintaining & Debugging Pipelines — the domain candidates most often skim, because it sounds like an afterthought next to "the data model" — still earns two full questions, because a fixed, answerable toolkit is exactly what a small weighted domain should feel like.

🐘The OpenTelemetry API & SDK
46%
🐦The OpenTelemetry Collector
26%
🦉Fundamentals of Observability
18%
🦊Maintaining & Debugging Pipelines
10%
DomainBlueprint weightQuestions hereNumbers
🐘 The OpenTelemetry API & SDK46%11Q1–Q11
🐦 The OpenTelemetry Collector26%7Q12–Q18
🦉 Fundamentals of Observability18%5Q19–Q23
🦊 Maintaining & Debugging Pipelines10%2Q24–Q25
Total25Q1–Q25
THE STEM a scenario, then one precise question A · The key Answers this exact stem, precisely — no hedging needed B · Swapped True — about a different signal or component, not this C · Absolute "always," "never," "only" — pipelines run on trade-offs D · Fabrication An invented setting, port, or component that is not real
◆ Key idea

Every question below asks for the single best answer, not the only true sentence in the list. On several of these, two options are individually defensible — that's deliberate. Read the exact question being asked before you look at the options, form your own answer, then compare it to what's on offer. If your answer isn't there, you've likely misread the question rather than found a flaw in it.

The OpenTelemetry API & SDK — 11 questions

☺ Like you're 10: One half of this is the rulebook every recording device has to follow. The other half is the actual recorder someone has to plug in and turn on — and nothing gets written down until they do.

Forty-six percent of the real exam sits here, and it rewards concrete recall over abstract description: the API/SDK split, the three signals and their exact fields, the pipeline you configure at start-up, context propagation, and the environment-variable surface that controls all of it without touching code. Notice as you go that Context Propagation is the one competency the curriculum names twice — once here, once again in the 10% debugging domain — because a trace that breaks at a service boundary is the signature failure this exam is built to catch.

Q1. Which statement most precisely describes the relationship between the OpenTelemetry API and the OpenTelemetry SDK?

Show answer & explanation

Answer: B. A collapses a deliberate, load-bearing split. C reverses the whole point of the design — libraries depend on the API, precisely so that instrumenting a library never forces a telemetry vendor on whoever imports it; the SDK is what an application registers. D misdescribes the API as generating data on its own, when the defining fact about the API is that it does nothing — a true no-op — until an SDK is registered behind it.

Q2. A team wants to know, for a given span, which instrumentation library emitted it and which version of that library, separately from which service produced it. Which layer of OpenTelemetry's three-layer data shape holds that information?

Show answer & explanation

Answer: B. A is a real layer but answers a different question — it names the service, not the library. C is false; the scope layer exists specifically because "which library, which version" is a distinct fact from both the service and the record. D is unrelated — baggage is user-defined cross-service context, not source metadata. The Resource → InstrumentationScope → record sandwich is worth being able to draw from memory; a surprising number of questions are really about which layer an attribute belongs to.

Q3. A span reports status: unset even though the HTTP call it represents returned a 500. Which span field is specifically meant to reflect that the operation the span represents failed?

Show answer & explanation

Answer: B. SpanKind (A) is a role — internal, server, client, producer, consumer — not an outcome signal. Links (C) join a span to a causally related trace; they say nothing about success or failure. Events (D) can certainly record a 500 as a timestamped note inside the span, but the field an analysis tool checks first to summarize outcome is status — an instrumentation library that logs an event but never sets status.code = ERROR is exactly the gap this competency tests.

Q4. Which OpenTelemetry metric instrument has no asynchronous, observable, callback-driven form?

Show answer & explanation

Answer: D. Counter, UpDownCounter and Gauge (A, B, C) each also have an asynchronous, observable form collected by a callback at export time. Histogram is synchronous only — there is no observable histogram in the specification. This asymmetry is a favorite distractor precisely because it's easy to assume the four instruments are symmetric when they are not.

🐘 Ellie's-eye view

"I used to answer these instrument questions from vibes — 'counters count, histograms bucket' — and got Q4-shaped questions wrong constantly. What fixed it was writing all four instruments in a column with two more columns next to them: 'has an async form?' and 'what it's for.' Once histogram was the only 'no' in that column, on paper, in my own handwriting, it stopped being a fact I had to recall and started being a fact I couldn't un-see."

Q5. Two services in different languages both emit HTTP server spans using the attribute name http.request.method, with the same value shape. What does this specifically buy a dashboard built against that attribute?

Show answer & explanation

Answer: B. A understates the entire value proposition of the domain — conventions are exactly what makes dashboards portable across a polyglot fleet, which is why they earn their own competency rather than being a footnote. C fabricates a guarantee conventions don't make; SDK versions and attribute naming are unrelated. D is false — conventions govern attribute names and shapes; they don't substitute for Resource identification, which is a separate, necessary layer.

Q6. In a typical SDK trace pipeline — provider, sampler, processor, exporter — which single component decides, before a span is even completed, whether that span will ultimately be exported at all?

Show answer & explanation

Answer: C. The exporter (A) only sends whatever the processor hands it — by the time a span reaches the exporter, the sampling decision is long settled. The processor (B) buffers and batches spans that were already marked for recording; it doesn't decide who gets recorded in the first place. The propagator (D) carries context across a process boundary and has nothing to do with a local sampling decision. The sampler is specifically the component that makes the record/don't-record call, and it makes it early — at span start, not at export time.

Q7. Service A samples with ParentBased(TraceIDRatioBased(0.1)). Service B, downstream of A, uses a plain TraceIDRatioBased(0.5) — five times more permissive, and not deferring to the incoming decision at all. For a trace where Service A decided not to sample, what is the most likely consequence?

Show answer & explanation

Answer: B. A is wrong precisely because the two ratios do interact — through the trace, not through each other directly. C and D both invent mechanisms with no basis: no component "discards on ratio mismatch," and a sampler never runs backward once a decision downstream has already been made. B is the real, named trade-off: a ParentBased wrapper is what makes a sampling decision consistent end to end; strip it off one hop and that hop starts making its own independent call, which is exactly how traces end up as inconsistent partial pictures.

Q8. A short-lived batch job creates a TracerProvider, records several spans, then calls os.Exit(0) without calling the provider's Shutdown method first. What happens to spans still sitting in the batch processor's buffer?

Show answer & explanation

Answer: B. A fabricates a runtime guarantee that doesn't exist for most languages' SDKs. C invents a local-disk fallback that would need something like the Collector's file_storage extension — which lives on the Collector side, not inside an application SDK, and isn't automatic even there. D is nonsensical: a terminated process has no state left to retry from. Providers buffer; Shutdown is the only clean way to flush that buffer, which is exactly why the doc-standard trace pipeline always ends with defer tp.Shutdown(ctx).

Q9. A service is configured with these environment variables:

OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector.observability:4317
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf

Telemetry from this service never arrives at the Collector, and the application logs show no error. What is the most likely cause?

Show answer & explanation

Answer: B. A is a generic guess the stem gives you no evidence for. C invents a spelling error nowhere in the given config. D is flatly false — the entire point of the OTLP environment-variable surface is that it works without touching code. The setup given is the textbook version of the classic OTLP trap: endpoint and protocol are two settings that must agree, and a mismatched pair fails silently from the application's point of view, which is exactly the symptom described.

Q10. Which four pieces of information does a W3C traceparent header carry?

Show answer & explanation

Answer: B. A swaps in "service name" and "sample rate," neither of which the header carries — service name lives on the Resource, and the header carries a sampled bit, not a rate. C confuses traceparent with its neighboring headers: baggage and tracestate are separate headers entirely, and status code isn't propagated at all. D lists real span/resource concepts that simply don't travel in this header. The actual four fields — version, trace ID, span ID, trace flags — are worth being able to point to in the raw string without hesitating.

Q11. An engineer proposes putting a customer's email address into OpenTelemetry baggage so every downstream service in a call chain can look it up without a database call. What is wrong with this plan?

Show answer & explanation

Answer: B. A is false — nothing about the W3C baggage header is encrypted by default; it's a plain key-value header. C borrows a real number from the wrong place: 16 bytes describes a trace ID's length, not any baggage size limit, and is a classic swapped-neighbor fabrication. D directly contradicts the entire purpose of baggage, which exists precisely so downstream services can read it — that's the feature, and it's also exactly why it's the wrong place for anything sensitive.

The OpenTelemetry Collector — 7 questions

☺ Like you're 10: One box, five kinds of Lego brick inside it, and a strict rule: a brick nobody actually plugged into the model doesn't do anything, no matter how carefully you built it.

Twenty-six percent of the paper, and almost all of it is one binary: what receives data, what changes it in flight, what sends it on, and the strict wiring rule that governs all three. Get the five component types and the pipeline-referencing rule solid before anything else here.

Q12. Which of the following is NOT one of the OpenTelemetry Collector's five component types?

Show answer & explanation

Answer: C. "Sampler" sounds plausible because sampling genuinely happens in the Collector — tail_sampling is a real, named component — but it is a processor, not its own component type. The five named types are receivers, processors, exporters, extensions, and connectors; sampling decisions in the SDK use the separate term "Sampler," which is exactly the kind of cross-domain swap this exam likes to test.

Q13. In the config below, the batch processor is defined under processors: but is not listed in the traces pipeline's processor list:

processors:
  memory_limiter: { check_interval: 1s, limit_percentage: 80 }
  batch: { timeout: 5s, send_batch_size: 8192 }

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter]
      exporters: [otlp/backend]

What happens to the batch processor at runtime?

Show answer & explanation

Answer: C. A invents a validation the Collector doesn't perform — a defined-but-unreferenced component is legal config, just inert config. B and D both imagine the Collector being helpful in ways it explicitly is not. The rule that catches everyone: a component that is configured but never referenced in a pipeline under service.pipelines simply does not run — no warning, no data, no error. This is the single highest-yield fact in the whole domain.

Q14. Why is memory_limiter conventionally placed first in a Collector pipeline's processor list, with batch placed last?

Show answer & explanation

Answer: B. A is false and directly contradicts Q13's own lesson — order in the list is execution order, and it matters a great deal. C invents a schema rule that doesn't exist ("memory_limiter" doesn't even sort before "batch" alphabetically, which is itself a tell). D reverses the actual dependency: batching first would mean wasting effort packaging data that a later filter or sampler was always going to throw away. Load-shedding first, batching last, is the standard, deliberate order for exactly the reasons in B.

Q15. A platform team wants to delete the http.request.header.authorization attribute from every span before it leaves the cluster, and mark any span with a 500-or-above response status as an error — without redeploying a single application. Which Collector component is built for exactly this?

Show answer & explanation

Answer: B. batch (A) only buffers and groups data; it never edits it. memory_limiter (C) sheds load under pressure and has no editing capability at all. health_check (D) is an extension — outside the data path entirely, reporting readiness, not touching telemetry content. Redaction and conditional rewriting in flight is precisely the Transforming Data competency, and OTTL statements inside a transform processor are the concrete mechanism for it.

Q16. A platform runs one Collector as a DaemonSet on every node — an "agent" deployment — and nothing else. What can adding a separate "gateway" Collector — a scalable Deployment the agents forward to — do that the agent-only setup cannot?

Show answer & explanation

Answer: B. C is false — agents receive OTLP just as well as gateways; that capability has nothing to do with deployment shape. D fabricates a credential-management feature the Collector doesn't have. The real, named trade-off is B: a gateway centralizes visibility across the whole fleet, which is exactly what per-node work spread across many separate agent instances cannot see or coordinate on its own.

Q17. A platform runs three gateway Collector replicas behind a Service, load-balanced round-robin at the network layer, each independently running tail_sampling. Traces intermittently come out incomplete. What is the most likely cause?

Show answer & explanation

Answer: B. A overreaches into a blanket claim the stem gives no basis for — tail sampling is a normal, supported pattern when wired correctly. C and D both invent unrelated causes with no connection to the described symptom. This is the scaling domain's core lesson: tail sampling and spanmetrics are both stateful across a whole trace, and only routing by trace ID — via loadbalancing — guarantees that state lands in one place; ordinary network load balancing has no notion of "trace" at all.

Q18. Which statement correctly describes a Collector connector, such as spanmetrics?

Show answer & explanation

Answer: B. A misclassifies a connector as a plain receiver, dropping the "joins two pipelines" property that actually defines it. C describes an auth extension, a genuinely different component type. D places it in the wrong system entirely — connectors are Collector-side, never application code. B is the textbook definition: a connector is simultaneously the exporter of one pipeline and the receiver of the next, which is exactly how spanmetrics turns a trace pipeline into a metrics pipeline without leaving the Collector.

🐦 Pip's ten-minute drill

Take the pipeline config from the OTCA blueprint and, without looking anything up, write out the five component types on paper with one real example of each from memory — a receiver, a processor, an exporter, an extension, a connector. Then draw a single pipeline: which of your five examples could legally sit in service.pipelines.traces? (The extension can't — extensions live outside service.pipelines entirely, listed only under service.extensions.) That one omission is most of what Q12 and Q18 are testing.

Fundamentals of Observability — 5 questions

☺ Like you're 10: This is the smallest pile on the test, and it's small on purpose — it's the "why," and the exam mostly wants the "how."

Eighteen percent, covering Telemetry Data, Semantic Conventions, Instrumentation, and Analysis and Outcomes. Reading about observability in the abstract — the three pillars, golden signals, RED and USE — prepares you for this domain and roughly nothing else; 72% of the paper is the two pieces of concrete software above it.

Q19. A candidate studies only the "three pillars of observability," RED, and USE — without touching real SDK setup or Collector config. Which best describes why that candidate is under-prepared for the exam as a whole?

Show answer & explanation

Answer: B. A directly contradicts the published weights — Fundamentals is 18%, the smallest of the three substantial domains. C is false; it's a real domain worth real marks, just not most of them. D fabricates an exam-mechanics rule with no basis. B states the actual shape of the paper plainly: two concrete pieces of software make up nearly three-quarters of it, and abstract observability theory alone only covers the smallest slice.

Q20. A team is deciding whether to build long-lived dashboards and alerts against a particular OpenTelemetry semantic convention attribute. What should they check first?

Show answer & explanation

Answer: B. A is an absurd, made-up rule. C reaches for a tool from an entirely different certification — Argo CD is GitOps tooling with no bearing on OpenTelemetry attribute stability — a cross-domain swap. D is an absolute-language trap that directly contradicts the premise of "stability levels" existing at all; semantic conventions are explicitly described as actively evolving, which is exactly why checking stability first, before building anything long-lived on top, matters.

Q21. A platform team wants every service in the cluster to emit traces immediately, without asking any application team to change a line of code. Which approach fits, and what does it cost compared to hand-written instrumentation?

Show answer & explanation

Answer: B. A contradicts the stem's own requirement — "no code changes" — and overclaims that no alternative exists, when zero-code agents are exactly that alternative. C fabricates a capability for the debug exporter, which only prints telemetry to the Collector's log and has nothing to do with instrumenting code. D is nonsensical — memory_limiter governs load shedding, unrelated to instrumentation entirely. B correctly names the real trade-off named in the Agents competency: broad, zero-effort coverage in exchange for missing the custom spans only a human would think to add.

Q22. A latency dashboard shows a sharp spike in p99 request duration at 14:02. Which OpenTelemetry metric feature is specifically designed to let an engineer jump directly from that spike to one of the actual slow traces that caused it?

Show answer & explanation

Answer: B. Aggregation temporality (A) is about whether a metric's values accumulate as delta or cumulative — a real, separate concept with no linkage to traces. Views (C) rename or re-aggregate metrics; they don't attach trace context. InstrumentationScope (D) just names the emitting library. Exemplars exist precisely to answer "which trace caused this spike," carrying a trace ID on the metric point itself so a click on the graph lands you in the trace.

Q23. OpenTelemetry is sometimes summarized as unifying the "three pillars" of observability. Once traces, metrics and logs share the same Resource and correlated trace-context fields, what actually changes compared to collecting each pillar with an unrelated, uncorrelated tool?

Show answer & explanation

Answer: B. A overstates the result — the three signals stay genuinely distinct types; what changes is how easily you move between them, not that they merge. C is a fabricated causal claim; sampling and correlation are unrelated concerns. D is false — correlation works through shared identifiers, not shared storage; a Collector can happily route traces, metrics and logs to three different backends and correlation still holds via those IDs. B is the real value: navigation between signals, not signal fusion.

Maintaining & Debugging Observability Pipelines — 2 questions

☺ Like you're 10: The smallest pile of all — and it's a fixed toolbox question, not a trivia question. What do you reach for, and what happens when a pipeline gets overwhelmed?

Ten percent, but a fixed, learnable toolkit: backpressure and loss under pressure, and how telemetry stays queryable across a slow, staggered migration of convention versions.

Q24. A Collector's OTLP exporter is configured with sending_queue: { enabled: true, queue_size: 5000 } and no file_storage extension. The downstream backend goes down for twenty minutes and the queue fills completely. What happens to new spans arriving during that period?

Show answer & explanation

Answer: B. A ignores the queue_size: 5000 cap the stem explicitly states — an unbounded queue is precisely what this configuration prevents. C invents an automatic failover the Collector doesn't perform; nothing reroutes silently to another exporter. D fabricates a global receive-pause behavior the Collector has no such feature for. Telemetry pipelines are lossy by design under sustained pressure — the real question is only where the loss is accepted, and here it's the sending queue, once it's full.

Q25. OpenTelemetry semantic conventions rename an attribute between one version and the next. A fleet has some services still emitting the old attribute name and some already emitting the new one. What mechanism lets both be queried together without a coordinated flag-day migration?

Show answer & explanation

Answer: A. B fabricates a normalization capability memory_limiter doesn't have — its actual job is load shedding, unrelated to attribute names. C is the absolute-language trap, directly contradicting the entire reason schema management exists as a competency. D invents a purpose for health_check, which reports readiness, not schema versioning. The real mechanism is the schema URL plus the published schema files describing version-to-version transformations — exactly what keeps old and new telemetry queryable together during a slow migration.

Scoring yourself, and what to do with a miss

☺ Like you're 10: Getting it wrong isn't the problem — not knowing why you got it wrong is. Every miss fits into one of four boxes, and each box has its own fix.

Count your correct answers and divide by 25 to get a rough percentage — this bank is too small to be a statistically precise rehearsal of the real paper, but it's plenty large enough to tell you whether a domain needs more reading before you attempt Mock Exam · Set 1.

⚠ 75% is the real bar — verify it officially

The Linux Foundation's Multiple Choice Exam FAQ states that a score of 75% or higher is required to pass any Linux Foundation multiple-choice exam, OTCA included, even though that figure isn't restated on the OTCA product page itself — see the OTCA blueprint for the full logistics table. This site is an independent, unofficial study resource, not affiliated with the CNCF or The Linux Foundation. Treat 75% here as a useful training target, but confirm the current pass mark, question count, and every other exam-day detail on the official Linux Foundation OTCA page before you register or pay for anything.

When you miss one, resist the urge to just note the correct letter and move on — that teaches you almost nothing. File it instead:

BucketSignatureThe fix
Didn't know itThe explanation names a term or fact that's genuinely new to youContent gap — reread the matching section of the blueprint, then add it to flashcards
Knew it, misread itYou wince reading the explanation because you actually knew thisProcess gap — note which word you skipped (a negative, a qualifier), and underline lead-ins from now on
Confused two neighborsYou picked the concept next door — Collector for SDK, aggregation temporality for exemplarsWrite a one-line discriminator for the pair and keep it somewhere you'll see it again
Guessed and got lucky, or unluckyYou can't explain why the other three options are wrong even though you picked (or didn't pick) correctlyTreat it exactly like a miss — a right answer you can't defend is a gap wearing a disguise

Whichever domain produced the most misses, weigh that against its blueprint weight before deciding where to spend the next study session — a rough score in the 46%-weighted API & SDK domain costs far more than the same rough score in the 10%-weighted debugging domain. The OTCA study plan lays out exactly how to sequence reading, this bank, and the two mock exams across the days you have.

🎬 At Mission Control
🐰

Remy: Twenty-five questions, nine minutes, twenty-three right. New record.

🐘

Ellie: Which two did you miss?

🐰

Remy: Q9 and Q17. Doesn't matter, twenty-three's a great score!

🐘

Ellie: It matters enormously. Q9 was the OTLP endpoint-and-protocol trap — the classic, named gotcha in the heaviest domain on the paper. Q17 was Collector scaling, a much smaller line item. Ninety-two percent overall is hiding a real hole in your biggest domain.

🦊

Foxy: Wait, so a 4317-vs-4318 mistake on the real exam is worth exactly as much as any other question?

👺

Gizmo: Ninety-two is basically a hundred, honestly. Go do the mock exam already, you've clearly got this. 😈

🐢

Timmy: Not until Remy can explain, out loud, why the other three options on Q9 were wrong — not just which letter he picked.

🐰

Remy: …Fine. Give me the explanation panel back.

🐢 Timmy's checkpoint

1. Why does this bank have eleven API & SDK questions but only two on Maintaining & Debugging? 2. In Q9, what are the two settings that must agree, and what happens when they don't? 3. What's the difference between what Q3 (span status) and Q22 (exemplars) are each testing? 4. Name the three distractor families the schematic on this page shows, besides the key itself. 5. What score should you treat as your training target, and where does that figure actually come from? 6. Give one example of a "confused two neighbors" miss from this bank, and its one-line discriminator. 7. What should you do with a question you got right but can't explain?

Check your answers
  1. Because the bank mirrors the OTCA's own domain weights (46/26/18/10) rather than splitting evenly — the API & SDK is the single heaviest domain at 46%, so it earns proportionally more practice.
  2. OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_PROTOCOL must agree: gRPC listens on port 4317, HTTP on 4318. A mismatched pair — a gRPC port with the HTTP protocol set, or vice versa — fails silently, with no error visible to the application.
  3. Q3 tests whether you know which span field records outcome — the status field, distinct from events or SpanKind. Q22 tests a metric feature — exemplars — that links a statistical spike back to one concrete trace. Both are about connecting a symptom to evidence, but at different layers of the data model.
  4. Swapped signal or component (true, but about the wrong one), absolute language ("always," "never," "only"), and confident fabrication (an invented setting, port, or capability that sounds official).
  5. 75%. It comes from the Linux Foundation's own Multiple Choice Exam FAQ, which applies to every LF multiple-choice exam including OTCA — confirm it's still current on the official OTCA page before you rely on it.
  6. Any pair from the bank works, for example: aggregation temporality vs. exemplars — temporality is about how a metric's values accumulate over time (delta vs. cumulative); an exemplar is about linking one data point to a trace. Neither one does the other's job.
  7. Treat it exactly like a miss. Write out, in your own words, why each of the other three options is wrong — a right answer you can't defend is a gap you got lucky on, and it will not stay lucky under exam conditions.