Certifications · CBA · Mock Exam · Set 2

CBA Mock Exam · Set 2

This is the second of two full-length CBA practice papers on this course — fifty original questions, weighted to the official four domains and their published percentages (Customizing Backstage 32%, Development Workflow 24%, Infrastructure 22%, Catalog 22%), split into a clean 16/12/11/11 across those weights and sat in one unbroken, closed-book 90-minute sitting exactly like the real Certified Backstage Associate exam. Every question below is new; none repeat Set 1, so a strong score here confirms you actually know the material — the React, the YAML, the Yarn commands — rather than that you memorized one paper's answer key. Unlike this shelf's infrastructure exams, don't expect a single question about clusters or CRDs: CBA tests one framework you build and own, and this paper tests it exactly that way. Read each stem, commit to an answer, then open the worked explanation directly underneath before moving on. Score yourself against the 75% pass mark at the end, broken down by domain, so a weak spot points you straight back to the exact page that fixes it.

☺ Explain it like I'm 10

Remember the workshop with the front desk — one index of everything, a shelf of instruction booklets, a row of "make me a new one" buttons? This is the second pop quiz about that same front desk, and every single question is brand new. If you already aced the first quiz and you ace this one too, that's real proof you understand how the front desk is actually built — its drawers, its wiring, its front-of-house-versus-back-room split — not proof you memorized quiz one's answer sheet. Fifty questions, ninety minutes, closed book, the same four topics in the same proportions as the real thing. No cluster to break, no terminal required — just you, a clock, and the same monorepo you've hopefully already run yarn dev against at least once.

🦋🐢Your hosts for this topic: Mira the Butterfly & Timmy the Turtle — Mira is this exam, the transformation from raw catalog to a portal someone actually chooses to use, and Timmy holds the stopwatch for the full ninety minutes and won't let you peek at an explanation before you've actually committed to an answer.

Where Set 2 fits in your CBA prep

☺ Like you're 10: First you learn the four topics, then you take the first practice quiz, fix what it found, and only then take this second, trickier-feeling quiz to prove the fix actually stuck.

The intended order on this course is: read CBA — the exam for the four domains and what each actually tests, work through the practice question bank topic by topic with no clock running, sit Set 1 as your first full-paper checkpoint, fix whatever domain it exposed, and only then sit this paper. Set 2 isn't easier or harder than Set 1 by design — it draws on the same four domains in the same 16/12/11/11 proportion — but a handful of these questions lean on the exact edge cases a first pass through the material tends to skate past: a plugin installed on only one side of the frontend/backend split, a Location that has to be deleted rather than the ghost entity it produced, a Dockerfile question that tests whether you actually know which package gets containerized and why. If a domain score sags here in the same place it sagged on Set 1, that's not bad luck twice — that's a real gap, and the study plan tells you how much time to budget for closing it before you book the real thing.

This paper assumes you've read the domain material, not that you're seeing any of it for the first time — if a term below is unfamiliar rather than just rusty, that's a sign to go back to Backstage and The Backstage Portal Model before spending more of your ninety minutes here.

Sit it like the real thing

☺ Like you're 10: No notes, no open tabs, one sitting, ninety minutes on the clock — and answer every question, because a guess has a chance and a blank has none.

The CBA is knowledge-based and multiple choice, not a live coding exercise — there's no IDE to open and no terminal to type into during the exam itself, even though the subject matter is a monorepo you'd normally be typing into constantly. Treat this practice paper, like the real thing, as fully closed-book: close every other tab, put your phone away, and sit the fifty questions below in one sitting with nothing open but this page. As with most closed-book multiple-choice exams, there is little reason to ever leave a question blank — a considered, eliminate-the-obviously-wrong-options guess only ever helps your score, never hurts it. If a question is stumping you past a minute or so, mark your best guess, move on, and come back if time allows at the end rather than letting one item eat a disproportionate share of the clock.

⚠ Verify officially before you book — figures change

The 90-minute duration, the US$250 price, and the 75% passing score used throughout this paper come from the Linux Foundation's own published CBA and Multiple Choice Exam FAQ pages, read in 2026. The fifty-question count and the specific questions themselves are this practice paper's own choice — the Linux Foundation does not publish an official question count for CBA, and no third-party source, including this one, should be treated as if it does. Retake policy, eligibility window, and certification validity all move too. Before you register for the real exam, read the official Linux Foundation CBA page end to end — see CBA — the exam for the fuller logistics table and what's officially confirmed versus not.

Your 90-minute budget

☺ Like you're 10: Fifty questions, ninety minutes — split into five eighteen-minute chunks, so you can tell early if you're falling behind instead of finding out with five questions left.

Fifty questions in ninety minutes is just under two minutes each, and this paper — like the real exam — doesn't spread its harder items evenly across the numbering. The schematic below splits the sitting into five 18-minute blocks of ten questions apiece, so you have a clean pace checkpoint roughly every eighteen minutes, and shows how those fifty questions divide against the real domain weights: sixteen on Customizing Backstage, twelve on Development Workflow, eleven each on Infrastructure and Catalog.

90 minutes · 50 questions · 75% pass mark (38/50) Block 1 Q1–10 · 18m Block 2 Q11–20 · 18m Block 3 Q21–30 · 18m Block 4 Q31–40 · 18m Block 5 Q41–50 · 18m 0 90 min Weighted to the four real CBA domains Customizing 32% 16 questions here Dev Workflow 24% 12 questions here Infra 22% 11 questions here Catalog 22% 11 questions here Every block mixes all four domains No block leans on one topic — Customizing questions appear throughout, not front-loaded into Block 1. The 50-question count is this paper's own choice; the Linux Foundation does not publish CBA's real count.

If a question runs past roughly a minute without a confident answer, don't stall — eliminate what you can, commit to your best remaining option, and move on. Each explanation sits directly under its question rather than in a separate answer key at the end, so the only discipline required is not opening it before you've actually decided.

The paper — 50 questions in exam order

☺ Like you're 10: Fifty questions, five blocks of ten, every topic mixed into every block — read the question, pick one answer (or two, when it says so), then check yourself before moving to the next.

Each question names its domain in parentheses so you can total your score by domain afterward — the real exam won't label them, so once you've sat this cold, consider a second pass with the tags covered to see how many you can still place from content alone. Three questions below are marked (Select TWO); full credit there needs both correct letters.

Block 1 — Q1–10

Q1 (🦉 Infrastructure). What is the Backstage frontend, architecturally?

Check the answer

B. Anything shipped to a browser is public by definition, so the frontend can never hold a secret — every request that needs one goes to the backend over HTTP instead.

Q2 (🦋 Customizing). Which statement correctly distinguishes a Backstage frontend plugin from a backend plugin?

Check the answer

B. The split follows directly from where each half runs — one in the browser, public by nature; one on the server, allowed to hold secrets.

Q3 (🐿️ Catalog). Structurally, what is a Backstage catalog entity?

Check the answer

B. Every entity is a plain, versionable YAML document — the same shape as a Kubernetes manifest, which is exactly why it feels familiar the first time you see one.

Q4 (🦫 Development Workflow). Which command scaffolds a brand-new Backstage project?

Check the answer

B. This is the one command every CBA candidate should be able to type from memory — it produces the Yarn workspace that everything else in this domain operates on.

Q5 (🦉 Infrastructure). What does the Backstage backend own that the frontend never can?

Check the answer

B. Everything that must stay secret lives behind the backend — it's the only half of the split allowed to hold a key.

Q6 (🦋 Customizing). A developer installs @backstage/plugin-kubernetes into packages/app but never installs @backstage/plugin-kubernetes-backend. What's the most likely symptom?

Check the answer

B. "I installed the plugin but the tab is empty" is almost always "you installed one half" — many plugins ship as a matched pair for exactly this reason.

Q7 (🦫 Development Workflow). create-app produces a Yarn workspace containing which two primary packages?

Check the answer

B. The client-server split isn't just a runtime concept — it's baked into the workspace's directory layout from the moment you scaffold it.

Q8 (🐿️ Catalog). What is the conventional filename and location for a component's catalog descriptor?

Check the answer

B. Living at the root of the repo it describes is the whole trick — the description ships with the code, so it stays true instead of drifting out of date somewhere else.

Q9 (🦉 Infrastructure). Which database is appropriate for a production Backstage deployment, and which is development-only?

Check the answer

B. SQLite forgets everything the moment the process restarts — fine on a laptop, unacceptable the moment a real team depends on the catalog persisting.

Q10 (🦋 Customizing). Which two files does "make changes to React code in Backstage App" primarily point to?

Check the answer

B. These are the two files every portal owner learns by heart — one shapes the whole app, the other shapes what a given entity's page looks like.

Block 2 — Q11–20

Q11 (🦫 Development Workflow). Which command resolves the entire Yarn workspace's dependencies after cloning or scaffolding a Backstage project?

Check the answer

A. yarn install resolves every dependency across the whole workspace in one pass, before anything can build or run.

Q12 (🦋 Customizing). Which of these correctly uses a Material UI layout primitive the way Backstage's own component library expects?

Check the answer

B. A custom card that ignores the Material UI Grid looks visibly broken next to everything else on the page, since Backstage's own components sit on top of Material UI throughout.

Q13 (🦉 Infrastructure). In app-config.yaml, what's the difference between app.baseUrl and backend.baseUrl?

Check the answer

B. Two distinct URLs for two distinct halves of the client-server split — they often match, but nothing requires them to.

Q14 (🐿️ Catalog). Which annotation lights up an entity's TechDocs tab?

Check the answer

B. backstage.io/techdocs-ref (commonly set to dir:.) is what tells Backstage where to find and render the documentation for that entity.

Q15 (🦫 Development Workflow). Which command runs both the frontend and backend halves together with hot reload?

Check the answer

B. yarn dev runs both halves at once — frontend on :3000, backend on :7007 — reloading as you edit either side.

Q16 (🦋 Customizing). A developer wants to add a brand-new tab to every Component entity's page. Where do they add it?

Check the answer

B. Per-entity tabs and cards are exactly what EntityPage.tsx exists to control — one new EntityLayout.Route block is literally "customizing Backstage."

Q17 (🦉 Infrastructure). Why should Backstage's GitHub integration use a GitHub App rather than a personal access token belonging to one employee?

Check the answer

B. A credential tied to one person is a liability the moment that person changes teams or leaves — a scoped, org-owned GitHub App doesn't have that problem.

Q18 (🐿️ Catalog). Which annotation wires an entity's Kubernetes tab to real running pods?

Check the answer

B. backstage.io/kubernetes-id is the pointer the Kubernetes plugin uses to find the workloads that actually belong to this entity.

Q19 (🦫 Development Workflow). Why is yarn tsc described as a real gate rather than a linter suggestion, for a Backstage project?

Check the answer

A. There's no "compiles with warnings" state for a Backstage monorepo — a type error is a build failure, full stop.

Q20 (🦋 Customizing). Can a frontend plugin safely store a GitHub personal access token in React component state to call the GitHub API directly from the browser?

Check the answer

B. Encoding isn't encryption, and browser memory isn't private — any secret that reaches the frontend is effectively public. Route the call through the plugin's own backend instead.

Block 3 — Q21–30

Q21 (🦋 Customizing). Backstage's own component library sits on top of which UI toolkit, meaning a custom card should follow the same visual primitives?

Check the answer

B. Grid, Card, Typography, Button — Material UI is the layer everything else in the frontend is built from.

Q22 (🦉 Infrastructure). Which of these is true about "deploying Backstage to production," per the curriculum?

Check the answer

B. Real database, real identity, real secrets — those are the requirements. Kubernetes is one common place to run the resulting container, not a requirement of the competency itself.

Q23 (🐿️ Catalog, Select TWO). Of the three routes by which an entity gets into the catalog, which TWO are explicit — read directly from a human action or static config — rather than crawled automatically on a schedule?

Check the answer

A and B. Manual registration and static locations are both explicit, human-authored routes into the catalog. Automated ingestion (C) is the one that crawls on a schedule instead, and (D) isn't one of the three named routes at all.

Q24 (🦫 Development Workflow). A production container image is built from which Dockerfile, and why not two separate ones for frontend and backend?

Check the answer

B. Production Backstage isn't a frontend container talking to a backend container — it's one process, built from the backend's own Dockerfile, that also serves the compiled frontend assets.

Q25 (🦋 Customizing). Which best describes "customizing Backstage plugins," as distinct from writing an entirely new plugin package from scratch?

Check the answer

A. The competency is about shaping and configuring what already exists — not about the separate skill of authoring a plugin package from zero.

Q26 (🐿️ Catalog). What distinguishes automated ingestion providers from static locations, in terms of what happens when the source disappears?

Check the answer

B. This is exactly why only providers scale to a whole organization — they keep the catalog honest by removing what no longer exists, not just adding what's new.

Q27 (🦉 Infrastructure). What is the "client-server split" fundamentally about?

Check the answer

B. It's a trust boundary, not a speed trick — everything on one side of it is public, everything on the other side can be a secret.

Q28 (🦫 Development Workflow). Which command keeps every @backstage/* package aligned on one release line during an upgrade?

Check the answer

A. Backstage releases often and its packages are meant to move together — versions:bump is the whole upgrade story in one command.

Q29 (🦋 Customizing). A frontend plugin card needs data from an external API (say, DORA-style delivery metrics) to render. What's the correct pattern?

Check the answer

B. The frontend never touches the external credential at all — it only ever talks to its own backend, which is the half of the plugin actually allowed to hold one.

Q30 (🦋 Customizing). Given the snippet <EntityLayout.Route path="/kubernetes" title="Kubernetes"><EntityKubernetesContent refreshIntervalMs={30000} /></EntityLayout.Route> added inside EntityPage.tsx, what does it accomplish?

Check the answer

B. One new EntityLayout.Route block, wired to the right content component — this is what "customizing Backstage" looks like in practice.

Block 4 — Q31–40

Q31 (🦫 Development Workflow, Select TWO). Installing a Backstage plugin that ships as a matched pair typically requires which TWO actions?

Check the answer

A and B. Most plugins ship as a frontend/backend pair, and both halves need their own install command into their own package — skipping either one is exactly what produces an empty tab.

Q32 (🦋 Customizing). A team confirms both halves of a plugin are installed correctly, but a new tab still doesn't appear on the entity page. What's the most likely remaining cause?

Check the answer

A. Installing a plugin's packages and actually rendering it are two separate steps — the second one is a manual edit to EntityPage.tsx or App.tsx that nothing does for you automatically.

Q33 (🦉 Infrastructure). A team's catalog.rules in app-config.yaml allows only [Component, API, Resource], omitting Template. What's the resulting symptom?

Check the answer

B. This is a quiet failure, not a loud one — the templates simply never show up, because the kind that would carry them was never allowed through in the first place.

Q34 (🐿️ Catalog). What are the two annotations Backstage sets on an entity automatically, without a human authoring them by hand?

Check the answer

B. These two are set for you and matter most when debugging — one tells you where an entity came from, the other tells you its source has vanished.

Q35 (🦫 Development Workflow). What's the purpose of running yarn workspace backend start instead of yarn dev?

Check the answer

A. Running one half at a time is a genuinely useful debugging move — and a good reminder that the two halves really are separate processes, not one monolith.

Q36 (🦋 Customizing). Why does the curriculum call out writing a custom card with inline styles instead of Material UI primitives as a problem, even if it "looks fine" on the developer's own screen?

Check the answer

B. A card that skips the shared primitives doesn't just look different — it stops responding to breakpoints the way every card around it does.

Q37 (🦉 Infrastructure). Which statement best captures "understand the Backstage framework" as a named competency?

Check the answer

B. This single fact is what every other domain on this exam derives from — Backstage hands you a codebase, not a values file to override.

Q38 (🐿️ Catalog). An entity's page shows a "processing error" and the entity appears to have stopped refreshing. What's the most likely cause?

Check the answer

A. A broken or unreachable descriptor file is the classic cause of a stuck, erroring entity — troubleshooting starts by checking that file, not the database.

Q39 (🦫 Development Workflow). Does the "Download and install dependencies for a Backstage project with NPM/Yarn" competency cover only the first-time install, or ongoing dependency management too?

Check the answer

B. A real portal's dependency graph keeps changing long after day one — this competency is about that whole lifecycle, not a single command run once.

Q40 (🦋 Customizing). Which of the following is a valid job for a backend plugin specifically, not a frontend plugin?

Check the answer

B. Anything that needs a credential, persistence, or a call to an external system belongs on the backend — the frontend's job is display, not custody of secrets.

Block 5 — Q41–50

Q41 (🐿️ Catalog). A component entity's spec.owner references group:default/platform-team, but that Group was never ingested into the catalog. What does this produce, and how is it fixed?

Check the answer

A. The entity itself is fine — it's the link that goes nowhere. Ingesting organizational data (Groups, Users) before or alongside component data is what prevents this.

Q42 (🦋 Customizing, Select TWO). Which TWO of the four official CBA domains combine to make software development — TypeScript, NPM/Yarn, Docker, React, Material UI — a clear majority of the exam's weight?

Check the answer

A and B. 32% plus 24% is 56% — a clear majority, and both domains name TypeScript, NPM/Yarn, Docker, React, and Material UI explicitly.

Q43 (🦉 Infrastructure). Why is SQLite unacceptable once a whole team, rather than one developer's laptop, depends on the catalog?

Check the answer

B. What works fine for one person's local yarn dev session falls apart the moment persistence and concurrent access actually matter.

Q44 (🦫 Development Workflow). Which sequence correctly produces a deployable container image after code passes yarn tsc?

Check the answer

A. Compile the whole workspace, produce the backend's production bundle, then containerize it — in that order, from the backend's own Dockerfile.

Q45 (🐿️ Catalog). A "ghost" service still appears on the catalog page even though its source repository was deleted weeks ago. What's the correct fix?

Check the answer

B. The entity is downstream of the Location that produced it — remove the source, and the entity that depended on it stops being recreated.

Q46 (🦋 Customizing). What's the functional difference between what App.tsx controls and what EntityPage.tsx controls?

Check the answer

B. One is the app's skeleton, the other is what fleshes out a single entity's page — different scopes, both frequently edited.

Q47 (🦉 Infrastructure). Backstage configuration lives in one layered app-config.yaml. How are local and production-specific values typically applied on top of it?

Check the answer

B. Layered config files plus environment-variable substitution is how the same base configuration adapts across local development, staging, and production without duplicating the whole file.

Q48 (🦫 Development Workflow). Why does it matter for exam prep that "Development Workflow" and "Customizing Backstage" are tightly coupled, rather than separate, unrelated topics?

Check the answer

B. Studying the Yarn commands without also being comfortable editing the TypeScript they build leaves half the picture missing — and vice versa.

Q49 (🐿️ Catalog). Beyond Component, which catalog kinds does the curriculum's "populate catalog" competency name explicitly?

Check the answer

B. The catalog is a graph of several distinct kinds, not just services — knowing the full set (and that Group/User drive ownership) matters for both populating and troubleshooting it.

Q50 (🦋 Customizing). An operations-minded candidate, strong in Kubernetes and YAML from the rest of this course's shelf, still tends to lose the most points on this specific domain. Why?

Check the answer

A. At 32% — the largest single domain — Customizing rewards frontend and TypeScript fluency specifically, a genuinely different skill set from the CRD-and-cluster instincts the rest of this course builds.

Score yourself

☺ Like you're 10: Count your correct answers out of fifty, turn it into a percentage against the real 75% pass mark, then look at which domain cost you the most points — that second part is the part that actually helps.

The Linux Foundation's Multiple Choice Exam FAQ states that a score of 75% or above is required to pass any LF multiple-choice exam, and the CBA is one. Treat 75% here as a target to clear comfortably, not a calibrated prediction of the real sitting — this paper's wording is ours, not the CNCF's, and it isn't tuned to match the real exam's difficulty.

DomainQuestions in this paperYour scoreIf you're under two-thirds, go here
🦋 Customizing BackstageQ2, 6, 10, 12, 16, 20, 21, 25, 29, 30, 32, 36, 40, 42, 46, 50/16Backstage
🦫 Backstage Development WorkflowQ4, 7, 11, 15, 19, 24, 28, 31, 35, 39, 44, 48/12CBA — the exam, Development Workflow section
🦉 Backstage InfrastructureQ1, 5, 9, 13, 17, 22, 27, 33, 37, 43, 47/11The Backstage Portal Model
🐿️ Backstage CatalogQ3, 8, 14, 18, 23, 26, 34, 38, 41, 45, 49/11Missing-catalog-entity drill
Total50 questions/5075% (38/50) to clear comfortably
◆ Key idea

A 38/50 built from four solid domains and a 38/50 built from three near-perfect domains plus a near-zero on Customizing are very different results — the second is one unlucky question draw away from failing the real exam, even though both score the same total here. Customizing alone carries nearly a third of the paper's weight, so always do the per-domain arithmetic, not just the headline number.

Whatever you scored, sort your misses into two piles before you move on, because on a paper like this one they mean different things. A question you got wrong because you genuinely didn't know the API, the file, or the command is a real content gap — reread the linked domain page and redo that exact question cold in a couple of days. A question you got wrong despite roughly knowing the material — you second-guessed yourself, or confused two similarly worded options under time pressure — is a confidence problem, not a knowledge gap, and the fix is more timed reps, not rereading content you already have. Either way, don't retake this exact paper minutes later; go read first, then come back.

Where each domain is taught

☺ Like you're 10: Every question above traces back to one of a handful of pages. Go back to the page, not to the wider internet.

Nothing in this paper examines anything that isn't covered somewhere on this course. CBA is deliberately narrow — one project, four domains — so most of the deep material lives right here on Golden Astronaut; where the topic is general platform-engineering ground rather than unique to Backstage, the fuller comparison lives on the sibling Platform Engineering CBA page.

Beyond the domain pages, the wider revision kit still applies: flashcards for the vocabulary, the self-check quiz for mixed recall, the glossary for anything a question assumed you already knew, and the CBA study plan for how to sequence all of this against your remaining prep time.

🎬 At Mission Control
🦋

Mira: Set 2 down — and unlike Set 1, none of these fifty had seen daylight before.

🦊

Foxy: Which is exactly why I flagged four of my answers as guesses. Guessing isn't cheating, right?

🦋

Mira: Guessing under a clock, with the obviously-wrong options eliminated first, is basically the whole skill. Just never leave one blank.

🐿️

Nutty: I counted — sixteen Customizing questions swallowed nearly a third of my score the moment I fumbled the Material UI ones.

🦫

Benny: Which is why I stopped reading about Grid and Card and just opened EntityPage.tsx and broke something on purpose. Fixed it in ten minutes, remembered it for good.

👺

Gizmo: Or just skip Customizing entirely — it's only React, nobody actually reads that half of the monorepo. 😈

🐢

Timmy: Thirty-two percent of the whole paper, Gizmo — the single largest domain on the exam. Skipping it isn't a shortcut. It's a third of your score, gone.

🐢 Timmy's checkpoint

1. Name the four CBA domains and their weights, and how this paper's 16/12/11/11 question split was derived from them. 2. Which two domains combined make software development a clear majority of the exam, and what percentage do they sum to? 3. Name the three routes by which an entity enters the catalog, and which one is the only one that removes entities automatically when their source disappears. 4. Why does a "ghost" service on the catalog page get fixed by deleting a Location rather than the entity itself? 5. Name one fact this paper states as officially published and one it states as this course's own choice — and where would you go to confirm either before booking? 6. What's the difference between a content gap and a confidence problem when reviewing your misses, and why do they call for different fixes?

Check your answers
  1. Customizing Backstage 32%, Backstage Development Workflow 24%, Backstage Infrastructure 22%, Backstage Catalog 22%. Against fifty questions those weights divide with no rounding at all: 16, 12, 11, 11 — which is exactly why fifty was chosen as this paper's size.
  2. Customizing Backstage and Backstage Development Workflow, summing to 56% — a clear majority built entirely from TypeScript, NPM/Yarn, Docker, React, and Material UI.
  3. Manual registration (a human registers a URL, creating a Location), static locations (URLs under catalog.locations in config), and automated ingestion via entity providers. Only providers remove entities automatically once their source file disappears.
  4. Because the entity is downstream of the Location that produced it — deleting the entity directly leaves the Location in place, which will simply recreate it on the next ingestion pass. Removing the Location is what actually stops it.
  5. Officially published: the 90-minute duration and the 75% pass mark (from the Linux Foundation's Multiple Choice Exam FAQ). This paper's own choice: the fifty-question count and every specific question — the Linux Foundation does not publish CBA's real question count. Confirm both, and everything else, on the official Linux Foundation CBA page before you register.
  6. A content gap is a question you missed because you genuinely didn't know the fact — the fix is rereading the linked page and retrying the question cold later. A confidence problem is a question you missed despite roughly knowing the material, from second-guessing or time pressure — the fix is more timed reps, not more reading, since the knowledge was already there.

That's the full sitting. Reread whichever domain cost you the most, give it a day to settle, then compare this score against Set 1 — if the same domain sagged on both papers, that's the one to fix before you book the real thing.

⏱️ The two CBA papers

Set 1 · Set 2 (you are here). Both are 50 questions on the same 16 · 12 · 11 · 11 domain split, so the scores are directly comparable — sit them a few days apart with real study in between, not back to back. See the CBA study plan for where each paper fits against your remaining prep time, the practice-question bank for shorter untimed drills in between, and CBA — the exam for the full domain writeup and official logistics.