View all services
Talk to QA Advisor
Browse the Knowledge Hub74 resources
/Test Cases/Profile and account settings test cases

Test cases

Settings test cases, for the save that did not happen

Twenty eight cases covering partial saves reported as success, optimistic updates the server rejected, two tabs overwriting each other, mass assignment through a profile form, re-authentication for sensitive changes, session invalidation on password change, avatar content inspection and metadata stripping, timezone and locale propagation and profile visibility.

28cases/8coverage types/12security cases/FreeCSV download

All 28 test cases, ready to copy

Free to use and adapt, no sign-up. Download as CSV or Markdown, or copy it straight into your own tooling.

Last updated

28 worked examples

PRF-01

Save a single field and confirm it persisted

TypeFunctionalPriorityHigh
Test data
Change the display name, save, then reload from a different session
Expected result
Value is stored exactly as entered and returned on reload. The confirmation appears only after the server confirms, not on submit.
PRF-02

Report a partial save honestly

TypeStatePriorityHigh
Test data
A settings form where one field fails validation on the server while others succeed
Expected result
Interface states which fields saved and which did not. A blanket success message over a partial write is the defect this set exists to catch.
PRF-03

Roll back an optimistic update that the server rejected

TypeStatePriorityHigh
Test data
Apply a change locally, then force the server to refuse it
Expected result
Displayed value reverts and the user is told. Leaving the new value on screen means they believe a setting is active when it is not.
PRF-04

Warn before discarding unsaved changes

TypeStatePriorityMedium
Test data
Edit several fields, then navigate away and use the browser back button
Expected result
A warning appears in both cases, and it does not fire when nothing was actually changed.
PRF-05

Handle two tabs editing the same profile

TypeBoundaryPriorityHigh
Test data
Open settings in two tabs, change different fields, save the older one last
Expected result
The first change is not silently overwritten. Either both survive or the stale save is refused with a conflict.
PRF-06

Refuse an update to another user profile

TypeSecurityPriorityHigh
Test data
Submit a profile update with another user identifier in the payload and in the path
Expected result
Refused on both. The target is taken from the authenticated session rather than from anything the client supplied.
PRF-07

Ignore fields the user must not control

TypeSecurityPriorityHigh
Test data
Include role, plan, verified status, credit balance and account identifier in the update payload
Expected result
Each is ignored or rejected. Mass assignment through a profile form is one of the quietest privilege escalations available.
PRF-08

Require re-authentication for a sensitive change

TypeSecurityPriorityHigh
Test data
Change email, change password and disable two factor authentication on a long lived session
Expected result
Each requires the current password or a second factor, so an unattended session cannot be used to take over the account.
PRF-09

Invalidate other sessions after a password change

TypeSecurityPriorityHigh
Test data
Sign in on three devices, change the password on one
Expected result
Other sessions end per the documented policy and the user is told. A password change that leaves sessions alive does not evict an intruder.
PRF-10

Notify the account of a security relevant change

TypeSecurityPriorityHigh
Test data
Change password, change email and add a new sign in method
Expected result
A notification goes to the previous address as well as the new one, because that message is how a takeover gets noticed.
PRF-11

Validate a new password against the same rules as signup

TypeNegativePriorityHigh
Test data
A short password, a common one, the current password reused, and one matching the email
Expected result
Each refused with the same rules the registration form applies, since a weaker change path undermines the original policy.
PRF-12

Preserve unicode and awkward names

TypeNegativePriorityHigh
Test data
Diacritics, an apostrophe, a hyphen, a single word name, right to left script and a name at maximum length
Expected result
Stored and redisplayed unchanged in the interface, in notifications, in exports and anywhere the name is rendered by another user.
PRF-13

Render a display name safely wherever it appears

TypeSecurityPriorityHigh
Test data
A name containing script markup and an event handler, then viewed in comments, mentions, admin views and email
Expected result
Escaped as text in every location. Encoding at input in one place rather than at render everywhere is how one surface ends up vulnerable.
PRF-14

Enforce limits on every text field

TypeBoundaryPriorityMedium
Test data
A bio at the maximum length, one character over, and one containing only whitespace
Expected result
Limit is enforced on the server as well as the client, counted in characters rather than bytes, and whitespace only is treated as empty.
PRF-15

Upload and replace an avatar safely

TypeSecurityPriorityHigh
Test data
A permitted image at the maximum size, one byte over, an SVG, and a script renamed to an image extension
Expected result
Refused on content inspection rather than extension, and the stored image is served in a way that cannot execute in the application origin.
PRF-16

Strip metadata from an uploaded avatar

TypeSecurityPriorityHigh
Test data
A photograph containing GPS coordinates and device details
Expected result
Location metadata is removed from the stored derivative, since a profile photograph otherwise publishes where the person was standing.
PRF-17

Remove an avatar and fall back cleanly

TypeStatePriorityMedium
Test data
Delete a custom avatar, then view the profile in every surface that shows it
Expected result
Placeholder appears everywhere including cached and edge served views, and the old image is no longer retrievable by its previous URL.
PRF-18

Apply a timezone change consistently

TypeBoundaryPriorityHigh
Test data
Change timezone, then view timestamps, scheduled items and a report covering a day boundary
Expected result
Timestamps shift, calendar dates such as a birthday do not, and scheduled items are handled by a documented rule rather than moving unexpectedly.
PRF-19

Apply a language or locale change everywhere

TypeFunctionalPriorityHigh
Test data
Change locale, then check the interface, notifications, exports and generated documents
Expected result
Every surface follows the selection, and number and date formats change with it rather than only the interface strings.
PRF-20

Persist accessibility and display preferences

TypeStatePriorityMedium
Test data
Set theme, reduced motion and text size, then sign in on another device
Expected result
Preferences follow the account where the policy says so, and an explicit choice is never overridden by a system default on the next device.
PRF-21

Control profile visibility

TypeSecurityPriorityHigh
Test data
Set a field to private, then request the profile as another user, as an anonymous visitor and through search
Expected result
Hidden on all three paths and absent from the response payload rather than merely not rendered.
PRF-22

Change the account identifier or username safely

TypeStatePriorityHigh
Test data
Change a username that appears in URLs, then request the old one
Expected result
Documented behaviour applied, the old handle is not immediately claimable by someone impersonating the user, and existing links do not break silently.
PRF-23

Manage linked sign in methods

TypeSecurityPriorityHigh
Test data
Link a second provider, then unlink the only remaining sign in method on an account with no password
Expected result
Linking requires re-authentication and unlinking the last method is refused, because completing it locks the user out permanently.
PRF-24

Show active sessions and revoke one

TypeSecurityPriorityHigh
Test data
Three active sessions, one revoked from another device
Expected result
List reflects genuinely active sessions with device and last used time, and the revoked session is refused immediately including its refresh token.
PRF-25

Handle a settings save when the backend is unavailable

TypeStatePriorityHigh
Test data
Make the save request time out, then fail outright
Expected result
Clear recoverable message with the entered values retained, and the timed out case resolves to one definite state rather than an ambiguous success.
PRF-26

Keep the danger zone deliberate

TypeNegativePriorityHigh
Test data
Trigger account deletion, plan downgrade and data reset
Expected result
Each requires explicit confirmation naming the consequence, is separated from routine controls, and cannot be triggered by a single misplaced click.
PRF-27

Remain usable on a narrow viewport

TypeCompatibilityPriorityMedium
Test data
The full settings screen on a small viewport with the soft keyboard open
Expected result
The focused field stays visible, tabs or sections remain reachable, and no save control is hidden behind the keyboard.
PRF-28

Complete every settings task with a keyboard and a screen reader

TypeAccessibilityPriorityHigh
Test data
Keyboard only navigation through tabs, toggles, the avatar control and the confirmation dialogues
Expected result
Toggle state is announced, save results and errors are announced rather than only shown, and dialogues trap and restore focus correctly.

What goes in each field

ID

Required

Stable identifier, prefixed by module.

Test case

Required

What is being verified, in one line.

Type

Functional, negative, boundary, security, state, performance, accessibility or compatibility. Use it to check coverage is spread rather than clustered on the happy path.

Priority

Risk based. Anything that reports a save which did not happen, lets one user change another profile, or exposes personal data through a profile surface is High. Cosmetic settings are Medium.

Test data

The specific values, including the invalid and boundary ones.

Expected result

Required

The precise observable outcome, including message text where the wording itself is the requirement.

How To Use This

Fail one field, save the rest

Changing a name and seeing it stick is the whole of most settings testing. These four conditions are where settings lie to the user.

Make one field fail on the server

A blanket success message over a partial write is the defect here. The user believes six things changed, five did, and nobody finds out until it matters.

Reject the change after the interface accepted it

Optimistic updates have to roll back. Leaving the new value on screen means the user is convinced a setting is active when the server never took it.

Send fields you should not own

Put role, plan, verified status and balance into the profile payload. A settings form is the quietest place in the product to attempt a privilege escalation.

Change the password, then use the other devices

If those sessions still work, the change did not evict anyone. That is the exact moment a user changes their password for, and it silently failed.

What Most Sets Miss

Why settings defects erode trust

A settings screen is a promise that what the user typed is now true, and the fastest way to break that promise is a success message the server did not earn. Optimistic interfaces make this the default failure: the value updates locally, the request fails or partially fails, and nothing corrects the display. The user leaves believing a notification preference is off, a timezone is set or a visibility flag is private, and behaves accordingly. Testing it means forcing a single field to fail server side and checking that the interface says which one, rather than reporting the whole form as saved.

The security cases on this screen are disproportionate to how mundane it looks. A profile update endpoint that accepts a role, plan or verified flag from the client is a privilege escalation wearing an ordinary form. Changing email or password without re-authentication turns any unattended session into an account takeover. And a password change that does not invalidate other sessions fails at precisely the moment it is needed, because the user is usually changing it in response to a suspected compromise.

Free text on a profile is rendered by other people, which makes it an output encoding problem rather than an input validation one. A display name containing markup will often be escaped correctly on the profile page and rendered raw in a mention, an admin view, an export or an email, because encoding was applied where the value was entered rather than everywhere it appears. The avatar is the same shape of problem in binary form: accepted on extension rather than content, and served from the application origin where an SVG can execute.

Finally, the settings that look cosmetic have reach. A timezone change has to move timestamps without moving calendar dates such as a birthday, and it has to reach scheduled items by a documented rule rather than shifting them unexpectedly. A locale change has to reach notifications, exports and generated documents, not only the interface. And a visibility flag has to remove the field from the response payload rather than merely hiding it, because a value that is present but not displayed is still readable.

Suggest an improvement

Testing account management flows?

QAble tests account surfaces end to end, including save integrity, re-authentication rules, session invalidation, upload handling and how preferences propagate.

Usability testing services

More test case sets

View all

Test cases for a login page

Test cases
25 cases across functional, negative, boundary, security, session and accessibility paths, including account enumeration and lockout.

Test cases for a registration form

Test cases
28 cases covering validation, duplicate accounts, email verification, password rules and the enumeration leak most signup forms ship with.

Test cases for search functionality

Test cases
28 cases across relevance, partial and fuzzy matching, filters, pagination, empty states, injection attempts and performance under load.

Test cases for a shopping cart

Test cases
27 cases on quantity limits, price recalculation, stock changes, coupon stacking, guest to account merge and cart persistence.

Test cases for checkout and payment

Test cases
30 cases including 3D Secure, declines, timeouts, duplicate charges, idempotency, refunds and partial captures.

Test cases for file upload

Test cases
28 cases on size and type limits, spoofed content types, malicious filenames, progress, resume, virus scanning and storage limits.

Test cases for forgot password

Test cases
26 cases on reset token expiry, single use enforcement, session invalidation and the enumeration and rate limit gaps that are routine here.

Test cases for OTP verification

Test cases
26 cases on expiry, resend throttling, attempt limits, code reuse, delivery failure and the brute force window teams forget to close.

Test cases for user roles and permissions

Test cases
26 cases on horizontal and vertical privilege checks, direct object access, role changes mid-session and permission inheritance.

Test cases for form validation

Test cases
27 rules-based cases on required fields, length and numeric boundaries, client and server parity, hidden field tampering and error accessibility.

Test cases for a date picker

Test cases
26 cases on timezone shifts, ambiguous day and month order, impossible dates, min and max limits, leap years and keyboard operation.

Test cases for pagination

Test cases
24 cases on ordering stability, records changing mid-session, page size caps, deep offset cost, permission-filtered totals and state restore.

Test cases for push notifications

Test cases
26 cases on app states, deep link routing, token release on sign out, lock screen privacy, preferences, provider failures and platform differences.

Test cases for reports and data export

Test cases
25 cases on permission filtering in the file, spreadsheet formula injection, encoding, typed numbers and dates, row limits and audit logging.

Test cases for a chatbot

Test cases
28 cases on paraphrased intents, context, fallback loops, human handoff, policy grounding, prompt injection and data scoping.

Test cases for net banking transactions

Test cases
28 cases on duplicate debits from a retried request, concurrent transfers against one balance, daily limits across channels, beneficiary cooling periods, second factor binding and reconciliation.

Test cases for wallet and UPI payments

Test cases
28 cases on payments that time out with no response, idempotency on retry, racing balances, caps across devices, collect request fraud, mandates and refunds.

Test cases for insurance claim submission

Test cases
28 cases on coverage at the date of loss, waiting periods, deductibles and sub limits, exclusions and riders, duplicate claims and settlement reconciliation.

Test cases for patient records in an EHR

Test cases
28 cases on duplicate detection and merge, wrong patient entry, units of measure, allergy and interaction alerting, break glass access and audit of reads.

Test cases for CRM lead management

Test cases
28 cases on duplicate leads under concurrency, routing and the unrouted fallback, round robin races, territory visibility, conversion and bulk import.

Test cases for an ERP purchase order

Test cases
28 cases on approval thresholds, amendments that must reset approval, budget commitment races, over receipt tolerance, three-way match and duplicate invoices.

Test cases for OTT video playback

Test cases
28 cases on bitrate recovery after a dip, DRM renewal mid stream, concurrent stream limits and leaked slots, resume conflicts, ad cue points and offline expiry.

Test cases for game level progression

Test cases
28 cases on save corruption during a crash write, cloud save conflicts, offline queue replay, unlock gating, currency exploits and purchase restore.

Test cases for a REST API

Test cases
28 cases on status code correctness, cross tenant resource access, mass assignment, idempotent retries, cursor pagination, rate limits and contract drift.

Test cases for SSO and social login

Test cases
28 cases on linking an account on an unverified email, state and code replay, redirect allow lists, token signature and issuer, deprovisioning and session rotation.

Test cases for subscription and billing

Test cases
28 cases on mid cycle proration, duplicate and out of order webhooks, renewal double charges, dunning and grace, trials, coupons, metered usage and tax.

Test cases for data tables, filters and sorting

Test cases
28 cases on unstable sorts across pages, filters that must reset pagination, selection surviving a filter change, bulk action scope and export fidelity.

Test cases for session timeout and concurrent login

Test cases
28 cases on tokens that survive sign out, refresh token reuse, idle against absolute lifetime, multi tab expiry, session limits and remote revocation.

Test cases for a multi step form wizard

Test cases
28 cases on values lost to back navigation, refresh and session expiry, step skipping, server side revalidation, duplicate submission and conditional branches.

Test cases for email verification

Test cases
28 cases on token reuse and expiry, invalidating earlier links, account enumeration, header injection, safe address change and mail scanner prefetching.

Test cases for dashboards and analytics widgets

Test cases
28 cases on reconciling against source rows, widgets that disagree, timezone aggregation, zero baselines, no data shown as zero and permission leaks in aggregates.

Test cases for booking and reservation

Test cases
28 cases on concurrent bookings for the last slot, inventory holds that leak, payment without a booking, cancellation boundaries and channel sync.

Test cases for mobile app install and update

Test cases
28 cases on migration chains across skipped versions, crashes during post upgrade migration, forced update lockouts, deep links and clean reinstall.

Test cases for accessibility (WCAG 2.2 AA)

Test cases
28 cases on keyboard only completion, focus management, live region announcements, contrast, reflow at 320 pixels, target size and screen reader verification.

Test cases for performance and load

Test cases
28 cases on spikes with no ramp, recovery after peak, soak and leak detection, pool exhaustion, cold caches, retry storms and data correctness under load.

Test cases for the OWASP Top 10

Test cases
28 cases on broken access control, mass assignment, injection across every input surface, credential stuffing, session invalidation, SSRF and exposed secrets.

Test cases for cross browser compatibility

Test cases
28 cases on storage that throws in private mode, blocked third party cookies, engine date parsing, mobile viewport units, in app browsers and ad blockers.

Test cases for database and data integrity

Test cases
28 cases on uniqueness under concurrency, lost updates, counter races, orphaned rows, migration and backfill safety, replica lag and verified restores.

Test cases for localisation and multi language support

Test cases
28 cases on text expansion, concatenated sentences, plural rules, locale date parsing, decimal separators, right to left layout, collation and encoding.

Test cases for outbound webhooks

Test cases
28 cases on retry backoff and dead letter stores, one dead consumer degrading the pipeline, payload signing and replay windows, out of order delivery and endpoint SSRF.

Test cases for background jobs and queues

Test cases
28 cases on work outliving the visibility timeout, idempotent handlers, poison messages, priority starvation, scheduler overlap across instances and graceful drain.

Test cases for real time features and websockets

Test cases
28 cases on messages lost in the reconnect gap, half open connections, per channel authorisation, tokens expiring mid connection, backpressure and fanout across instances.

Test cases for file storage and media processing

Test cases
28 cases on signed URL scope and expiry, serving before scanning completes, content type sniffing, metadata stripping, orphaned objects and derivative failures.

Test cases for CSV import and bulk operations

Test cases
28 cases on reruns duplicating successes, delimiters inside quoted fields, byte order marks, leading zeros, ambiguous dates and bulk action scope.

Test cases for feature flags and progressive rollout

Test cases
28 cases on unreachable flag services, unstable bucketing, rollouts that reshuffle users, kill switch latency, server and client mismatch and stale flags.

Test cases for Android app lifecycle and permissions

Test cases
28 cases on state lost to process death, configuration changes, permanent permission denial, revocation while backgrounded, doze and battery restrictions.

Test cases for iOS app lifecycle and permissions

Test cases
28 cases on the keychain surviving uninstall, suspended termination, limited photo access, allow once location, app switcher snapshots and biometric invalidation.

Test cases for wearable app sync

Test cases
28 cases on data recorded away from the phone, duplicate records on resync, full buffers, clock drift, health permissions, battery budgets and unworn readings.

Test cases for VR and AR experiences

Test cases
28 cases on the frame rate comfort floor, tracking loss, guardian boundaries, involuntary camera movement, AR anchor drift and spatial data privacy.

Test cases for IoT device pairing and telemetry

Test cases
28 cases on offline buffering and reconnect floods, fleet wide reconnection storms, shared credentials, wrong device clocks and stale queued commands.

Test cases for embedded firmware update

Test cases
28 cases on power loss mid write, automatic rollback and health confirmation, signature and anti rollback checks, staged rollouts and recovery mode.

Test cases for account deletion and data export

Test cases
28 cases on export links that must be authorised and expiring, deletion cascading to storage, caches, logs and processors, grace periods, legal holds and deadlines.

Test cases for consent and cookie management

Test cases
28 cases on cookies and tracking requests firing before consent, reject parity with accept, tag manager bypass, withdrawal, cached banners and server side forwarding.

Test cases for notification preferences and delivery

Test cases
28 cases on opt outs honoured on one channel and ignored on another, marketing sent as transactional, unsubscribe scope, imports resetting consent and digest timezones.

Test cases for admin impersonation and support access

Test cases
28 cases on actions attributed to the customer instead of the admin, credential exposure, chained and upward impersonation, session expiry and immutable access records.

Test cases for audit logs and activity history

Test cases
28 cases on forged entries through log injection, immutability and tamper detection, actor attribution across impersonation and jobs, retention and legal holds.

Want your settings behaviour proven, not assumed?

QAble covers functional, state and security paths with ISTQB-certified engineers. Start with a free QA audit of your product.

Talk to QA Advisor