Web Form Testing

Registration Form Test Cases for the Complete Signup Lifecycle

A registration form has not succeeded merely because it displays "Account created."

  1. The form accepts valid data and rejects invalid data.
  2. Exactly one account is created.
  3. The account receives the correct initial status.
  4. Email or phone ownership can be verified.
  5. Verification activates the intended account only once.
  6. The user can complete the first login.
  7. The correct role, tenant, plan, consent, and onboarding state are assigned.

This guide contains 44 registration form test cases covering the complete journey from an anonymous visitor to an active authenticated user.

WrightTest Team 44 test cases
Registration testing workflow from form submission through account creation, email verification, activation, first login, and correct access
A complete registration test verifies account creation, activation and access, not only the visible form result.

The Minimum Registration Smoke Test

When release time is limited, start with these ten scenarios.

The minimum registration smoke test
IDTestFailure it can reveal
REG-01Register with valid new-user dataThe primary signup flow is broken
REG-04Inspect the account immediately after submissionNo account was created or the initial state is wrong
REG-09Submit with required fields emptyRequired-field validation is missing
REG-15Submit the valid form twice rapidlyDuplicate accounts or emails are created
REG-18Register with an existing email addressDuplicate identity protection is broken
REG-24Confirm that the verification email arrivesThe account exists but cannot be activated
REG-27Open an expired or previously used linkVerification tokens remain reusable
REG-32Verify the account and inspect its statusThe browser says verified while the account remains pending
REG-34Log in for the first timeActivation and authentication are disconnected
REG-44Run the complete flow in productionEnvironment-specific email, URL, role, or redirect configuration is broken

The smoke set proves whether the primary registration path is operational. It does not replace the wider regression and security coverage below.

Define the Account State Model First

Before writing test cases, document the states through which a new account can move. A common lifecycle is:

Anonymous visitor -> registration submitted -> account created as pending -> verification message sent -> email ownership confirmed -> account activated -> first authenticated session -> onboarding or application access

Possible alternative states include rejected duplicate, pending verification, verification expired, suspended, invited, partially onboarded and active.

The exact names are implementation-specific. The important requirement is that every transition has a defined trigger and expected result.

Registration account state model from anonymous visitor to pending verification, active account, first login, and onboarding
The account-state model keeps browser assertions aligned with the business state that actually controls access.

Account-state acceptance matrix

Account-state acceptance matrix
EventExpected account stateExpected user access
Form contains invalid dataNo new accountNo access
Valid form is submittedPending or equivalentOnly explicitly permitted pre-verification access
Verification message is sentStill pendingNo unintended authenticated access
Valid token is usedActive or onboarding-requiredAccess according to the assigned role
Expired token is usedStill pendingNo access
Used token is opened againState unchangedNo additional activation action
Duplicate registration is attemptedExisting identity remains unchangedNo second account
First login succeedsActiveCorrect application access
Role or tenant assignment failsMust not silently grant elevated accessFail safely

Core Signup and Account-Creation Test Cases

Core signup and account-creation cases
IDScenarioExpected resultEvidence
REG-01Register using valid, previously unused dataThe signup request is accepted and the expected next step is displayedBrowser result, response and account identifier
REG-02Leave all genuinely optional fields emptyRegistration succeeds without inventing validation errorsCreated account and stored profile
REG-03Compare submitted profile data with the saved accountValues are mapped to the correct fields without truncation or swappingRequest payload and stored record
REG-04Inspect the account immediately after submissionExactly one account exists in the defined initial state, usually pending verificationDatabase, admin panel or identity provider
REG-05Inspect the stored credential representationThe password is not stored or logged in plaintext and uses the approved password-storage mechanismRestricted backend or security verification
REG-06Accept the required terms and submitThe account records the correct consent version, state and timestampConsent record or audit event
REG-07Decline required terms while accepting optional marketing consentRegistration remains blocked; optional consent does not override required consentUI result and absence of account
REG-08Make account creation fail after the browser sends a valid requestNo false success is shown, and no incomplete active account is silently createdResponse, UI state and backend record

Passwords should not be stored in plaintext or reversible form.

Registration Form and Validation Test Cases

This section covers the validation required to prove the signup lifecycle. A broader boundary and field-validation matrix belongs in the Form Validation Test Cases: Align UI and API Rules guide.

Registration form validation cases
IDScenarioExpected resultEvidence
REG-09Submit with all required fields emptySubmission is blocked and each missing field is identifiedVisible error summary and field errors
REG-10Omit one required field at a timeOnly the relevant requirement is reportedField error and focus location
REG-11Enter malformed email addressesUnsupported values are rejected before account creationError message and absence of account
REG-12Use a valid email containing a subdomain, plus tag or supported international charactersThe address is handled according to the documented identity policyAccepted or intentionally rejected result
REG-13Test password-policy boundariesExact valid boundaries are accepted; invalid values receive specific guidanceValidation result
REG-14Enter different values in Password and Confirm passwordRegistration is blocked without clearing unrelated fieldsError state and preserved form data
REG-15Double-click or repeatedly activate Create accountOnly one account and one verification sequence are createdRequest, account and email counts
REG-16Disable client-side validation and send invalid data directlyServer-side validation rejects the requestServer response and absence of account
REG-17Correct an invalid field and resubmitThe corrected form succeeds without requiring unrelated data to be re-enteredSuccessful retry

Client-side validation improves feedback but can be bypassed, so the same acceptance rules must be enforced on the server.

Duplicate Account and Identity Test Cases

Duplicate prevention is not only a database constraint. The same identity may arrive through different casing, aliases, concurrent requests, invitations or authentication providers.

Duplicate identity cases
IDScenarioExpected resultEvidence
REG-18Register with an email already linked to an active accountA second active identity is not createdAccount count and response
REG-19Repeat registration using different email casingDuplicate handling follows one consistent normalization policyAccount lookup and record count
REG-20Use plus addressing or another provider-specific aliasBehavior matches the documented identity policy rather than an accidental normalization ruleCreated or matched identity
REG-21Send two valid registration requests for the same identity concurrentlyA uniqueness constraint or equivalent control allows only one accountConcurrent responses and record count
REG-22Register with an email belonging to a pending accountThe system follows the defined recovery or resend path rather than creating another pending accountExisting account state and email count
REG-23Register through password signup and social authentication using the same emailThe application links, blocks or separates identities according to an explicit account-linking policyIdentity-provider records and final account count

Do not guess how equivalent-looking email addresses should be merged. Normalization must be explicit and consistent across signup, login, verification, account recovery and email change.

Verification Email and Token Test Cases

Verification email and token cases
IDScenarioExpected resultEvidence
REG-24Complete valid registration and inspect the recipient mailboxOne verification message reaches the submitted addressInbox or email-provider status
REG-25Inspect the verification messageRecipient, subject, branding, instructions and destination URL are correctMessage body and headers
REG-26Open a valid unused verification linkThe intended account is verified and the user receives a truthful completion stateBrowser result and account state
REG-27Open an expired verification linkActivation is rejected and the account remains pendingError state and unchanged account
REG-28Open a verification link for the second timeThe token cannot perform the activation operation twiceToken status and account audit
REG-29Modify, truncate or replace the tokenThe request is rejected without activating any accountResponse and account state
REG-30Request a new verification messageResend follows the defined token policy and does not create another accountToken records, account count and email count
REG-31Repeatedly request resendRate limiting or another abuse control prevents mailbox flooding while allowing legitimate recoveryAccepted and rejected resend attempts
REG-32Inspect the account after successful verificationThe status changes once from pending to active or onboarding-requiredState transition and timestamp
REG-33Attempt to use one user’s token for a different account or sessionOnly the account bound to the token can be affectedAccount states and audit trail

Verification links and codes should be bound to the intended identity, time-limited and single-use.

First Login, Role and Access Test Cases

Registration is incomplete when the account is active but cannot authenticate or receives the wrong access.

First login, role and access cases
IDScenarioExpected resultEvidence
REG-34Log in after successful activationThe new credentials create a valid authenticated sessionBrowser session and authenticated page
REG-35Attempt login before required verificationAccess is blocked or restricted according to the defined account stateLogin result and account state
REG-36Inspect the new user’s default roleThe minimum intended role is assigned; no elevated permission appears accidentallyRole and permission record
REG-37Register through a tenant, organization, invitation or referral-specific routeThe account joins only the intended tenant or relationshipMembership record and accessible resources
REG-38Open resources outside the assigned tenant or roleAuthorization blocks horizontal and vertical accessHTTP result and visible UI
REG-39Inspect trial, subscription, credits, referral reward or signup bonusBenefits are granted once and according to eligibility rulesEntitlement and audit records
REG-40Continue into onboardingRequired onboarding steps, progress and defaults match the new account typeOnboarding state
REG-41Log out and sign in againThe account remains active with the same correct role and tenant membershipNew session and permissions

A successful login does not independently prove correct authorization. Role, tenant membership and resource access must be checked separately.

Accessibility, Mobile and Abuse Test Cases

Accessibility, mobile and abuse cases
IDScenarioExpected resultEvidence
REG-42Complete registration using only the keyboard and supported assistive technologyFields, password controls, terms, errors and submission remain operable and understandableKeyboard walkthrough and accessibility inspection
REG-43Complete the flow on supported mobile viewports using autofill or a password managerLayout, virtual keyboard, autocomplete, password generation and verification handoff remain usableMobile run and screenshots
REG-44Exercise CAPTCHA, throttling, repeated signups and the production flow with controlled dataLegitimate registration succeeds while obvious abuse is constrained without creating false accountsRate-limit results and end-to-end production evidence

CAPTCHA should be treated as one defence layer rather than proof that automated abuse is impossible.

The Most Important Registration Failure Patterns

Registration failure patterns including duplicate accounts, missing verification email, reused tokens, incorrect activation state, and wrong user roles
The highest-risk failures usually happen between systems, not inside a single visible form field.

Account created, but verification email missing

The form and account-creation API pass, but the user cannot continue. Check the email provider, queue, template, recipient, sender-domain configuration and retry policy.

Verification message delivered, but account not activated

The link opens successfully, yet the account remains pending. The visible confirmation is false unless the backend state transition also occurred.

Active account created before required verification

The user can authenticate or access protected features without proving ownership of the supplied address.

Two requests create two accounts

A disabled button is not sufficient protection. Duplicate prevention must survive rapid clicks, retries, concurrent API requests and delayed responses.

Correct account, wrong role or tenant

Signup appears successful, but the new user receives elevated permissions or access to another organization’s data.

Verification succeeds twice

Reopening the same link should not repeat account activation, rewards, referral credits, audit events or welcome workflows.

What Each Testing Layer Can Prove

Registration testing layers
Testing layerWhat it can verifyWhat it cannot prove alone
Browser testFields, validation, Submit state, visible errors, redirects and user-facing confirmationDatabase state, password storage, real email delivery or server-side authorization
Registration API testRequest validation, uniqueness responses, state-transition contracts and error handlingBrowser usability or actual inbox delivery
Database or identity-store checkAccount count, status, identifiers, role, tenant and credential representationUser-visible behavior
Email-provider checkMessage creation, recipient, delivery, template and linkSuccessful account activation after the link is opened
Authentication testFirst login, session creation and pre-verification restrictionsCorrect authorization across all protected resources
Authorization testRole, tenant and resource boundariesSignup form usability
Security reviewToken handling, password storage, enumeration, abuse and privilege escalationGeneral UX and accessibility
Accessibility evaluationLabels, keyboard operation, error announcements and input purposeBackend identity correctness
Registration testing layers covering browser behavior, API validation, identity storage, email delivery, token verification, authentication, authorization, security, and accessibility
Each layer has a boundary: browser behavior, identity state, email delivery, authentication, authorization and accessibility need distinct evidence.

A browser test can prove that the page displayed "Check your email." It cannot independently prove that an account was stored with a safe password representation or that a real message reached the mailbox.

How to Select Registration Cases After a Change

Change-to-regression-scope matrix
Changed componentMinimum regression scope
Form field or validation ruleRelevant positive, negative, boundary and retry cases
Create-account endpointValid signup, duplicate submit, concurrent identity and backend failure
Database constraintExisting identity, case policy and concurrent requests
Email provider or templateDelivery, content, link destination, resend and failure behavior
Verification-token logicValid, expired, reused, modified and cross-account tokens
Authentication servicePre-verification login, activated login, logout and repeat login
Role or tenant mappingDefault role, invitation, tenant membership and unauthorized resource access
Signup bonus or trial rulesInitial grant, duplicate identity, repeated activation and audit trail
CAPTCHA or abuse controlsLegitimate signup, repeated requests, resend limits and recovery
Deployment configurationFull minimum smoke set in the target environment

Do not run every scenario with the same priority. Choose the cases that cross the component changed and the state transitions it controls.

Automating Registration Test Cases

Many browser-visible scenarios can reuse one flow:

Open the registration page
Fill {{NAME}}
Fill {{EMAIL}}
Fill {{PASSWORD}}
Fill {{CONFIRM_PASSWORD}}
Set {{TERMS_STATE}}
Click "Create account"
Assert {{EXPECTED_SIGNUP_RESULT}}

Named cases can supply different values:

Valid new user
Missing required field
Invalid email
Password mismatch
Existing account
Duplicate submit
Backend error

A second reusable flow can cover verification:

Open verification message
Follow {{VERIFICATION_LINK}}
Assert {{EXPECTED_VERIFICATION_RESULT}}
Open login page
Fill {{EMAIL}}
Fill {{PASSWORD}}
Click "Log in"
Assert {{EXPECTED_ACCESS}}

Keep the signup and verification flows separate when they fail for different reasons or rely on different systems.

For the reusable-flow method, read the Web Form Testing guide.

What Should Not Be Proven by Browser Automation Alone

Do not rely on a browser assertion to prove secure password hashing, token randomness, email deliverability across providers, absence of account enumeration, complete server-side authorization, high-volume abuse resistance, every assistive technology, or protection against injection and privilege escalation.

Browser automation remains valuable because it proves that users can complete the visible journey and that frontend states correspond to the observed responses.

Test-Data and Cleanup Strategy

Registration tests create persistent identity data. Without cleanup, the suite eventually fails because every supposedly new email already exists.

Unique identities per run

Generate a unique, traceable test address for each run: qa-registration+{{RUN_ID}}@example.test. Use this only when the mailbox and application identity policy support the selected addressing format.

Controlled account deletion

Delete synthetic accounts through an approved API, admin operation or test fixture after execution.

Resettable isolated environment

Restore the registration database or identity provider to a known state before the suite.

Reusable account states

Maintain fixtures for known account states: new identity, pending verification, active user, deactivated user, existing social identity and invited user.

Safe Production Registration Monitoring

A production registration smoke test can detect broken deployment configuration, incorrect verification URLs, email-provider failure, missing environment variables, incorrect redirects, broken tenant assignment and failed onboarding handoff.

Use a dedicated synthetic email domain or controlled mailbox, an identifiable test-user prefix, a non-production tenant where possible, suppressed marketing communication, excluded analytics or a synthetic marker, automatic cleanup, low execution frequency and no real personal information.

Do not let synthetic accounts consume paid seats, trigger commissions, enter campaigns, receive real production privileges, affect reporting or remain indefinitely in the user database.

Frequently Asked Questions

Is registration complete before email verification?

That depends on the product’s state model. The account may be created as pending, but it should not receive active-user access before the required verification transition is complete.

Should duplicate registration reveal that an account already exists?

This is a product and threat-model decision. Whatever policy is selected must be consistent across registration, login and account-recovery flows.

Can a UI test prove that passwords are stored securely?

No. A browser test can verify password-field behavior and the visible registration result. Password hashing and storage require an authorized backend or security-layer verification.

Registration Testing Checklist

Before approving a signup flow, confirm that valid new users can submit, invalid values do not create accounts, one signup creates exactly one identity, the initial account state is correct, required consent is recorded accurately, duplicate identities follow one documented policy, verification messages reach the intended recipient, tokens expire and cannot be reused, successful verification changes the correct account state once, unverified users cannot receive unintended access, first login works, the default role and tenant are correct, signup benefits are granted once, errors are accessible and recoverable, mobile and password managers remain usable, abuse controls do not block normal users, synthetic accounts can be traced and removed, and production configuration has been checked safely.

Final acceptance criterion. The final acceptance criterion is not: "The registration form displayed a success message." It is: "One intended identity was created in the correct state, ownership was verified once, and the user received the correct authenticated access without duplicate accounts or elevated privileges."

Automate the Repeatable Browser Layer

WrightTest lets teams record a reusable registration flow, replace fixed values with named test-case variables, run each case independently, and inspect screenshots, errors, step results and Playwright traces.

The browser checks can be exported to native Playwright .spec.ts files when they need to move into an existing repository or CI pipeline.

Use WrightTest for the repeatable browser journey, then combine it with the appropriate email, identity-store, authentication, authorization and security checks for the complete registration lifecycle.