Salesforce · Practice Exam · Summer ’25 Release alignment

Salesforce Certified Platform Developer Practice Exam

Cover all four objectives on Salesforce’s current Platform Developer exam outline — Developer Fundamentals, Process Automation and Logic, User Interface, and Testing, Debugging and Deployment — with objective-mapped questions, instant feedback in Learn mode, and a full timed simulation in Exam mode.

Start 24-hour free trial →

A note on the credential name. Salesforce now calls this credential the Certified Platform Developer. It was previously branded Platform Developer I, and much of the study material and community discussion online still uses the older name, along with the shorthand “PD1”.

It is the same exam and the same credential, and it remains the prerequisite for the Certified Platform Developer II exam. Note also that Salesforce does not assign numeric exam codes to its credentials the way Cisco or CompTIA do — if you see a numeric “exam number” quoted for a Salesforce certification, treat it as an artifact of whoever published it rather than an official identifier.

500+
Practice questions
4
Objective domains
2
Study modes
24h
Free trial

Certified Platform Developer exam at a glance

Vendor
Salesforce
Credential
Salesforce Certified Platform Developer (formerly Platform Developer I)
Blueprint
Salesforce Certified Platform Developer Exam Guide — four objectives weighted 27 / 28 / 25 / 20
Release alignment
Exam questions align to the Summer ’25 Release
Format
60 multiple-choice questions, plus up to five unscored questions
Duration
105 minutes
Passing score
68%
Registration fee
US$200 plus applicable taxes
Retake fee
US$100 plus applicable taxes
Prerequisites
None. Salesforce recommends 1–2 years of developer experience and at least 6 months on the Lightning Platform.
Leads to
Prerequisite for the Salesforce Certified Platform Developer II exam
Delivery
Proctored onsite at a testing centre or in an online proctored environment
References
No hard-copy or online materials may be referenced during the exam
Maintenance
Complete the certification maintenance badge on Trailhead once a year, or the credential expires

Source: Salesforce — Certified Platform Developer Exam Guide. Verify current details with Salesforce before scheduling.

About the Salesforce Certified Platform Developer certification

The Certified Platform Developer credential validates the fundamental programmatic capabilities of the Lightning Platform: developing custom business logic and interfaces to extend Salesforce using Flow, Lightning components, Apex, and Visualforce. Salesforce positions it for developers with roughly one to two years of experience and at least six months working on the platform specifically.

The exam guide is unusually explicit about scope boundaries, and reading them saves wasted study time. A candidate is not expected to administer standard Salesforce applications, develop mobile applications, publish managed products on AppExchange, perform tuning, or design integrations such as callouts, APIs, and email services. If you find yourself deep in integration architecture, you have drifted past this exam and into Platform Developer II territory.

One recent addition is worth flagging: the current outline includes understanding the capabilities of AI products such as Agentforce where appropriate, and the Developer Fundamentals objective explicitly names use cases and limitations of Agentforce for Developers. Material written before that addition will not cover it. Every PowerKram question maps to one of the four current objectives and cites the Salesforce documentation it was derived from, so a weak score becomes a specific reading list rather than a vague instruction to study more. For context on how certification tracks fit together, see our guide to how IT certification tracks are structured.

Certified Platform Developer exam objectives and weights

Salesforce publishes four weighted objectives in the current exam guide. The weights sum to 100%. Process Automation and Logic is the heaviest at 28%, but Developer Fundamentals runs it close at 27% — the two are far more balanced than most summaries suggest, and both deserve serious preparation.

Process Automation and Logic

Declarative process automation capabilities; declaring variables, constants, methods, modifiers, and Apex interfaces; assessing how Apex control flow statements execute; writing SOSL, SOQL, and DML in Apex and predicting what they return; best practices for Apex classes and triggers; governor limits and their implications on Apex transactions; the relationship between Apex transactions, the save order of execution, and recursion or cascading; exception handling including custom exceptions; and combining declarative functionality with Apex.

28%Heaviest objective
Developer Fundamentals

Multi-tenant concepts and design frameworks such as MVC architecture and the Lightning Component Framework; common use cases and best practices for declarative versus programmatic customizations, including governor limits, formula fields, and roll-up summaries; determining, creating, and accessing the appropriate data model including objects, fields, relationships, and external IDs; and the use cases and limitations of Agentforce for Developers.

27%Near-heaviest
User Interface

Preventing user interface and data access security vulnerabilities; displaying and using custom user interface components including Lightning components, Flow, and Visualforce; use cases and best practices for Lightning Web Components covering the framework, benefits, and events; and implementing Apex to work with various page component types including Lightning components, Flow, and Agentforce.

25%
Testing, Debugging, and Deployment

Writing and executing tests for triggers, controllers, classes, and flows using various sources of test data; knowing how and when to use Salesforce developer tools such as Salesforce DX, the Salesforce CLI, and the Developer Console; approaching debugging of system issues and monitoring flows, performance, asynchronous jobs, and batch jobs; and the environments, requirements, and process for deploying code and associated configurations.

20%Smallest objective

Source: Salesforce — Certified Platform Developer Exam Guide, Exam Outline. Weights are as published by Salesforce; figures circulating elsewhere often reflect an older version of the outline.

Who the Certified Platform Developer exam is for

Salesforce describes the audience precisely: someone with experience developing, testing, and deploying basic business logic and user interfaces using the platform's programmatic capabilities. The guide assumes experience with data-driven applications and relational databases, object-oriented languages such as Apex, Java, JavaScript, C#, or TypeScript, familiarity with governor limits, and experience with MVC and component-based architectures.

  • Salesforce developers writing Apex triggers, classes, and Lightning Web Components as their primary work.
  • Administrators moving into development who already know the declarative side and need to formalise the programmatic half — the declarative-versus-programmatic judgement is explicitly tested.
  • Full-stack and enterprise developers coming from other object-oriented languages who need the platform-specific concepts: governor limits, the save order of execution, and multi-tenant constraints.
  • Consultants and technical leads who review or approve custom code and need to judge whether an implementation follows platform best practice.

If you work primarily with declarative tools, the Certified Platform App Builder is the better starting point, and Salesforce recommends (but does not require) the Certified Platform Administrator credential as preparation. If your focus is modern front-end work, the Certified JavaScript Developer credential complements this one well. To see where Salesforce development leads in terms of roles and progression, review the developer career paths this certification supports.

What this Certified Platform Developer practice exam delivers

Learn mode

Get the correct answer, why each distractor fails, and a direct link to the Salesforce documentation behind it — immediately after each question. Most valuable on trigger and governor limit scenarios, where the right answer often hinges on one detail of the execution order.

Exam mode

Sixty questions on a 105-minute timer — the real Platform Developer format. Build the pacing the actual test requires, including time for the code-reading questions that slow most candidates down.

Source-linked explanations

Every answer cites the Salesforce document it derives from — the Apex Developer Guide, LWC Developer Guide, governor limits reference, and the official exam guide — so you can verify and dig deeper rather than memorise.

Score by objective

Results break down across the four current objectives, so you know whether to revisit developer fundamentals, process automation, user interface, or testing and deployment before your next attempt.

Sample Certified Platform Developer practice questions

Ten free questions spread across the four current objectives, each with a full explanation and a source link to the Salesforce documentation it was built from. The complete bank is available with the 24-hour trial.

Question 1 · Process Automation and Logic (28%)

A developer builds an Apex trigger on Opportunity that must update a field on the parent Account whenever an Opportunity is inserted or updated. Which approach follows Salesforce best practice?

  1. A before insert trigger only, since before triggers can modify parent records
  2. An after insert and after update trigger that delegates logic to a handler class
  3. A before insert and before update trigger performing DML directly in the trigger body
  4. An after insert trigger calling a future method to update the Account asynchronously
Show answer & explanation

Correct: B — after insert and after update, delegating to a handler class. After triggers are the correct context when the operation requires DML on related records, because the records being saved already have IDs. Delegating the logic to a handler class follows the widely adopted one-trigger-per-object pattern and keeps the trigger itself thin.

Why not the others: Before triggers (A and C) are for modifying the records currently in the transaction, not for performing DML on related objects. A future method (D) adds asynchronous complexity to a requirement that is synchronous, and future methods carry their own governor limits and cannot be chained.

Source: Salesforce — Triggers and order of execution → Further reading: PowerKram — How IT certification tracks are structured →
Question 2 · Testing, Debugging, and Deployment (20%)

A developer writes a test for an Apex class that makes an HTTP callout, and the test fails with an error stating callouts are not permitted in test methods. What is the correct resolution?

  1. Wrap the callout in Test.startTest() and Test.stopTest() to permit it
  2. Add the SeeAllData annotation to the test class
  3. Implement HttpCalloutMock and register it with Test.setMock()
  4. Omit the callout method from testing and cover only the data processing logic
Show answer & explanation

Correct: C — implement HttpCalloutMock and register it with Test.setMock(). Test methods do not perform real callouts. Implementing the HttpCalloutMock interface lets you define a deterministic response, and Test.setMock() registers it so callouts made in the test context return that response instead.

Why not the others: Test.startTest and Test.stopTest (A) reset governor limits for the enclosed block; they do not enable real callouts. SeeAllData (B) grants a test access to existing org data and is unrelated to callouts. Skipping the method (D) leaves code uncovered and does not address the requirement.

Source: Salesforce — Debugging, testing, and deploying Apex →
Question 3 · User Interface (25%)

A Lightning Web Component placed on an Account record page must display fields from that record without any Apex being written. Which approach fits?

  1. Import the getRecord wire adapter from lightning/uiRecordApi and expose recordId with the api decorator
  2. Call the REST API directly from JavaScript using fetch
  3. Write an AuraEnabled Apex method marked cacheable and query the Account
  4. Read the record from the browser URL and parse the ID manually
Show answer & explanation

Correct: A — the getRecord wire adapter with an api-decorated recordId. The Lightning Data Service wire adapters in lightning/uiRecordApi let a component retrieve record data declaratively. When the component is placed on a record page, the api-decorated recordId property is populated automatically, so no Apex is required.

Why not the others: Direct REST calls from the browser (B) bypass Lightning Data Service and its caching and sharing enforcement. An Apex method (C) works but contradicts the stated no-Apex requirement. Parsing the URL manually (D) is fragile and unnecessary when the framework supplies the record ID.

Source: Salesforce — Lightning Web Components Developer Guide → Further reading: PowerKram — Developer role and career path →
Question 4 · Process Automation and Logic (28%)

A Batch Apex class processes Opportunity records and must make an HTTP callout from its execute method. What is required?

  1. Annotate the execute method with future and callout enabled
  2. Enable an Allow Callouts setting on the Apex job
  3. Chain a Queueable class from the execute method for every batch
  4. Implement the Database.AllowsCallouts interface on the batch class
Show answer & explanation

Correct: D — implement Database.AllowsCallouts on the batch class. A Batch Apex class must declare Database.AllowsCallouts alongside Database.Batchable for callouts to be permitted from start, execute, or finish. Without it the callout throws a runtime exception.

Why not the others: The future annotation (A) cannot be used inside a batch execute method. There is no Allow Callouts setting on an Apex job (B). Chaining a Queueable (C) is a legitimate pattern in other contexts but is unnecessary complexity when the interface exists for exactly this purpose.

Source: Salesforce — Apex Developer Guide, asynchronous Apex →
Question 5 · Testing, Debugging, and Deployment (20%)

A test class covers a Contact trigger that depends on an Account with particular field values. What is the recommended approach to test data?

  1. Use the SeeAllData annotation so the test can read existing org records
  2. Query for any Account already present, since test data is shared across the org
  3. Create the required Account inside the test, typically through a reusable test data factory
  4. Rely on records created by other test classes running in the same deployment
Show answer & explanation

Correct: C — create the data inside the test. Apex tests are isolated from org data by default, which is deliberate: tests must be deterministic and must pass in any org, including a fresh sandbox or a subscriber org. Building the Account in the test, usually via a shared test data factory, satisfies that requirement.

Why not the others: SeeAllData (A) couples the test to whatever data happens to exist and is discouraged for exactly that reason. Querying arbitrary existing records (B) rests on the same false assumption. Depending on other tests' data (D) is unreliable, since each test method runs in its own context.

Source: Salesforce — Testing Apex and test data →
Question 6 · Process Automation and Logic (28%)

A trigger performs a SOQL query inside a for loop that iterates over Trigger.new. A bulk load of 200 records fails. What is the underlying problem?

  1. Triggers cannot contain SOQL queries under any circumstances
  2. The query runs once per record and exhausts the per-transaction SOQL query limit
  3. Trigger.new is not iterable in a for loop
  4. Bulk loads always bypass triggers, so the logic never executes
Show answer & explanation

Correct: B — the query runs per record and exhausts the SOQL limit. Governor limits are enforced per transaction, and a query inside a loop over Trigger.new executes once per record. The remedy is bulkification: query once outside the loop, collect the results into a map keyed by ID, and reference that map inside the loop.

Why not the others: Triggers can contain SOQL (A) — the problem is where it sits. Trigger.new is a list and is perfectly iterable (C). Bulk loads do fire triggers (D); that is precisely why bulkification matters.

Source: Salesforce — Apex transactions and governor limits → Further reading: PowerKram — Certified Platform Developer II exam →
Question 7 · Developer Fundamentals (27%)

A requirement calls for summing a currency field across child records and displaying the total on the parent, where the relationship is master-detail. Which solution should a developer prefer?

  1. A roll-up summary field on the parent object
  2. An Apex trigger on the child object recalculating the total
  3. A scheduled Batch Apex job recalculating totals nightly
  4. A formula field on the parent that queries child records
Show answer & explanation

Correct: A — a roll-up summary field. The exam explicitly tests declarative-versus-programmatic judgement, and roll-up summary fields exist for this exact case on master-detail relationships. The declarative option carries no governor limit cost, no test coverage requirement, and no maintenance burden.

Why not the others: A trigger (B) is the standard answer only when the relationship is lookup rather than master-detail, where roll-up summaries are unavailable. A nightly batch (C) makes the total stale between runs. Formula fields (D) cannot aggregate across child records.

Source: Salesforce — Exam guide, declarative versus programmatic →
Question 8 · User Interface (25%)

A Visualforce page uses a custom controller to display records. Which practice protects against a user viewing records they should not have access to?

  1. Setting the page to render only in Lightning Experience
  2. Declaring the controller class with the with sharing keyword
  3. Adding a JavaScript check that hides restricted rows in the browser
  4. Reducing the SOQL query limit in the controller
Show answer & explanation

Correct: B — declare the controller with sharing. Apex runs in system context by default, ignoring the running user's sharing rules. Declaring a class with sharing enforces those rules for records the class queries, which is the documented approach to preventing data access vulnerabilities in Visualforce and Apex.

Why not the others: Rendering context (A) has no bearing on record access. Client-side hiding (C) is not a security control, since the data has already reached the browser. Query limits (D) constrain volume, not visibility.

Source: Salesforce — Security tips for Apex and Visualforce development → Further reading: PowerKram — Platform administrators certification guide →
Question 9 · Developer Fundamentals (27%)

A developer must load records from an external system and match them to existing Salesforce records without querying for Salesforce IDs first. Which data model feature supports this?

  1. A formula field storing a concatenated key
  2. A master-detail relationship to a staging object
  3. An external ID field marked unique on the target object
  4. A roll-up summary field counting matched records
Show answer & explanation

Correct: C — a unique external ID field. External IDs let records be referenced by a key from an outside system, which enables upsert operations to match on that field rather than the Salesforce ID. The exam outline lists external IDs alongside objects, fields, and relationships as part of determining and accessing the appropriate data model.

Why not the others: A formula field (A) cannot be used as an upsert key. A master-detail relationship (B) defines record ownership and roll-up behaviour, not external matching. A roll-up summary (D) aggregates child records and has no matching role.

Source: Salesforce — SOQL and SOSL reference →
Question 10 · Testing, Debugging, and Deployment (20%)

A team wants source-driven development with scratch orgs, version control, and a command line interface for their Salesforce project. Which tooling does Salesforce provide for this?

  1. Change sets configured between connected orgs
  2. The Developer Console alone
  3. Inline editing in Setup with manual documentation
  4. Salesforce DX with the Salesforce CLI
Show answer & explanation

Correct: D — Salesforce DX with the Salesforce CLI. The exam outline names Salesforce DX, the Salesforce CLI, and the Developer Console as the developer tools a candidate should know how and when to use. Salesforce DX is specifically the source-driven model, supporting scratch orgs and version control as the unit of truth.

Why not the others: Change sets (A) move metadata between connected orgs but are org-driven rather than source-driven and have no version control story. The Developer Console (B) is useful for quick edits and log inspection, not project-scale source management. Inline Setup editing (C) is the practice this model exists to replace.

Source: Salesforce — Exam guide, testing, debugging, and deployment →

Keep going: Learning & Career resources

Platform development rewards depth in both the declarative and programmatic halves of the platform. Two PowerKram hubs back this exam.

Deep dive: exam format, scoring, study path, maintenance, and where this credential leads

Exam format and how it is scored

The exam is 60 multiple-choice questions in 105 minutes, with up to five additional unscored questions randomly mixed in to gather performance data — those have no effect on your result, so treat every question as if it counts. Unusually among major vendors, Salesforce publishes the passing score: 68%. Registration is US$200 with a US$100 retake fee, plus applicable taxes. No reference materials of any kind are permitted during the exam. Read the official exam guide →

Release alignment matters more than most candidates expect

Salesforce ties exam questions to a specific release — the current guide states questions align to the Summer ’25 Release. Because the platform ships three releases a year, a study resource written even a year ago can describe behaviour that has since changed, and newer features may not appear at all. The Agentforce content in the current outline is the clearest example: it is named explicitly in both Developer Fundamentals and User Interface, and older material simply does not cover it. Always check what release your study material targets.

Where candidates lose marks

Three patterns recur. First, treating the exam as pure coding: the declarative-versus-programmatic judgement is tested directly, and the correct answer is frequently the declarative one. Reaching for Apex when a roll-up summary or Flow would do is a wrong answer here even though the code would work. Second, underestimating the save order of execution — questions routinely hinge on the interaction between before triggers, validation rules, after triggers, and flows, and this is knowledge that has to be memorised rather than reasoned out. Third, weak governor limit recall: the limits themselves are testable facts, and bulkification questions assume you know which limit a given pattern will breach.

Realistic study path

Most candidates with the recommended background need six to ten weeks. A workable sequence: work the official Trailhead trail for the exam first, since it is written against the current outline; then read the Apex Developer Guide sections on triggers, order of execution, and governor limits properly rather than skimming them, because those three carry disproportionate weight; build something small in a Developer Edition org that uses a trigger handler, a test data factory, and an LWC, so the patterns are muscle memory rather than theory; and finish with timed practice to expose which objective is lagging. Salesforce Trailhead study trail for this exam →

Maintenance: this credential expires if you ignore it

Salesforce certifications are not permanent. You must complete the Certified Platform Developer maintenance badge on Trailhead once a year, and if you miss the due date the certification expires. This catches people out because the maintenance badge is short and free — it is easy to assume it is optional. It is not. Check the maintenance schedule and set a reminder as soon as you pass. Maintenance requirements in the exam guide →

Where this credential leads

Certified Platform Developer is the prerequisite for Certified Platform Developer II, which moves into advanced Apex, integration, and performance work — the areas explicitly excluded from this exam. Laterally, the Certified JavaScript Developer credential pairs well for front-end depth on Lightning Web Components, and Certified Platform App Builder covers the declarative side for developers who want credentialed breadth across both approaches.

Career outlook for Salesforce developers

Salesforce development remains a distinct specialisation rather than a subset of general software engineering, and that is what sustains demand: the platform's constraints, governor limits, multi-tenant architecture, save order of execution, and declarative-first culture do not transfer from other stacks. Developers who understand both when to write Apex and when not to are consistently more valuable than those who default to code. The credential opens doors in consultancies, ISVs building on AppExchange, and in-house teams at organisations where Salesforce is core business infrastructure. Developer career paths →

Frequently asked questions about the Certified Platform Developer exam

Is Certified Platform Developer the same as Platform Developer I?
Yes. Salesforce renamed the credential to Certified Platform Developer; it was previously branded Platform Developer I and is still widely referred to as PD1. It is the same exam and remains the prerequisite for Certified Platform Developer II. Salesforce does not assign numeric exam codes to its credentials, so any numeric exam number you see quoted is not an official identifier.
What are the Certified Platform Developer exam objectives and weights?
Salesforce's current exam guide lists four objectives: Process Automation and Logic at 28%, Developer Fundamentals at 27%, User Interface at 25%, and Testing, Debugging, and Deployment at 20%. The two largest objectives are closely balanced, so neither can be safely deprioritised.
What is the passing score and format for the exam?
The exam is 60 multiple-choice questions in 105 minutes, with a passing score of 68%. Up to five additional unscored questions may be included to gather performance data; these are randomly integrated and do not affect your result. No reference materials may be used during the exam.
Are there prerequisites for the Certified Platform Developer exam?
There is no formal prerequisite. Salesforce recommends 1 to 2 years of developer experience and at least 6 months on the Lightning Platform, along with familiarity with object-oriented languages, relational databases, governor limits, and MVC or component-based architectures. The Certified Platform Administrator credential is recommended but not required.
How much does the exam cost?
Registration is US$200 plus applicable taxes, and the retake fee is US$100 plus applicable taxes. The exam is delivered proctored, either onsite at a testing centre or in an online proctored environment.
Does the Certified Platform Developer credential expire?
Yes, if you do not maintain it. Salesforce requires you to complete the certification maintenance badge on Trailhead once a year. If you miss the due date, the certification expires. The maintenance badge is short and free, but it is mandatory rather than optional.

Start your free 24-hour Certified Platform Developer practice trial

Full access to the question bank, both study modes, source-linked explanations, and score-by-objective reporting against the current exam outline. No credit card required.

Start free trial →