What the Salesforce Certified Platform Developer I exam covers
- Developer Fundamentals166 questions
- Process Automation and Logic232 questions
- User Interface180 questions
- Testing, Debugging, and Deployment160 questions
Free Salesforce Certified Platform Developer I practice test questions
A sample of 10 questions with answers and explanations. Sign up free to practice all 738.
-
A developer wants to quickly test a SOQL query and view the returned records in a grid, without writing any Apex code. Which Developer Console feature should be used?
- ALog Inspector
- BQuery EditorCorrect
- CCheckpoints
- DExecute Anonymous window
✓ Correct answer: BQuery Editor lets a developer type a SOQL or SOSL statement and see the matching records in a results grid immediately, with no Apex class, trigger or deployment involved. The concept being tested is that Developer Console separates ad hoc data lookups from code execution and log analysis, each in its own tab. The stem asks for a no-code way to view query results, which points at the one tool built for reading data rather than for running or replaying logic. Takeaway: reach for Query Editor when the goal is viewing records, not running logic.
Why the other options are wrong- ALog Inspector is for stepping through an existing debug log, not for running a query.
- CCheckpoints capture variable state at a line of executing Apex; they do not run standalone queries.
- DExecute Anonymous runs Apex code blocks; a raw SOQL statement is not valid Apex on its own.
-
What is the main purpose of the 50,000-row SOQL query limit per transaction?
- ATo cap the number of custom objects per org
- BTo restrict daily API call volume
- CTo enforce org-wide test coverage minimums
- DTo prevent one transaction retrieving excess rowsCorrect
✓ Correct answer: DThe 50,000-row limit stops one transaction from retrieving an excessive number of records through SOQL. The key concept, again, is protecting the shared multi-tenant platform: this row limit works alongside the 100-query cap to bound the total data volume a single transaction can pull back, keeping performance stable for every org sharing the same infrastructure. This question is testing recognition of a specific, named governor limit and its purpose, not object counts, API volume, or test coverage, all of which are governed separately. Remember: 100 queries controls how many SOQL statements run, while 50,000 rows controls how much data those statements can return in total.
Why the other options are wrong- AThe number of custom objects allowed in an org is a separate metadata limit, unrelated to how many rows a query can return.
- BDaily API call volume is tracked and capped independently of the per-transaction SOQL row retrieval limit.
- CMinimum test coverage requirements for deployment are unrelated to how many rows a single transaction's SOQL queries can retrieve.
-
In Apex, how does a developer reference a custom lookup relationship field to traverse from a child record to its parent, rather than referencing the raw foreign key Id?
- AAppend __c to the relationship name
- BAppend __r to the relationship nameCorrect
- CAppend __pc to the field name
- DUse the field label directly
✓ Correct answer: BThe __c field on the child stores only the parent's Id. Salesforce also generates a separate relationship name for that same field, always ending in __r, and that is the name used to walk to the parent record and read its fields, as in Account__r.Name. The pair behaves identically in SOQL and in Apex dot notation: reach for __c when the Id itself is what you need, for a filter or an assignment, and for __r when you need anything else that lives on the parent record.
Why the other options are wrong- AAppending __c names the field that stores the parent's Id value, not a relationship, so that name cannot be used to reach the parent's other fields.
- C__pc is not a valid Salesforce suffix or naming convention for any relationship or field.
- DField labels are display text only; Apex and SOQL require the actual API name or relationship name, not a label.
-
Which two statements describe Data Loader's ability to relate imported child records to existing parents via external ID during a load? (Choose TWO)
- ARequires the Data Import Wizard instead
- BMaps the child field to the parent external IDCorrect
- CRelates records without needing the parent IdCorrect
- DOnly works if the parent has zero records
- EBypasses all field-level security checks
✓ Correct answer: B, CDuring CSV field mapping, Data Loader lets a developer point a relationship field at the parent object's external ID column instead of its 18-character Salesforce Id. That external-ID-based mapping means the import file never needs to carry the actual parent Id at all; Data Loader resolves the matching parent record from the external ID value present on each row. Together these describe the standard technique for relating child records to existing parents during a migration, and they are the reason external ID fields are worth defining before any load begins.
Why the other options are wrong- AThis external-ID-based relating capability is available directly in Data Loader's own field mapping dialog; it is not exclusive to the Data Import Wizard.
- DMatching by external ID works regardless of how many existing parent records there are; the parent object is not required to be empty.
- EField-level security is still enforced for the running user during any load operation; external ID mapping does not bypass those checks.
-
Given a Set<String> named validStages populated in Apex, which SOQL clause correctly filters Opportunities to only those stages?
- AWHERE StageName IN validStages
- BWHERE StageName = :validStages
- CWHERE StageName CONTAINS :validStages
- DWHERE StageName IN :validStagesCorrect
✓ Correct answer: DWHERE StageName IN :validStages combines the two things this filter needs: the IN operator, which matches a field against any value in a collection, and the colon prefix that binds the local Apex Set<String> into the inline SOQL query. Both parts are load-bearing. Without the colon, inline SOQL has no way to see an Apex variable and the query will not compile; and an equals comparison expects exactly one value rather than a whole collection. Matching a field against a set of discrete values is what IN plus a colon-bound variable is for.
Why the other options are wrong- AReferencing an Apex variable inside inline SOQL always requires the colon bind syntax; without it, the query will not compile.
- BThe equals operator expects exactly one comparison value, not a whole collection of possible matching values.
- CCONTAINS is not the correct SOQL operator for matching a field against a set of discrete values, IN is.
-
Which TWO statements about try/catch/finally in Apex are correct? (Choose TWO)
- AA try block can exist without any catch block and without a finally block
- BAt least one catch block is required whenever a try block is used
- CIf an exception is thrown and no matching catch block exists, the finally block is skipped entirely
- DThe finally block executes whether or not an exception was thrown, and whether or not it was caughtCorrect
- EMultiple catch blocks can be chained to handle different exception types differentlyCorrect
✓ Correct answer: D, EThe finally block executes no matter what happens in the preceding try and catch: whether the try completed normally, threw an exception that was caught, or threw an exception that no matching block handled and which continues to propagate. That unconditional guarantee is what makes finally the right place for cleanup work. Apex also supports chaining multiple catch blocks after a single try, each targeting a different exception type so different failures can be handled differently. They must be ordered from the most specific subtype down to the general Exception type, otherwise the broad catch would swallow everything beneath it.
Why the other options are wrong- AA try block in Apex must be followed by at least one catch block, a finally block, or both; it cannot stand completely alone.
- BA try block only needs a finally block to be valid; a catch block is not strictly required if finally is present.
- Cfinally still executes even when an exception is not caught by any block; it runs before the exception continues propagating.
-
A batch data load inserts 200 Account records in a single DML operation. How many separate times does the order of execution, from before triggers through after triggers, run for this one operation?
- A200 times, once per individual Account record
- BOnce, with all 200 records processed together as one batchCorrect
- CTwice, since inserts are always processed in two passes
- DOnce per unique field value present across the records
✓ Correct answer: BSalesforce invokes the order of execution, before triggers through after triggers, once per DML statement, not once per record, so a single insert of 200 Accounts delivers all 200 records to Trigger.new in one pass. This is the same underlying reason bulkification matters: the trigger receives the full collection at once rather than being invoked 200 separate times, so any SOQL or DML in the trigger must handle the whole batch in a single pass to stay within governor limits.
Why the other options are wrong- AThe order of execution is not repeated per record; it runs once for the batch as a whole.
- CThere is no rule that inserts are always split into exactly two passes through the order of execution.
- DThe order of execution has nothing to do with the number of distinct field values present in the data.
-
Is the 75 percent org-wide code coverage requirement enforced when deploying components into a sandbox rather than production?
- AYes, sandboxes enforce a stricter 90 percent requirement
- BYes, the identical 75 percent requirement applies to sandboxes
- CNo, sandboxes instead require full 100 percent coverage
- DNo, sandboxes do not enforce the 75 percent requirementCorrect
✓ Correct answer: DThe 75 percent org-wide coverage gate that can block a deployment applies to production orgs. Most sandbox types do not enforce it, which is what makes a sandbox convenient for iterative development: code can be deployed and exercised there long before the tests are complete enough to clear the production gate. The difference is in deployment enforcement, not in measurement. Tests still run in a sandbox and coverage is still reported there, which is exactly where a team should be finding and fixing the gap before the production deployment that depends on it.
Why the other options are wrong- AThere is no stricter 90 percent enforcement applied specifically to sandbox deployments.
- BSandboxes do not enforce the same mandatory coverage gate that production deployments do.
- CThere is no 100 percent coverage requirement imposed for sandbox deployments.
-
A component needs to call a third-party JavaScript library that manipulates the rendered DOM after the template is drawn. Which lifecycle hook is appropriate?
- Aconstructor()
- BdisconnectedCallback()
- CrenderedCallback()Correct
- DconnectedCallback() only
✓ Correct answer: CThe renderedCallback() hook runs after the template has actually rendered, so the real DOM elements a third-party JavaScript library needs to attach to or read already exist and can safely be manipulated. One caveat comes with it: renderedCallback can fire repeatedly, once for every re-render. Developers therefore guard one-time setup with a boolean flag so the library is not initialised again on each pass. DOM-dependent third-party setup belongs here, guarded against repeat firing.
Why the other options are wrong- AThe constructor runs before any DOM exists for the component, so it cannot safely manipulate rendered output.
- BdisconnectedCallback fires on removal, not after rendering, so it is the wrong time for this.
- DconnectedCallback runs before the template has necessarily finished rendering, so DOM elements may not yet exist.
-
Which merge field returns the current logged-in user's first name on a Visualforce page?
- A{!$User.FirstName}Correct
- B{!User.FirstName}
- C{!$Profile.FirstName}
- D{!$CurrentUser.FirstName}
✓ Correct answer: AGlobal variables in Visualforce always carry a leading dollar sign inside the merge braces, and $User specifically exposes fields of the currently logged-in user, FirstName among them. That prefix is what distinguishes a platform global from a reference to a record field or a controller property, so the expression is unambiguous and needs no controller code behind it. It works on any page, including one with no standard controller in play, which is why $User is the normal way to personalize page content for the running user.
Why the other options are wrong- BWithout the dollar sign this would look for a User field on the current record's controller rather than the logged-in user global.
- C$Profile exposes profile-related information, not the running user's name.
- D$CurrentUser is not a valid Visualforce global variable name; the correct one is $User.
Who this Salesforce Certified Platform Developer I practice exam is for
This practice set is for anyone preparing for the Salesforce Certified Platform Developer I exam at the intermediate level - from first-time candidates building a foundation to experienced Salesforce practitioners doing a final review before test day. If you learn best by working through realistic questions and reading why each answer is right or wrong, it is built for you.
How to use this Salesforce Certified Platform Developer I practice exam
- Start with the free sample questions above to gauge your current baseline.
- Read the full explanation on every question, including why each wrong option is wrong.
- Track your weak domains and focus your study where you are losing the most marks.
- Once you are scoring consistently well, take a timed, full-length mock exam.
- Use your readiness score to decide when you are ready to book the real Salesforce Certified Platform Developer I exam.
Related Salesforce resources
- Salesforce Certified Platform Developer I study guideKey concepts
- Salesforce practice examsAll Salesforce
- Certification pathWhere this fits
- Certification exam guides & tipsBlog
- Plans & pricingFree & paid
- How these questions are written and reviewedMethodology
- Report a problem with a questionCorrections
- Salesforce Certified Agentforce Sales Consultant practice examRelated
- Salesforce Certified Agentforce Specialist practice examRelated
- Salesforce Certified Business Analyst practice examRelated
Salesforce Certified Platform Developer I practice exam FAQ
How many questions are in the Salesforce Certified Platform Developer I practice exam on CertGrid?
CertGrid has 738 practice questions for Salesforce Certified Platform Developer I, covering 4 exam domains. The real Salesforce Certified Platform Developer I exam is 60 qs in 105 min. CertGrid's timed mock is a fixed 60 questions.
What is the passing score for Salesforce Certified Platform Developer I?
Salesforce publishes a 68% passing score for this exam. CertGrid scores this mock on its own 0-1000 scale, on which 680 is the same threshold; the 0-1000 figure is ours, not Salesforce's. You have about 105 min to complete it. CertGrid tracks your readiness against the exam objectives so you know where to focus.
Are these official Salesforce Certified Platform Developer I exam questions?
No. CertGrid is an independent practice platform. We do not provide real or leaked exam questions. Our questions are original and designed to help you practice the concepts, scenarios, and difficulty style of the Salesforce Certified Platform Developer I exam.
Is there a free Salesforce Certified Platform Developer I practice test?
Yes. You can take a free Salesforce Certified Platform Developer I practice test straight away: a fixed set of 20 practice questions for this exam, retryable as often as you like, with no credit card required. You get readiness scoring and a weak-domain breakdown on those questions. Paid plans unlock the full 738-question bank, timed mock exams and full-bank domain analytics.
What CertGrid is (and is not)
CertGrid is an independent IT certification practice platform for Azure, AWS, Google, Cisco, Security, Linux, Kubernetes, Terraform, and other certification tracks. It provides objective-mapped practice questions, readiness scoring, weak-domain drills, and explanations to help learners understand what to study next.
Independent & original. CertGrid is an independent practice platform and is not affiliated with or endorsed by Salesforce. Questions are original practice items designed to mirror certification concepts and exam style. CertGrid does not provide official exam questions or braindumps.