CCDV-F · Free practice exam · No sign-up
Claude Certified Developer Foundations practice exam (CCDV-F)
Take a free 20-question practice exam for Claude Certified Developer Foundations (CCDV-F) in 40 minutes. You get your score, results by topic and an explanation for every answer option.
Loading your practice exam…
Employer not a Claude partner?
If your employer is not a Claude partner but you want to become Claude certified, enroll with Timo.
Enroll with TimoCovers: Building with Claude, working with the API and testing your integrations.
From practice to certified
Practise free
Take the free 20-question CCDV-F practice exam. No sign-up.
Enroll with Timo (paid)
Enrolled users get 1,180 practice questions in 20 full-length mock exams, plus OpenAI partner courses and badges.
Book your exam
As a Timo consultant, you register for all four Claude certification exams under Amotion AI, which is Certified in the Claude Partner Network. You pay the exam fee to Anthropic.
Independent Timo preparation material. This is not an official exam and is not supplied or endorsed by Anthropic. A practice score is not a prediction of passing.
What the 20 questions cover
| Official domain | Official weight | Free questions |
|---|---|---|
| 1. Agents and Workflows | 14.7% | 3 |
| 2. Applications and Integration | 33.1% | 3 |
| 3. Claude Code | 3.1% | 2 |
| 4. Eval, Testing, and Debugging | 2.6% | 1 |
| 5. Model Selection and Optimization | 16.8% | 3 |
| 6. Prompt and Context Engineering | 11.0% | 3 |
| 7. Security and Safety | 8.1% | 3 |
| 8. Tools and MCPs | 10.6% | 2 |
| Total | 100% | 20 |
Study each topic: CCDV-F study guide.
This free set does not follow the official domain weights. The table shows the actual number of questions in each domain.
Claude Certified Developer Foundations exam guide
The official exam has 53 questions in 120 minutes and a pass mark of 720 on a 100 to 1,000 scale.
All 20 CCDV-F practice questions with answers
These are the same 20 questions as the practice exam above. Take the timed practice exam first, then use this list to check each answer and its source.
Show all 20 questions
-
Question 1
2. Applications and Integration
Your team changed the system prompt and one tool schema of a Claude application that issues customer refunds. The new version passed every development test, and the product owner wants to switch all production traffic to it today. A faulty change would send wrong refunds to real customers. What is the best next step for this release?
Show answer and explanation
Answer: D
Reasoning. A change that can send wrong refunds should reach production gradually, with monitoring of refund results and a ready way back, rather than all at once.
Why A is incorrect. Development tests cannot show every kind of real customer request or integration problem, so a full switch exposes every refund to an untested failure.
Why B is incorrect. Token usage and error rates do not show whether refunds are correct, and every customer is already exposed by the time a problem appears.
Why C is incorrect. Editing the live prompt leaves no fixed version to compare against or roll back to, so a bad refund cannot be traced to the prompt that caused it.
Why D is correct. A small monitored release limits how many refunds a faulty change can affect and gives evidence for either promoting the version or rolling it back.
-
Question 2
6. Prompt and Context Engineering
A bank runs two Claude agents at the same time, each helping an analyst investigate a different customer. Both agents need the same long set of investigation instructions. A developer proposes running both investigations in one shared conversation so the instructions are written only once. Which design keeps each customer's data out of the other investigation while still reusing the instructions?
Show answer and explanation
Answer: B
Reasoning. Reusing instructions and isolating customer data are compatible: the instructions are shared, and each customer's data stays in a separate conversation.
Why A is incorrect. Once both customers' data sit in one conversation, each agent can already see the other customer's details; a prompt instruction cannot undo that exposure.
Why B is correct. The shared instructions can be reused in both system prompts, while each customer's data stays in its own conversation.
Why C is incorrect. Syncing the histories copies each customer's data into the other investigation after every tool call, which is the exposure the bank must avoid.
Why D is incorrect. A shared scratchpad of customer facts puts both customers' data in front of both agents, so it creates the same exposure as a shared conversation.
-
Question 3
1. Agents and Workflows
An onboarding agent opens customer accounts. It pauses while the customer uploads identity documents, and when the task resumes, a different worker process may pick it up. In one incident, a worker created the account, then timed out before recording that the step was done, so the next worker ran the step again. Which TWO changes let any worker resume the task safely?
Choose two.
Show answer and explanation
Answer: A and C
Reasoning. Safe resumption needs two things: progress stored where every worker can read it, and a way to recognize an account action that already ran even though its completion was never recorded.
Why A is correct. A shared store lets whichever worker resumes the task see which documents and approvals are still outstanding.
Why B is incorrect. The first worker may be the one that timed out, so its memory can be lost, and a task tied to it cannot resume elsewhere.
Why C is correct. A recorded outcome and a reused idempotency key let the account system recognize the repeated step and return the earlier result instead of creating a second account.
Why D is incorrect. A fresh operation ID makes the repeated account step look new, so the account system cannot detect the duplicate and may open a second account.
-
Question 4
5. Model Selection and Optimization
A team uses Claude to label customer feedback as positive, negative or mixed. When they send the same borderline comment several times, Claude sometimes returns different but reasonable labels. The manager believes identical prompts should always produce identical results and asks the developer to explain. What should the developer tell the manager?
Show answer and explanation
Answer: B
Reasoning. Claude's output is not fully deterministic, so label reliability has to be measured with repeated, representative tests and managed with clear task rules.
Why A is incorrect. The requests succeed; the labels differ because generation is probabilistic, and filtering duplicates does not tell the team how reliable the labels are.
Why B is correct. Running representative comments many times shows how stable the labels are and where the team needs clearer rules or review.
Why C is incorrect. Nothing makes the first response more correct than later ones; its position in time is not evidence of accuracy.
Why D is incorrect. Temperature 0 does not guarantee identical output: Anthropic notes that results are not fully deterministic even at 0.0, and newer models accept only the default temperature, so consistency must still be measured.
-
Question 5
7. Security and Safety
A reporting tool serves many customer companies. Today it places one administrator API token in the system prompt, and Claude includes that token in tool calls to fetch each customer's data. Which credential design should replace this?
Show answer and explanation
Answer: A
Reasoning. Credentials should be handled by the host, never placed in model context, and scoped to the customer and the minimum access each action needs.
Why A is correct. The host adds the credential outside the model's context, and a short-lived, per-customer scope limits what any single call or leaked credential can reach.
Why B is incorrect. Moving the token out of the prompt helps, but every tool call still carries administrator access to all customers, so one customer's request could reach another's data.
Why C is incorrect. The tokens are still visible in the model's context, and relying on Claude to pick the right one does not enforce which customer a call can reach.
Why D is incorrect. The encrypted token still sits in model-visible text, and the call still runs with administrator access to every customer's data.
-
Question 6
8. Tools and MCPs
A team is building an MCP server for HR. It must offer the company policy handbook, which clients browse section by section, and a payroll calculator that takes an employee's salary and hours and returns take-home pay. How should the server expose these two capabilities?
Show answer and explanation
Answer: D
Reasoning. Choose MCP primitives by what the capability is: resources for data to read, and tools for operations that take inputs and do work.
Why A is incorrect. MCP prompts are reusable message templates; they are not the right primitive for reference data or for running a calculation.
Why B is incorrect. Resources are for reading data by URI; they do not define the calculator's inputs or the fact that it runs a computation.
Why C is incorrect. This reverses the primitives: handbook sections are data to read, while the calculator is an operation that takes inputs and runs.
Why D is correct. Handbook sections are addressable reference data, which fits resources, and the calculator takes parameters and runs, which fits a tool.
Source: modelcontextprotocol.io
-
Question 7
3. Claude Code
A CI pipeline needs to run Claude Code with no interactive terminal, collect output that a script can parse, and prevent any file changes the team has not approved. Which TWO setup choices meet these needs?
Choose two.
Show answer and explanation
Answer: A and B
Reasoning. A reliable CI job needs a non-interactive mode plus enforced tool permissions and machine-readable output.
Why A is correct. Non-interactive mode with
-pis built for automation such as CI jobs.Why B is correct. In a
-prun, tool calls that would need approval are denied unless the allowed-tools list covers them, and JSON output gives the pipeline something reliable to parse.Why C is incorrect. A discarded runner can still push changes to the repository or other systems, so skipping permissions breaks the approval requirement.
Why D is incorrect. Scripted keystrokes are fragile, hide failures, and do not produce output a script can reliably parse.
-
Question 8
4. Eval, Testing, and Debugging
A tool trace shows that the tool returned the correct customer record, yet the phone number written to the database is not in that record. Retrying reproduces the same wrong value. Which TWO debugging steps best show where the wrong number comes from?
Choose two.
Show answer and explanation
Answer: A and C
Reasoning. Finding the origin needs evidence at each boundary, from the tool result through Claude's output to the database write.
Why A is correct. The trace shows each transformation, so the team can find the first point where the wrong number appears.
Why B is incorrect. The failure already reproduces reliably; more retries add noise without separating model output from application code.
Why C is correct. Separate checks show whether Claude introduced the number or the application changed it between the tool result and the write.
Why D is incorrect. Changing the model before locating the fault removes the reliable reproduction the team needs.
-
Question 9
2. Applications and Integration
A Python web service built on an async framework handles each request in an
asynchandler but calls Claude through the SDK's synchronous client. Under load, even requests that do not use Claude stall while Claude is responding. What is the right fix?Show answer and explanation
Answer: A
Reasoning. The stalls come from blocking network calls inside an asynchronous server, so the fix is to make the call non-blocking or move it off the event loop.
Why A is correct. The synchronous call blocks the event loop; the async client or a bounded worker pool lets other requests keep running while Claude responds.
Why B is incorrect. A shorter prompt may cut response time a little, but each call still blocks the event loop, so unrelated requests keep stalling.
Why C is incorrect. A longer timeout leaves the event loop blocked for even longer and does not let other requests run.
Why D is incorrect. Catching exceptions and retrying does not change the fact that the call blocks the event loop while it waits.
-
Question 10
6. Prompt and Context Engineering
An accounts-payable system asks Claude to extract invoice data as JSON and creates accounting records from the results automatically. One response matches the invoice schema exactly, but its tax amount does not fit the tax rate for the region given in the request. What should happen before a record is created?
Show answer and explanation
Answer: A
Reasoning. JSON that matches the schema still needs business-rule checks before it drives an accounting record, because correct structure does not mean correct values.
Why A is correct. A deterministic check of the tax against the region's rate catches a response that has the right shape but the wrong numbers, before it reaches the ledger.
Why B is incorrect. Schema validation only confirms the structure of the JSON; it cannot tell whether the tax amount is correct for the region.
Why C is incorrect. Asking the same conversation to check its own work is not independent, and it can repeat the same mistake.
Why D is incorrect. Correcting at month-end lets a known-wrong entry sit in the accounts when it could have been rejected before it was written.
-
Question 11
1. Agents and Workflows
A warehouse uses Claude for two jobs. Most requests are routine stock checks that always run the same database query. A few are stock discrepancies, where Claude must compare barcode scans, delivery notes and camera summaries, and the steps differ from case to case. Which design gives each job only as much freedom as it needs?
Show answer and explanation
Answer: B
Reasoning. Match the orchestration to the uncertainty of each job: a fixed workflow for the predictable path and an agent for the cases whose steps cannot be known in advance.
Why A is incorrect. Routine stock checks always follow the same query, so letting an agent plan them adds cost and unpredictability with no benefit.
Why B is correct. The fixed workflow keeps common stock checks predictable, and the agent is used only for discrepancies, where the steps genuinely vary.
Why C is incorrect. Discrepancies need different steps from case to case, which one fixed sequence cannot handle, and running every comparison on routine checks wastes work.
Why D is incorrect. One agent for everything gives routine checks needless freedom, and direct write access adds risk that neither job requires.
-
Question 12
5. Model Selection and Optimization
A dashboard shows a long Claude analysis to the user while it is being written. After the response finishes, the backend must save one complete copy of it to the conversation history. How should the application receive and store the response?
Show answer and explanation
Answer: D
Reasoning. Streaming serves the live display, while the history should store one complete message only after the stream has finished.
Why A is incorrect. Deltas are fragments of one response, so saving each as its own message breaks the conversation history into many partial turns.
Why B is incorrect. The Messages API streams over HTTP using server-sent events, so a WebSocket is not needed.
Why C is incorrect. A non-streaming request cannot show the analysis while it is being written, which the dashboard requires.
Why D is correct. Server-sent events let the dashboard show text as it arrives, and saving the accumulated final message keeps one complete record.
Source: platform.claude.com
-
Question 13
7. Security and Safety
A Claude Code
PreToolUsehook checks shell commands. When a command touches thesecrets/directory, the hook prints "blocked" and exits with code 0. Traces show the command still runs. What change and test would make this a working guardrail?Show answer and explanation
Answer: D
Reasoning. A hook guardrail works only if its result actually blocks the call, and only a test that checks for the side effect proves it does.
Why A is incorrect. The hook still exits with code 0, so the command still runs; the log only records that it was not stopped.
Why B is incorrect. A
PostToolUsehook runs after the command, so the secrets have already been accessed when it fires.Why C is incorrect. A prompt rule depends on the model's compliance, and the hook still allows the command to run.
Why D is correct. Exit code 2 tells Claude Code to block the tool call, and a test that checks the secrets directory proves the command never ran.
-
Question 14
8. Tools and MCPs
Your application defines a
check_stocktool that your own code implements. Claude returns a response withstop_reasonset totool_useand atool_useblock asking for a stock lookup. What should your application do next?Show answer and explanation
Answer: B
Reasoning. Tool use is a protocol: Claude requests the call, and the host validates it, runs it and returns a correlated
tool_result.Why A is incorrect. Claude only requests a client tool; your code must run it, so no result arrives unless your application supplies it.
Why B is correct. Client tools run in your code, and the
tool_resultblock with the matchingtool_use_idcontinues the same tool exchange.Why C is incorrect. A new conversation loses the request that asked for the lookup, so Claude cannot connect the result to its tool call.
Why D is incorrect. The result belongs in a
tool_resultblock in the conversation; moving it into the system prompt breaks the link between the request and its result.Source: platform.claude.com
-
Question 15
3. Claude Code
A repository has six short conventions that should apply in every Claude Code session. It also has a 20-page database migration procedure that the team uses twice a year. How should the team set these up?
Show answer and explanation
Answer: A
Reasoning. Keep always-on guidance short in CLAUDE.md, and package long, occasional procedures so they load only when needed.
Why A is correct. CLAUDE.md keeps the short conventions in every session, and the Skill loads the long procedure only when a migration is under way.
Why B is incorrect. CLAUDE.md is loaded in every session, so a 20-page procedure used twice a year would take up context almost all the time for no benefit.
Why C is incorrect. Personal settings are not shared or reviewed through the repository, so copies drift and new contributors do not get them.
Why D is incorrect. A subagent's prompt applies only when that subagent runs, so the conventions would not reach every session.
-
Question 16
2. Applications and Integration
Two teams work on a shared service that extracts order details with Claude. One team changes the JSON schema of the service's response; the other changes how the service retries failed calls. Each branch passes its own tests, but the merged code fails. Which TWO practices would most directly prevent this kind of failure?
Choose two.
Show answer and explanation
Answer: B and D
Reasoning. The failure happens at an interface both teams share, so the fixes are an executable check of that interface and review of changes to it by both teams.
Why A is incorrect. Separate schema copies are what allowed the two branches to drift apart and fail together after the merge.
Why B is correct. Contract tests check the shared response format directly, so a change that breaks the other team's assumptions fails before the merge.
Why C is incorrect. Each branch already passes its own tests; running them again does not test how the two changes interact.
Why D is correct. Cross-team review makes one team's interface change visible to the other before it is accepted.
-
Question 17
6. Prompt and Context Engineering
An agent reviewing a long legal case is close to its context limit, mostly because of raw results from searches it has already finished. The final report still needs three source document IDs, and a partner's approval is still pending. When the conversation is compacted, what must the summary keep?
Show answer and explanation
Answer: A
Reasoning. Compaction should drop bulk the agent no longer needs while keeping the evidence it still depends on and any unfinished steps such as pending approvals.
Why A is correct. These are the facts and open state the agent needs to finish the report and to wait for the partner's approval.
Why B is incorrect. The raw search results are what filled the context; keeping them defeats the compaction, and dropping the decisions loses the case state.
Why C is incorrect. The latest message alone loses the source IDs, the decisions and the pending approval that the report depends on.
Why D is incorrect. Leaving out the pending approval can lead the agent to finish the report without the partner's sign-off.
Source: platform.claude.com
-
Question 18
1. Agents and Workflows
A payroll team always follows the same four steps: check the employee record, fetch approved hours, calculate deductions, and submit the payment. Any exception must stop for a person to review before submission. Which design gives the clearest control over this fixed sequence?
Show answer and explanation
Answer: A
Reasoning. The steps are known and the human review is mandatory, so a deterministic workflow with an explicit exception branch is the right foundation.
Why A is correct. The workflow enforces the known order in code and sends exceptions to a person before anything is submitted.
Why B is incorrect. Letting an agent choose the next step adds variation to a process whose order is already fixed.
Why C is incorrect. Agents that update one record whenever they are ready can conflict and do not guarantee the required order.
Why D is incorrect. A prompt can describe the rules, but it does not control the order of steps or force the exception stop.
-
Question 19
5. Model Selection and Optimization
A company has two Claude endpoints. One pulls five fields from invoices and must respond within one second. The other combines conflicting audit evidence into findings; a missed item there is costly, but speed matters less. How should the team choose models for them?
Show answer and explanation
Answer: A
Reasoning. Model choice is workload-specific: each endpoint's model should be chosen from measured quality, latency and cost on that endpoint's real task.
Why A is correct. Testing each workload separately lets the team meet the invoice endpoint's latency target and the audit endpoint's quality need, with different models if needed.
Why B is incorrect. The most capable model may miss the one-second target on simple invoice extraction and costs more than that task needs.
Why C is incorrect. A fast model may miss conflicting evidence, and a second pass by the same kind of model does not guarantee the audit quality the team needs.
Why D is incorrect. A public benchmark does not measure either of these tasks, so it cannot show which model meets each endpoint's requirement.
-
Question 20
7. Security and Safety
An agent reads project issues through an MCP resource. One issue description contains instructions telling the agent to export all customer records. The agent is allowed to read issues, but exporting customer data requires separate authorization. How should the application handle this?
Show answer and explanation
Answer: C
Reasoning. Untrusted content and the authority to act must be separated at a boundary the backend enforces, not left to the model's judgment.
Why A is incorrect. Arriving through the company's MCP server does not make issue text an authorized instruction; anyone who can file an issue can write it.
Why B is incorrect. Claude cannot verify who wrote the text or what they are allowed to do, and persuasive text can mislead it.
Why C is correct. Claude can still read and summarize the issue, while the backend refuses any export that lacks the required authorization.
Why D is incorrect. Giving the tool broader database access increases what a successful injection could reach, and it does not enforce export authorization.
Source: modelcontextprotocol.io
Free practice vs paid Timo enrollment
| Feature | Timo | Practice-only sites |
|---|---|---|
| Free 20-question practice exam, no sign-up | Free | Varies |
| Full-length mock exams for all four Claude certifications | With paid enrollment: 20 exams, 1,180 questions | Varies |
| Register for official Claude exams | With paid enrollment: you register under Amotion AI, which is Certified in the Claude Partner Network | Not offered |
| OpenAI learning | With paid enrollment: OpenAI partner courses and badges for ChatGPT, Codex and API | Not offered |
| Expert profile and job matching | With paid enrollment | Not offered |
Timo is a brand of Amotion AI. Amotion AI is Certified in the Claude Partner Network and an OpenAI Select Partner.
Claude exam fees are paid separately to Anthropic when you book an exam. Joining Timo does not guarantee certification, a project or income.
Enroll to get 5 full-length CCDV-F mock examsSample questions with explanations
This section has three original worked sample questions for Claude Certified Developer – Foundations (CCDV-F). They are independent study material, not official Anthropic questions, recalled exam content, a full timed exam, or a prediction of your result. Choose an answer before reading each explanation, then identify which part of the application must enforce it.
Developer practice should help you locate errors in both the model’s response and the software around it. The questions focus on clear inputs, enforced permissions, validated outputs and recovery paths that preserve what actually happened.
A Claude application tells a customer an item is out of stock. The sentence is clear, but the inventory service never returned a stock count: its request timed out. The defect began before Claude wrote the answer, when application code treated a failed request as an empty result.
Timo is run by Amotion AI. These original Developer practice questions focus on where application code must enforce permissions, validate data and preserve a failed tool call.
What you are practising at Developer level
CCDV-F concerns building and integrating Claude applications, agents, and workflows. The provider's Developer Foundations guide describes areas including integration, testing, debugging, security, model choice, and the instructions and context supplied to the model. The Timo Developer Foundations guide summarises the role.
Use the provider’s certification listing and current guide to confirm eligibility and assessment details before planning your exam.
The questions focus on implementation responsibilities. A tool is a function the application makes available for Claude to request, such as an order lookup. Its contract defines the inputs accepted, the results returned, and the errors callers must handle. A good contract makes the safe behaviour explicit, while application code enforces it.
Practice question 1: a safer tool contract
An authenticated customer uses an order-support agent that can call get_order_status. Authentication means the application has verified the customer's identity through its sign-in process. The tool's first version accepts one free-text field called details. Claude sometimes includes several numbers in that field, and the tool selects the wrong order.
The customer should be able to read only their own orders, and no order contents may reach Claude unless that rule is met. The application holds the signed-in identity in its session. Any value Claude puts in a tool call comes from the chat, where a customer can type any order or customer number. Which change best improves the interface while enforcing that access rule?
Show answer and explanation
Best answer: D. A typed input has a defined shape, such as an order identifier string in the expected format, rather than an unrestricted description from which the tool must guess. That reduces ambiguity, but it does not establish permission. The service must also check that the requested order belongs to the authenticated principal: the user identity established by the trusted sign-in process.
That identity should come from the application session, not from a customer_id invented or repeated by Claude. The server can enforce ownership through an authorized lookup that combines the requested order ID with the signed-in customer's scope. No order contents should be returned to Claude unless the check succeeds.
A typed error is a distinct result the application can recognise, such as ACCESS_DENIED, rather than a vague sentence mixed with normal data. The application can then offer the appropriate recovery without exposing another customer's order. Where policy requires it, the user-facing wording can avoid revealing whether that order exists.
Why the alternatives are weaker: A sends the order record to Claude before anyone checks the owner, so another customer's order has already reached Claude even if the reply is blocked. B makes the field less ambiguous, but nothing in it checks that the order belongs to the signed-in customer. C checks the order against a customer_id that Claude took from the chat, where the customer can type any number. A model-supplied customer identifier is not evidence that the signed-in user may access the order.
Practice question 2: structured output at an API boundary
A service asks Claude to extract invoice fields for another application. The receiving application expects JavaScript Object Notation (JSON), a structured text format made of named fields and values, and requires dates in a particular format. Most responses are usable, but some include an extra explanatory sentence or an unsupported date representation.
The receiving application cannot convert other date formats or remove extra text, so it needs one record per invoice that already matches its format. Any invoice that cannot be extracted in that format must be flagged the same day for a person to check. An application programming interface (API) defines how software components communicate. Its boundary is where information passes from one component to another under that contract. Which implementation provides the strongest protection at this boundary?
Show answer and explanation
Best answer: A. A schema defines the expected fields, types, and restrictions. The validator checks the returned data against those rules before it enters the consuming workflow. Parsing only establishes that text can be read as JSON; validation establishes whether that JSON meets the contract.
For instance, a response can be valid JSON while containing a date the receiving service cannot interpret. A required key can also be present with the wrong type or an unusable value. The application should distinguish those conditions rather than treating successful parsing as acceptance.
Some failures are correctable: the service may ask for a response in the required format and validate it again. Keep that retry bounded so persistent failures do not create an endless loop. If the source invoice itself has an ambiguous date, a formatting retry should not guess its meaning. Route that uncertainty for review. Structural validity also does not prove the extracted amount or date matches the invoice; source accuracy remains a separate check where the workflow requires it.
Why the alternatives are weaker: B hands dates to the receiving application to convert, but the stem says it cannot convert other date formats, and checking that keys exist does not check their values. C gives Claude a helpful example, but nothing checks the dates, and a failed invoice waits for a weekly engineering review instead of being flagged the same day. Handle parsing failures before downstream use, then retain the evidence for investigation. D keeps useful debugging evidence, but passes two versions to an application that needs one record in its own format. The producing service should provide one validated result or a clear failure state.
In the Claude API, structured outputs can constrain the response to a JSON schema; strict tool use constrains tool inputs. Use those features where supported, then check completion status and business meaning. A refusal or a response cut off at the token limit can require separate handling. A correctly formatted date such as 2026-04-05 still does not resolve whether an invoice showing 04/05/2026 meant 4 May or 5 April without a known date convention.
Practice question 3: isolating an intermittent failure
An agent occasionally tells customers that inventory is unavailable. The inventory tool can return a positive stock count, a confirmed count of zero, or a timeout when the service does not respond in time. The integration currently maps zero stock and timeout to the same “unavailable” state before sending the result to Claude.
Recorded request traces show that timeouts account for some of the misleading replies, and the inventory service sometimes stays unavailable for several minutes. The team wants customers never to be told an item is out of stock unless the service confirmed zero stock. Which test and code change should come first?
Show answer and explanation
Best answer: C. A zero-stock response is evidence about inventory. A timeout is evidence that the application did not obtain an answer. Once integration code collapses those outcomes into one value, Claude cannot reliably reconstruct the distinction.
An integration test exercises the connection between components. Here, controlled tool responses should verify that the application preserves a positive count, a confirmed zero, a timeout, and an invalid response as different outcomes. A malformed response, such as a stock count in an unexpected format, must not silently become zero either.
The user message can then follow the state: “There are five available” for a supported count, “This item is currently out of stock” for a confirmed zero, and “I couldn't check stock just now” for a failed lookup. Those examples illustrate the required distinction; exact wording can vary without changing the underlying meaning.
Why the alternatives are weaker: A gives Claude examples of a difference the integration has already erased, because zero stock and timeout reach Claude as the same state. B helps with short delays, but when the service stays down for several minutes both attempts fail and the customer is still told the item is out of stock. D finds affected customers after they have received the wrong answer; it does not correct the state mapping that causes it.
Apply the same distinction to a log search
An empty successful search means that no matching entries were returned within the query’s filters, time window and accessible sources. It does not prove that no event happened or that no logs were recorded. A permission error establishes neither presence nor absence.
| Tool outcome | What the application may report |
|---|---|
| Success; zero matches in service A, 10:00–10:05 UTC | No matching entries were returned for that service and time window. |
| Access denied | The application could not inspect that log source. |
| Timeout | The query did not finish; the matching entries remain unknown. |
Keep the outcome and query scope in the tool result. The Claude Messages API supports tool execution errors through is_error. Application code must still supply the correct status; an error flag cannot repair a timeout that your integration already converted into an empty success.
How to review your result
For every question, identify the input or output contract, the possible failure, and the layer responsible for handling it. In the order example, ownership belongs at the server boundary. In the invoice example, acceptance belongs in validation before downstream use. In the inventory example, the integration must preserve the tool outcome before text generation.
Then name a test that would fail under the original design and pass under the revised design. For ownership, use a signed-in test customer requesting another test customer's order. Verify that the agent receives no protected contents. For inventory, hold the prompt constant while supplying a timeout fixture. A fixture is a controlled sample response used to make the case repeatable.
Build one small preparation exercise
This Python example isolates the inventory-state mapping. It uses invented tool responses and makes no API request. Run it locally, then use the same cases against your own integration.
def stock_state(reply):
if not isinstance(reply, dict):
return "invalid_response"
status = reply.get("status")
if not isinstance(status, str):
return "invalid_response"
if status == "ok":
count = reply.get("count")
# Reject booleans, strings and negative counts.
if type(count) is not int or count < 0:
return "invalid_response"
return "in_stock" if count > 0 else "out_of_stock"
return {
"timeout": "unknown",
"denied": "access_denied",
}.get(status, "invalid_response")
cases = [
({"status": "ok", "count": 5}, "in_stock"),
({"status": "ok", "count": 0}, "out_of_stock"),
({"status": "timeout"}, "unknown"),
({"status": "denied"}, "access_denied"),
({"status": "ok", "count": "0"}, "invalid_response"),
({"status": "ok"}, "invalid_response"),
({"status": "ok", "count": -1}, "invalid_response"),
({"status": "ok", "count": False}, "invalid_response"),
]
for reply, expected in cases:
assert stock_state(reply) == expected, (reply, expected)
print("8 state-mapping checks passed")
The checks establish only the behaviour of this small mapping function. They do not test authentication, network handling, Claude or a production inventory service. In an integration test, also inspect the final message: a denied request must reveal no protected stock data, and a timeout must never become an out-of-stock claim. Hold the prompt constant while changing the controlled tool result so you can locate the first step that changes its meaning.
Retain the tool response, interpreted state and final message as separate test evidence. Use the Claude certification readiness checklist to choose further preparation that explains those implementation boundaries.
Register for the CCDV-F exam · how to get Claude certified
CCDV-F practice exam FAQs
Is this a complete CCDV-F practice exam?
No. It is an independent 20-question practice exam with three worked sample questions. It does not claim full blueprint coverage.
Do these questions come from the live exam?
No. Timo wrote these scenarios independently and does not publish recalled, copied, or protected exam items.
What should I practise beyond multiple-choice questions?
Build a small integration with a narrow tool contract, server-enforced access, validated output, and controlled failures. Show both what the application knows and what the user sees.
Should I memorise SDK methods?
A software development kit (SDK) provides tools and methods for building an integration. Use the current provider guide to set your study scope. Alongside relevant product details, practise explaining where permissions are enforced, why an output is accepted, and how an operation recovers from failure.
Can a high practice score predict whether I will pass?
No. A 20-question practice exam cannot reproduce the breadth or conditions of the official exam. Review the questions you missed and any correct answers you guessed. Study those topics before another attempt.
How can Timo help me prepare for CCDV-F?
Use these worked questions and the linked Developer study guide to practise authorization, validated extraction and distinct tool-result states. Keep a small test showing the tool result, application state and user message.
For Timo’s learning route, read the current enrollment, agreement and account process, then submit your profile for review. Enrolled consultants sign a consulting agreement with Amotion AI, which is Certified in the Claude Partner Network, register for their Claude exam with their Amotion AI consultant email, and use their expert profile and Timo Scout AI to find enterprise AI projects. Provider eligibility and exam requirements still apply; completing Timo practice does not award an Anthropic credential.
How many questions are on the CCDV-F exam?
The CCDV-F exam has 53 questions in 120 minutes. You need a scaled score of 720 out of 1,000 to pass.
Are there CCDV-F exam dumps?
Dumps claim to be recalled live exam questions. Anthropic's certification policy treats cheating and theft of exam content as misconduct that can lead to an invalidated result. Timo writes original practice questions and does not publish, buy or use recalled exam questions.
How do I book the CCDV-F exam?
Register and pay in Anthropic Partner Academy with a Claude Partner Network account, then book with Pearson VUE. See the registration steps.
Latest Claude jobs
225 open jobs ask for Claude skills. Updated 7 Nov 2026.
- Lead Product Manager, Agentic CommerceImprint
$190k to $210k a year
AI agentsLLMs and generative AIClaude and Anthropic
- Senior AI/ML EngineerTempo
AI agentsLLMs and generative AIRAG and retrievalMCP
- Staff+ Software Engineer, STEMAnthropic
EvaluationsClaude and AnthropicOpenAI and GPT
- AI Enablement LeadCrux Climate
$126k to $145k a year
Claude and Anthropic
- AI Operations EngineerCoast
$150k to $180k a year
AI agentsLLMs and generative AIMCPEvaluations
By Amotion AI


