Resource library

QA Interview

Salesforce SDET Interview Questions and Preparation

Prepare Salesforce sdet interview questions on Apex, LWC, APIs, automation architecture, test data, CI, security, bulk behavior, and release engineering.

26 min read | 3,349 words

TL;DR

Salesforce SDET interviews go beyond functional CRM knowledge. Expect to design a layered automation system, write or review Apex and API tests, explain LWC and browser strategies, control org configuration and data, and diagnose failures across security, platform automation, CI, and integrations.

Key Takeaways

  • A Salesforce SDET must reason across metadata, Apex, Lightning Web Components, data, identity, APIs, and external systems.
  • Design the automation portfolio by risk and layer, not by maximizing browser-test count or code coverage percentage.
  • Apex tests need isolated data, meaningful assertions, bulk cases, user context, limits awareness, and controlled callout behavior.
  • UI automation should depend on accessible or intentional contracts and avoid Salesforce-generated implementation details.
  • Use source-controlled org configuration, reproducible environments, deterministic data, and deployment validation in CI.
  • Treat authentication, tenant boundaries, field access, sharing, retries, and idempotency as first-class engineering risks.
  • Interview answers should connect code and infrastructure decisions to diagnostic speed, maintainability, and product risk.

Salesforce sdet interview questions measure whether you can engineer reliable quality feedback for a configurable cloud platform, not whether you can automate clicks on Lightning pages. Strong candidates reason across metadata, Apex, Lightning Web Components, APIs, identity, record access, data, CI, and external dependencies.

This guide focuses on SDET depth. It includes a realistic interview structure, architecture decisions, runnable Apex and CLI examples, code-review criteria, scenario questions, and a practical preparation plan. Exact hiring loops differ, so use the sequence as a study model rather than a fixed employer process.

TL;DR

Layer Best fit Principal SDET risk
Static and metadata checks Dependency, security, naming, deployability Passing syntax with unsafe behavior
Apex unit tests Custom logic, bulk behavior, limits, callouts Coverage without meaningful assertions
LWC unit tests Component state, events, rendering branches Testing implementation instead of behavior
API and contract tests Data, services, auth, integrations Shared records and weak cleanup
Browser tests Critical rendered user journeys Generated DOM locators and slow setup
Deployment tests Metadata, packages, permissions, migrations Environment drift and missing dependencies
Production checks Synthetic journeys and operational signals Using sensitive data or masking incidents

A high-value SDET improves the quality and speed of evidence across these layers. The role is not judged by the largest suite.

1. Salesforce SDET Interview Questions: What Makes the Role Different

Salesforce SDETs work on a platform where application behavior can change through source code, metadata, permissions, declarative automation, managed packages, data, and platform releases. The same Apex class can behave differently under another user, record owner, sharing configuration, or transaction volume. A test architecture must make those dimensions explicit.

Interviewers typically evaluate programming, test design, platform mechanics, system design, CI and release engineering, debugging, and leadership. For a senior role, expect to explain how several test layers form one signal, how environments are created and governed, and how the team responds when the suite becomes slow or untrusted.

Do not reduce the role to Selenium. Browser automation is one narrow tool. Apex tests can exercise custom server logic inside the platform transaction. Lightning Web Component tests can validate component behavior quickly. REST and contract tests can verify service boundaries. Deployment checks catch metadata and dependency failures. Exploratory testing exposes combinations that scripts did not encode.

Use explicit boundaries in answers. State whether you wrote framework code, designed standards, operated CI, administered environments, or contributed scenarios. Name the org type and constraints without exposing confidential details. If your experience is primarily Salesforce functional QA, describe your current engineering evidence rather than claiming a senior SDET identity.

For a broader role model, use the how to become an SDET guide and map each capability to Salesforce-specific proof.

2. Navigate the Salesforce SDET Interview Process

An initial screen usually checks your engineering background, Salesforce scope, languages, automation ownership, and communication. Prepare a concise architecture narrative: product surfaces, org strategy, custom code, integrations, test layers, CI, data, team, and your exact contribution. Avoid reciting certifications as a substitute for shipped systems.

A coding round may use a general algorithm, object-oriented design, JavaScript or Java, SOQL, Apex, or test-code review. Clarify input constraints, choose readable structures, test boundaries, and analyze complexity. If the exercise is Apex, account for collections and transaction limits. If it is JavaScript, use the supported runtime and built-in APIs unless dependencies are provided.

A platform automation round may ask you to design coverage for a record-triggered process, LWC, integration, or migration. Discuss user context, data factory, test isolation, async work, callout control, bulk behavior, assertions, artifacts, and layer choice. A system-design round may expand this to multiple teams, packages, sandboxes, scratch orgs, CI queues, and production monitoring.

Behavioral rounds probe influence and failure. Prepare stories about an unstable suite, a framework tradeoff, an escaped defect, a release block, a disagreement with developers, and a quality improvement that did not work on the first attempt. Strong answers include evidence, corrections, and what you delegated.

Some interviews include a take-home framework or code review. Keep it small, runnable, documented, and honest about assumptions. Never embed an org token. Provide environment-variable instructions, deterministic setup, useful failures, and a short architecture decision record.

3. Design a Layered Salesforce Test Architecture

Start from risks, not tools. A custom pricing rule may need Apex unit tests for permutations and bulk behavior, API checks for the exposed contract, a component test for rendered messages, and one browser journey for user wiring. Repeating every price combination in the UI increases runtime without adding distinct evidence.

Map each risk to the lowest layer that can observe it with sufficient fidelity. Add higher layers for integration boundaries and user behavior. Static checks inspect metadata and code quality. Apex tests validate custom server behavior. LWC unit tests cover client component states and events. API tests validate platform and external contracts. Browser tests cover critical Lightning journeys. Deployment and production checks validate different failure classes.

Define ownership and failure taxonomy. A failed assertion, org provisioning error, expired token, deployment conflict, browser crash, and unavailable external sandbox are not the same result. The pipeline should classify them and route ownership. Reruns should diagnose suspected infrastructure instability, not turn red checks green by chance.

Test data and environment architecture are part of the framework. Prefer per-test records with unique keys, builders, or approved APIs. Avoid dependence on mutable shared accounts. Keep metadata and permission definitions in source control where the delivery model permits it. Log source revision, org identifier in safe form, package versions, and test principal with every run.

Measure signal quality: time to first actionable failure, reliability, diagnostic completeness, maintenance effort, and risk coverage. Code coverage is a deployment constraint and a limited indicator, not proof that assertions protect behavior.

4. Engineer Reproducible Orgs, Metadata, and Test Data

Reproducibility begins with a declared source baseline. Track the metadata, Apex, LWC code, permission sets, package configuration, and scripts required for the target. Validate deployment dependencies before test execution. For scratch-org-based development, use versioned definition files and setup scripts. For sandbox pipelines, record refresh, seed, endpoints, and deviations from production.

Separate environment validation from product tests. A fast preflight should confirm authentication, expected source revision, required package versions, connected-service reachability, feature switches, and principal assignments. When preflight fails, skip dependent product scenarios with a clear infrastructure result rather than emitting dozens of misleading defects.

Data builders should express business intent. anEligibleRenewalOpportunity() is more maintainable than a long field map copied into every test, but the builder must still expose behavior-changing fields. Use unique external IDs or test-run markers for traceability. Clean up safely when the environment requires it, and design cleanup to be idempotent. Apex tests normally roll back their data, while integration and UI tests need explicit lifecycle control.

Use separate principals for permission scenarios. An administrator session cannot validate least privilege. Create or assign the smallest supported permission bundles, then test positive and negative operations. Do not cache one powerful token across every suite.

Configuration drift should be observable. Compare expected metadata or deployed source state, not only the visual behavior. If a shared environment permits emergency changes, define how CI detects and reports them. A passing suite on the wrong baseline is not trustworthy evidence.

5. Write Strong Apex Tests for Logic, Bulk Behavior, and Limits

Apex tests should arrange only required data, execute one behavior, and assert business outcomes plus important side effects. Use @testSetup for immutable shared setup when it improves clarity, but avoid coupling tests through mutable assumptions. SeeAllData=true makes tests depend on org contents and is generally unsuitable for isolated application tests.

Always consider collections. Triggered code must work for one record and a batch, and should avoid queries or data manipulation inside per-record loops. Test mixed records, such as one that needs an update and one that does not. When behavior depends on user context, use System.runAs for record sharing context, while separately ensuring the production code enforces required object and field permissions.

Use Test.startTest() and Test.stopTest() to isolate the exercised portion and cause supported asynchronous work to execute in the test context. For HTTP callouts, implement HttpCalloutMock and use Test.setMock. Assert parsed state and failure handling, not merely that no exception occurred. Do not assert exact platform limit totals unless the behavior specifically depends on them and the contract is stable.

The following self-contained Apex example can be deployed to an org. It tests a small service with valid input and a validation boundary using real Apex APIs.

public with sharing class AccountNameService {
    public static Account renameAccount(Id accountId, String newName) {
        if (String.isBlank(newName)) {
            throw new IllegalArgumentException('newName is required');
        }
        Account account = [
            SELECT Id, Name
            FROM Account
            WHERE Id = :accountId
            LIMIT 1
        ];
        account.Name = newName.trim();
        update account;
        return account;
    }
}

@IsTest
private class AccountNameServiceTest {
    @IsTest
    static void renamesAnAccount() {
        Account account = new Account(Name = 'Before');
        insert account;

        Test.startTest();
        Account result = AccountNameService.renameAccount(account.Id, '  After  ');
        Test.stopTest();

        Account stored = [SELECT Name FROM Account WHERE Id = :account.Id];
        System.assertEquals('After', result.Name);
        System.assertEquals('After', stored.Name);
    }

    @IsTest
    static void rejectsABlankName() {
        Account account = new Account(Name = 'Unchanged');
        insert account;

        try {
            AccountNameService.renameAccount(account.Id, '   ');
            Assert.fail('Expected IllegalArgumentException');
        } catch (IllegalArgumentException error) {
            System.assertEquals('newName is required', error.getMessage());
        }
    }
}

In a real code review, ask whether the service also needs explicit object and field authorization checks, a domain exception, bulk input, or concurrency handling. The sample demonstrates test mechanics, not a universal production design.

6. Test Lightning Web Components and Browser Journeys

LWC testing has two distinct concerns. Component-level tests validate inputs, rendering branches, events, user interactions, wire adapters, and error states in isolation. Browser tests validate deployed wiring, navigation, platform services, security, and a critical journey through the real shell. Keep the majority of component permutations at the faster level when the architecture supports it.

Test behavior through public properties, accessible elements, and observable events. Avoid assertions tied to private fields or incidental DOM structure. Mock platform adapters at documented boundaries and include loading, empty, success, permission-denied, and error states. Accessibility is part of correctness: semantic roles, names, keyboard behavior, focus, and error association provide both user value and more stable automation contracts.

Browser automation should not depend on Salesforce-generated class names or deep selectors. Prefer accessible roles and labels for standard controls. For custom components, add semantic markup and intentional test identifiers only where a durable user-facing selector is unavailable. Do not pierce framework internals. Use APIs or builders for data setup, separate users for security, and explicit waits for observable results rather than fixed delays.

Authentication deserves its own design. Use approved nonproduction principals and secret storage. Reuse authenticated state only when isolation and revocation are understood. Never automate multifactor bypass through insecure means. If the enterprise uses single sign-on, coordinate a supported test identity or lower-level coverage rather than fighting the login page.

Artifacts should include the scenario, source baseline, user persona, record identifiers, screenshot, trace or network evidence, browser console, and relevant Salesforce debug correlation. Redact tokens and data. A screenshot alone rarely locates the failing layer.

7. Build API, Contract, and Integration Automation

Salesforce SDETs should understand REST resources, SOQL query endpoints, composite operations when used, authentication, API versioning, response errors, and consumption limits. Tests should pin the org-approved API version rather than silently follow a changing default. Validate both allowed and denied requests with distinct principals.

For inbound APIs, cover schema, required fields, nulls, malformed values, duplicate external IDs, record-type behavior, authorization, partial success, and bulk or concurrent use. For outbound calls, use controlled test servers or platform mocks to exercise success, timeout, error, retry, malformed response, and duplicate delivery. Idempotency is a business property, not simply an HTTP method choice.

Contract tests protect independently deployed consumers and providers. Define which team owns the schema and compatibility policy. Consumer-driven contracts can help, but they do not validate platform permissions, workflow side effects, or production routing by themselves. Keep a small integration smoke test against a deployed environment.

Avoid logging full request bodies or tokens. Create a correlation ID that can be traced across the test runner, Salesforce debug evidence, middleware, and the external service. Record safe response metadata and the first incompatible field.

When an integration test fails, classify authentication, authorization, contract, business validation, platform automation, external dependency, network, and test-data causes. This failure vocabulary makes CI actionable. The API test engineer interview guide provides additional contract and automation drills.

8. Design Salesforce CI, Deployment, and Failure Triage

A useful pipeline returns the earliest relevant evidence without duplicating every test at every stage. A pull request might run formatting, static analysis, metadata validation, JavaScript unit tests, and focused Apex tests. An integration stage can deploy to a prepared org and run API plus selected browser checks. Pre-release validation adds package, migration, permissions, integration, and rollback evidence.

The Salesforce CLI provides machine-readable output and explicit commands suitable for CI. Command details can evolve, so pin the CLI version in the build image and verify current official help during upgrades. A simple authenticated-org sequence looks like this:

set -euo pipefail

sf project deploy start \
  --target-org qa-ci \
  --source-dir force-app \
  --test-level RunLocalTests \
  --wait 30 \
  --json > deploy-result.json

sf apex run test \
  --target-org qa-ci \
  --test-level RunLocalTests \
  --result-format junit \
  --wait 30 \
  --output-dir test-results

The alias authentication must be configured securely before these commands. CI should parse the JSON and JUnit results, retain permitted artifacts, and fail on the correct terminal states. Do not expose authentication URLs or tokens in logs.

Parallelism must respect org isolation and data collision. Splitting browser tests across workers is harmful if they update the same records or exhaust shared capacity. Provision separate orgs, partition data and users, or serialize the conflicting scope. Measure queue time separately from execution.

Triage begins with classification. Deployment, compilation, Apex assertion, browser assertion, token expiry, org limit, data collision, and external outage need different owners. Quarantine is a temporary control with an owner and deadline, never a graveyard.

9. Prepare for Coding, SOQL, Debugging, and System Design

For coding exercises, practice collections, maps, sets, strings, intervals, graph traversal, and clean object design in your strongest interview language. Explain complexity and test cases. In Apex, bulk-safe patterns often use sets to collect IDs, one query outside loops, maps for lookup, and collection data manipulation. Do not force an Apex solution when the round explicitly asks for Java or JavaScript.

Practice SOQL that filters, orders, aggregates, and traverses parent or child relationships. Know that SOQL is not a general SQL engine. Avoid claiming unsupported joins or syntax. Discuss query selectivity and data scale conceptually, then confirm platform-specific optimization with current documentation and org evidence.

Debugging answers should follow evidence. Reproduce on a known baseline, narrow user and record context, compare a passing case, inspect client request and response, query record state, examine relevant debug logs, and find the first divergence. Change one variable at a time. A generic retry is not diagnosis.

For system design, propose components and their boundaries: source repository, environment provisioning, deployment controller, test-data service, identity, runners by layer, artifact store, result classifier, dashboard, and notifications. Address secrets, isolation, concurrency, retention, observability, and cost. State which failures stop the pipeline and which become release risk.

Review test automation framework interview questions and practice adapting the answers to org lifecycle and platform limits.

10. Salesforce SDET Interview Questions: Four-Week Preparation Plan

In week one, build platform depth. Review records, metadata, security, sharing, Flow, Apex transaction behavior, asynchronous work, SOQL, APIs, and deployment concepts. Create a small custom workflow and document the order-sensitive interactions. Do not attempt to memorize the whole platform.

In week two, create an executable test slice. Add Apex tests for logic and bulk behavior, an LWC component test if the project includes one, a REST smoke check, and one focused browser journey. Use isolated data, distinct users, environment variables, and useful artifacts. Document why each check belongs at its layer.

In week three, automate the delivery path. Put source and configuration in version control, run static and unit checks, validate deployment, execute selected integration tests, and publish machine-readable results. Intentionally cause an assertion failure, expired credential, bad metadata dependency, and data collision. Confirm the pipeline classifies them differently.

In week four, practice interviews. Complete coding problems aloud, review Apex for bulk and permission risks, design a multi-team test system, and answer scenario questions with assumptions. Prepare six concise stories covering framework design, flaky tests, difficult diagnosis, security, release risk, and technical influence.

Audit your resume and repository before sharing. Remove secrets, internal URLs, copied employer code, and tutorial claims presented as production scale. A small, well-tested example with clear decisions is stronger than a large framework that cannot run.

Interview Questions and Answers

Q: How would you design an automation architecture for Salesforce?

I would map product risks to static checks, Apex tests, LWC tests, API contracts, focused browser journeys, deployment validation, and production signals. Shared services would manage source baselines, users, deterministic data, artifacts, and failure classification. I would optimize time to actionable evidence, not total automated cases.

Q: What makes an Apex test valuable beyond code coverage?

It asserts business outcomes, denied states, side effects, bulk behavior, user context, asynchronous work, and controlled external responses. It is isolated from mutable org data and fails for one clear reason. Coverage shows execution, not that the correct behavior was protected.

Q: How do you test an Apex trigger for bulk safety?

I create a collection containing varied records and execute one insert or update transaction. I assert every record and side effect, including records that should remain unchanged. Code review also checks for queries or DML inside loops and appropriate set or map usage.

Q: Where should permission testing live?

Use several layers. Apex tests can cover code paths and user record context, API tests verify server enforcement, and a small UI set checks presentation plus critical denied actions. Configuration review and deployment checks ensure the intended permission artifacts are present.

Q: How do you select Salesforce UI locators?

I prefer accessible role, name, and label contracts. For custom components, I work with developers on semantic markup and intentional hooks when no stable user-facing selector exists. I avoid generated classes, deep DOM paths, and unsupported access to component internals.

Q: How do you test asynchronous Apex?

I arrange data and mocks, call Test.startTest(), invoke the behavior, and call Test.stopTest() so supported asynchronous work runs in the test context. Then I assert durable state and side effects. Integration tests cover scheduling, routing, and dependencies that the unit context cannot reproduce.

Q: What causes false failures in Salesforce CI?

Common causes include org drift, expired authentication, shared data, permission mismatch, unavailable dependencies, unsafe parallelism, browser instability, and resource contention. I classify these separately from product assertions, fix the system cause, and use bounded reruns only as diagnosis.

Q: How would you test an outbound callout?

Apex tests use HttpCalloutMock for success, error, malformed, timeout-like business handling, and duplicate response cases that code can observe. Deployed integration tests use a controlled endpoint to validate authentication, routing, schema, retries, idempotency, and traceability. Secrets and payload data stay protected.

Q: How do scratch orgs change testing?

They can provide disposable, source-driven environments for supported development models, which improves isolation and reproducibility. The definition, features, packages, permissions, and seed steps must be versioned. They do not replace testing against representative shared integrations and production-like constraints.

Q: What would you include in a Salesforce test framework result?

I include source and environment baseline, layer, scenario, user persona, safe record identifiers, status category, duration, first failure, and protected artifact links. Infrastructure and product failures are distinct. Secrets and sensitive record values are redacted.

Common Mistakes

  • Treating the SDET role as browser automation around Salesforce pages.
  • Maximizing Apex coverage without assertions, negative cases, or bulk behavior.
  • Using SeeAllData=true to depend on convenient shared org records.
  • Running every test as an administrator and missing least-privilege defects.
  • Locating Lightning elements through generated classes or deep DOM paths.
  • Reusing one mutable record and token across parallel workers.
  • Ignoring metadata and permission baselines when diagnosing behavior.
  • Letting retries hide unreliable environments or order-dependent tests.
  • Logging access tokens, authentication URLs, customer fields, or complete payloads.
  • Assuming a successful deployment proves application readiness.
  • Designing CI around total test count instead of actionable feedback.
  • Claiming framework or architecture ownership that belonged to another engineer.

Conclusion

Strong answers to Salesforce sdet interview questions join platform knowledge with software engineering. Show how source, orgs, identity, data, Apex, components, APIs, browser journeys, and CI produce layered evidence. Make failures classifiable and security boundaries explicit.

Build one compact project that actually deploys and runs, then practice defending every design choice. The winning signal is not the most automation. It is a system that finds important problems early, explains failures clearly, and remains maintainable as the Salesforce implementation changes.

Interview Questions and Answers

Design a Salesforce automation architecture for several product teams.

I would define shared contracts for source baselines, environment readiness, identity, test data, results, and artifacts while teams own risk-specific suites. Checks would be layered across static analysis, Apex, LWC, API, focused browser, deployment, and production signals. Failure classification and ownership would be consistent, with local extension points rather than one central framework bottleneck.

How do you make an Apex test valuable beyond coverage?

I assert business state, forbidden outcomes, and side effects for positive, negative, boundary, bulk, and user-context cases. External behavior is controlled with mocks and asynchronous work is exercised through the test context. The test remains isolated and communicates one behavior clearly.

How do you review an Apex trigger for testability?

I look for thin trigger wiring, bulk collection handling, domain logic that can be exercised directly, dependency boundaries for callouts, and explicit authorization decisions. Queries and DML should not occur inside per-record loops. Tests need deterministic data and observable outcomes rather than implementation-only assertions.

How would you test Apex asynchronous processing?

In unit tests I arrange data and mocks, call `Test.startTest()`, invoke the behavior, then call `Test.stopTest()` to run supported queued work. I assert durable outcomes and errors. Deployed tests cover scheduling, concurrency, routing, and dependencies that the isolated context cannot represent.

How do you automate Salesforce permissions safely?

I create explicit personas with minimum permission assignments and use separate sessions or tokens. Tests cover object, field, record, and action access through APIs and selected UI paths, including denied cases and permission revocation. Administrator-only setup is isolated from scenario execution.

What is your locator strategy for Lightning pages?

I use accessible roles, names, and labels when available. Custom components receive semantic markup and deliberate stable hooks only when needed. Generated classes, deep DOM paths, and unsupported component-internal selectors are rejected in review.

How do you decide what not to automate through the UI?

I remove deterministic rule permutations, data setup, and contract checks that lower layers can observe accurately. The UI suite retains critical rendered workflows, browser behavior, navigation, and integration wiring. The decision balances fidelity, speed, isolation, diagnostics, and maintenance.

How would you test Salesforce API version compatibility?

I pin the versions used by each consumer, validate contracts against supported versions, and run compatibility checks before upgrades. I inspect changed fields, error shapes, deprecations, and permissions rather than changing a version string blindly. Rollout and rollback are controlled per consumer.

How do you prevent Salesforce test-data collisions?

Each run uses unique external keys, owned records, and persona-specific users or data partitions. Setup APIs and builders return IDs that tests retain, and cleanup is idempotent. Tests that cannot isolate state are serialized or assigned separate orgs.

How do you diagnose a Salesforce CI failure?

I first classify deployment, authentication, org readiness, test data, permission, assertion, browser, or dependency failure. Then I compare the recorded source and org baseline with a passing run and inspect the first divergent request, record, log, or component. Retries are used only to test an instability hypothesis.

How should a pipeline use scratch orgs?

When the delivery model supports them, versioned definitions and setup scripts create disposable environments for isolated validation. The pipeline verifies features, packages, permissions, and seed state before tests. Representative shared integrations and production-like constraints still need separate stages.

What Salesforce quality metrics would you track?

I track time to actionable feedback, signal reliability, diagnostic completeness, risk coverage, maintenance load, escaped impact, and environment health. I segment results by layer and failure category. Code coverage and pass rate are supporting measures, not quality outcomes.

How do you test outbound Salesforce callouts?

Apex unit tests use `HttpCalloutMock` for deterministic response branches. Deployed integration tests use a controlled endpoint for authentication, routing, schema, retry, duplicate delivery, idempotency, and trace correlation. Secrets and sensitive payload fields are protected in every artifact.

How would you handle a flaky Salesforce browser suite?

I measure failure categories, remove shared data, replace unstable locators, eliminate fixed sleeps, validate the environment, and move unsuitable cases to lower layers. Quarantine requires an owner and expiry. I report reliability separately so reruns cannot hide the original signal.

Frequently Asked Questions

What does a Salesforce SDET do?

A Salesforce SDET engineers quality feedback across metadata, Apex, Lightning Web Components, APIs, browser journeys, integrations, environments, and CI. The role combines programming, platform reasoning, test architecture, and failure diagnosis.

Which language should a Salesforce SDET know?

Apex and JavaScript are directly relevant to custom Salesforce applications, while Java, TypeScript, or another language may power external automation. Candidates should code well in the language required by the role and understand the platform boundaries they test.

Do Salesforce SDETs need Selenium?

They need a sound browser automation approach, but the specific tool depends on the organization. More important skills are stable locator design, isolated data, authentication strategy, observable waits, artifacts, and keeping rule-heavy coverage below the UI.

How should Apex code coverage be discussed in an interview?

Treat coverage as evidence that code executed and as one deployment constraint, not proof of correctness. Strong tests assert business outcomes, failures, side effects, bulk behavior, user context, and asynchronous work.

What should be in a Salesforce SDET portfolio?

Include a small source-driven project with Apex tests, a component or API check, one focused browser journey, CI configuration, deterministic data, secure environment instructions, and an architecture decision record. It should run without employer code or secrets.

How do Salesforce SDETs manage test data?

They use builders, factories, approved APIs, unique keys, separate principals, and explicit cleanup for deployed tests. Apex unit data stays isolated from mutable org contents, while integration data is traceable and safe for parallel execution.

How do I prepare for a Salesforce SDET system-design interview?

Practice designing source and environment provisioning, deployment validation, layered runners, data and identity services, artifact storage, result classification, observability, and release reporting. Explain isolation, concurrency, secrets, retention, failure policy, and tradeoffs.

Related Guides