Password reset looks like a simple feature.
A user clicks Forgot Password, enters an email address, receives a recovery link, creates a new password, and logs in again.
But from a QA perspective, password recovery is much more than a form and an email.
The flow involves identity, authentication, tokens, expiration, sessions, redirects, email delivery, password policies, rate limiting, account privacy, and security.
A small mistake can create serious consequences.
A reset link that never expires can remain usable long after it should.
A token that can be reused may allow repeated password changes.
An application that responds differently for registered and unregistered email addresses can reveal which users have accounts.
A reset flow that does not invalidate existing sessions may leave compromised accounts exposed.
And a recovery link that works in one browser but fails after a redirect can turn a legitimate recovery request into a support ticket.
This makes password reset testing an important part of both functional QA and security-focused testing.
This guide explains how QA teams can systematically test password reset and account recovery flows, including positive scenarios, edge cases, token behavior, security boundaries, session handling, and automation.
---
What Is Password Reset Testing?
Password reset testing verifies that users can securely recover access to their accounts when they forget their passwords.
A typical password reset flow looks like:
Forgot Password → Enter Email → Receive Recovery Link → Open Link → Create New Password → Login
QA needs to verify every stage of this journey.
That includes:
- Forgot-password form
- Email validation
- Account lookup
- Reset token generation
- Email delivery
- Reset URL
- Token expiration
- Token validity
- Password validation
- Password update
- Session invalidation
- Login after reset
- Existing-session behavior
- Error handling
- Rate limiting
- Account privacy
- Browser behavior
- Mobile behavior
The important point is that password reset testing is not just UI testing.
It is testing the complete recovery mechanism.
---
Why Password Reset Testing Matters
Password recovery is often treated as a secondary feature because users normally interact with it only when something has gone wrong.
But that is exactly what makes it important.
When a user forgets their password, they are already blocked from the product.
The recovery process must therefore be:
- Reliable
- Understandable
- Secure
- Predictable
- Fast enough
- Resistant to abuse
A failure can create several types of problems.
Functional problem
The user never receives the reset email.
Usability problem
The user clicks the link but doesn't know what to do next.
Security problem
The reset token can be reused.
Privacy problem
The application reveals whether an email address belongs to an account.
Session problem
A password change does not invalidate sessions created before the reset.
Integration problem
The email contains a broken URL.
Password recovery therefore deserves dedicated test coverage rather than being treated as a small part of login testing.
---
Anatomy of a Password Reset Flow
A typical implementation can be represented as:
```text
User
↓
Forgot Password
↓
Enter Email
↓
Recovery Request
↓
Token Generated
↓
Reset Email Sent
↓
User Opens Link
↓
Token Validated
↓
New Password
↓
Password Updated
↓
Sessions Handled
↓
Login
Every transition is a potential test boundary.
For example:
What happens if the email does not exist?
What happens if the token expires?
What happens if the token is modified?
What happens if the token is used twice?
What happens if the user requests two reset links?
What happens if the password violates the policy?
What happens to existing sessions after the password changes?
A good test strategy follows the entire flow rather than testing the reset form in isolation.
Password Reset Testing Categories
A useful password-reset test strategy can be divided into:
Functional testing
Validation testing
Token testing
Expiration testing
Security testing
Session testing
Email testing
Browser testing
Abuse and rate-limit testing
Recovery-flow automation
Each category catches a different class of defect.
1. Test the Forgot Password Form
Start with the recovery request form.
Typical input:
Email address
Test the obvious cases first.
Valid email
Enter a valid account email.
Expected:
Request is accepted.
Appropriate confirmation is displayed.
Recovery process begins.
Invalid email
Examples:
abc
user@
@example.com
user.example.com
Verify that invalid input is handled correctly.
Empty email
Submit without entering anything.
Expected:
Validation message appears.
No unnecessary recovery request is created.
Leading and trailing spaces
Test:
user@example.com
The application should handle whitespace consistently.
Case variation
Test:
User@example.com
versus:
user@example.com
Email handling should follow the application's intended account rules.
2. Test Existing and Nonexistent Accounts
This scenario is important for both functionality and security.
Test with:
Existing account
Nonexistent account
Disabled account
Locked account
Unverified account
Deleted account where applicable
The application should follow a consistent privacy-preserving response where appropriate.
For example, instead of clearly stating:
No account exists for this email.
the product may use a generic message such as:
If an account exists for this email address, you will receive recovery instructions.
The exact product behavior may vary, but QA should deliberately test whether account existence is unintentionally revealed.
3. Test Account Enumeration
Account enumeration occurs when an attacker can determine whether a specific email address is registered.
For example:
Existing email
Response:
Reset email sent.
Nonexistent email
Response:
No account found.
That difference can reveal which users have accounts.
Test for differences in:
Message text
HTTP response
Response body
Status code
Timing
Redirect behavior
UI behavior
A secure implementation should avoid unnecessarily exposing account existence.
This is especially important for applications where user identities are sensitive.
4. Test Reset Email Generation
Once a valid recovery request is submitted, verify the email.
Check:
Email is generated.
Correct recipient receives it.
Subject is correct.
Branding is correct.
Reset URL exists.
URL points to the correct environment.
Link is not malformed.
Instructions are understandable.
Expiration information is accurate if displayed.
No sensitive information is unnecessarily included.
Also verify that links generated in test environments do not accidentally point to production.
5. Test the Reset URL
A reset URL often looks conceptually like:
https://example.com/reset-password?token=...
The token is a security-sensitive value.
Test:
Valid token
Invalid token
Modified token
Empty token
Missing token
Expired token
Previously used token
The application should not treat arbitrary values as valid recovery credentials.
6. Test Token Expiration
Reset tokens should have a defined lifetime according to the application's security requirements.
Test:
Request password reset.
Receive the token.
Wait until the token expires or simulate expiration.
Open the reset URL.
Attempt to set a new password.
Expected:
Token is rejected.
Password is not changed.
User receives a clear recovery message.
User can request a new reset link.
Expiration testing is particularly important because password reset links can be stored in email accounts, browser history, screenshots, logs, and other places.
7. Test Token Reuse
A critical scenario is using the same reset token more than once.
Example:
Request reset.
Open valid reset link.
Change password successfully.
Return to the same reset URL.
Try to change the password again.
The previously used token should normally no longer be accepted.
This helps prevent replay-style attacks against recovery credentials.
8. Test Multiple Reset Requests
What happens when the user requests multiple reset links?
For example:
Request reset.
Receive Token A.
Request reset again.
Receive Token B.
Test:
Token A
Token B
Token A after Token B is generated
Token B after Token A is generated
The application's intended policy should be explicit.
Some systems invalidate previous tokens when a new reset request is generated.
Others may allow multiple valid tokens within a controlled window.
QA should verify the actual intended behavior rather than assuming one implementation.
9. Test Token Modification
A reset token should not become valid simply because it looks structurally correct.
Test modifications such as:
Remove characters
Add characters
Change characters
Change encoding
Copy only part of the token
Replace the token entirely
Duplicate query parameters
Modify URL parameters
Expected:
The token should be rejected.
10. Test Missing and Malformed Tokens
Test URLs such as:
/reset-password
/reset-password?token=
/reset-password?token=invalid
/reset-password?token=123
The application should respond safely.
It should not:
Crash
Display internal errors
Load another user's reset form
Assume a default account
Reveal sensitive implementation details
11. Test Password Validation
Once the reset page loads, test the new-password rules.
Depending on the product, this might include:
Minimum length
Maximum length
Uppercase requirement
Lowercase requirement
Number requirement
Special character requirement
Previously used password restriction
Common-password restriction
Password confirmation
Test boundary values.
For example, if the minimum length is 12:
11 characters
12 characters
13 characters
Do not assume the UI validation is enough.
The backend should enforce password rules as well.
12. Test Password Confirmation
If the form contains:
New Password
and:
Confirm Password
test:
Matching values
Password:
ExamplePassword123!
Confirm:
ExamplePassword123!
Expected:
Password can be submitted.
Different values
Password:
ExamplePassword123!
Confirm:
ExamplePassword456!
Expected:
Submission is rejected.
Also test differences involving:
Case
Spaces
Special characters
Leading/trailing whitespace
13. Test Password Policy Enforcement on the Backend
A common mistake is validating password rules only in the frontend.
A user may bypass browser validation by sending a request directly.
Therefore, test the backend behavior as well.
For example, if the application requires:
Minimum 12 characters
One number
One special character
try submitting an invalid password through the underlying request.
The server should still reject it.
This is an important distinction between:
UI validation
and
security validation.
14. Test Password Reuse Rules
If the product prevents users from reusing recent passwords, test it.
Example:
Current password:
PasswordA
Attempt to reset to:
PasswordA
Expected:
The password should be rejected if password history rules prohibit reuse.
Also test:
Immediate previous password
Older password
Similar password
Case variation
Minor modification
The exact policy depends on the product.
15. Test Successful Password Reset
The primary happy path should verify the entire journey.
Example:
User requests password reset.
User receives email.
User opens the link.
User enters a valid new password.
Password is accepted.
User receives confirmation.
User logs in using the new password.
Then verify that the old password no longer works.
This is one of the most important end-to-end recovery scenarios.
16. Test the Old Password After Reset
After successfully resetting the password:
Try the old password.
Try the new password.
Expected:
Old password:
Rejected
New password:
Accepted
If the old password continues to work when the product expects it to be invalidated, investigate the authentication implementation.
17. Test Existing Sessions After Password Reset
This is a critical security scenario.
Imagine a user is logged in on:
Laptop
Phone
Tablet
The user then resets their password.
What happens to the existing sessions?
The intended behavior depends on the product's security model.
Some applications invalidate all existing sessions.
Others may keep trusted sessions active while requiring reauthentication in certain circumstances.
QA should verify the documented product behavior.
This is particularly important when password recovery is being used because the user may suspect their credentials were compromised.
18. Test Login After Password Reset
After the reset:
New password
Should authenticate successfully.
Old password
Should behave according to the product's password invalidation rules.
Also verify:
Remember-me behavior
MFA behavior
Device trust
Session creation
Login redirects
Password reset should integrate correctly with the rest of the authentication system.
19. Test Password Reset With MFA
If the application supports multi-factor authentication, test how recovery interacts with it.
Possible flows include:
Forgot Password → Reset Password → MFA → Login
or:
Forgot Password → Identity Verification → Reset Password
Test:
Valid MFA
Invalid MFA
Expired MFA challenge
Missing MFA
Recovery from a new device
Recovery when the MFA device is unavailable
The exact flow depends on the application's security model.
The important point is that password recovery should not accidentally bypass stronger authentication controls.
20. Test Disabled and Locked Accounts
Password recovery behavior may differ for:
Disabled users
Locked accounts
Suspended accounts
Deleted accounts
Unverified accounts
Test each relevant account state.
Verify that the application does not accidentally restore access to accounts that should remain disabled.
21. Test Rate Limiting
Password reset endpoints are attractive targets for abuse.
Test repeated requests from the same:
Account
IP
Device
Session
The application may use:
Rate limiting
Temporary delays
CAPTCHA
Account-level throttling
IP-level controls
The exact mechanism depends on the product.
QA should verify that repeated recovery requests do not create uncontrolled abuse opportunities.
22. Test Email Delivery Delays
Email is asynchronous.
The reset request may succeed while the email takes time to arrive.
Test scenarios such as:
Immediate delivery
Delayed delivery
Duplicate email
Email provider failure
Temporary delivery failure
The application should provide a sensible user experience.
For example, repeatedly clicking Send Again should not create uncontrolled reset requests.
23. Test Resend Behavior
If the product provides:
Resend Reset Email
test:
Single resend
Multiple resends
Rapid clicks
Resend after token expiration
Resend after successful reset
Also verify which token remains valid according to the application's design.
24. Test Reset Link in Different Browsers
Users may open recovery emails on one device and complete the process on another.
Test:
Chrome
Edge
Firefox
Safari where applicable
Mobile browsers
Also test scenarios such as:
Request reset on desktop.
Open email on phone.
Open link on phone.
Complete password reset.
This can reveal assumptions about browser state or device state.
25. Test Reset Links in Mobile Email Applications
Many password resets begin inside mobile email applications.
Test links opened from:
Gmail
Outlook
Mobile email clients
Messaging applications where links may be forwarded
Verify:
Link opens correctly.
Correct browser/app is launched.
Token is preserved.
Page renders correctly.
Password fields work correctly.
Reset succeeds.
26. Test Browser Back Button
Password reset pages often contain security-sensitive state.
Test:
Open reset link.
Enter a new password.
Complete reset.
Press Back.
Attempt to submit the form again.
The application should handle the old reset state safely.
This can help expose token reuse and stale-page issues.
27. Test Opening the Reset Link Multiple Times
Test:
Receive a valid reset link.
Open it in one browser tab.
Open it again in another tab.
Attempt to complete the reset in both.
This can expose concurrency problems.
For example:
Tab A:
Password A
Tab B:
Password B
The product should have a clearly defined outcome.
28. Test Concurrent Password Reset Requests
Use multiple reset requests at nearly the same time.
Check:
Token behavior
Email ordering
Token invalidation
Password state
Session behavior
Error handling
This is particularly useful for detecting race conditions.
29. Test Reset URL Leakage
Reset tokens are sensitive.
QA should consider where tokens might appear.
Potential locations include:
Browser history
Server logs
Analytics
Referrer data
Screenshots
Monitoring tools
Third-party scripts
The application should minimize unnecessary exposure of recovery credentials.
Where technically appropriate, teams may also use patterns that reduce the lifetime or exposure of sensitive tokens in URLs.
30. Test Error Handling
Password reset should fail gracefully.
Test scenarios such as:
Email service unavailable
Database failure
Token service failure
Expired token
Invalid token
Password update failure
Network interruption
Session expiration
The user should receive a useful message without seeing:
Stack traces
Internal database details
Secrets
Tokens
Debug information
Password Reset Test Case Matrix
A practical matrix might look like this:
Scenario Expected Result
Valid registered email Recovery process starts
Unknown email Privacy-preserving response
Invalid email Validation error
Empty email Validation error
Valid reset token Reset page opens
Expired token Token rejected
Modified token Token rejected
Used token Token rejected
Missing token Safe error
Valid new password Password updated
Weak password Rejected
Mismatched confirmation Rejected
Old password after reset Rejected according to policy
New password after reset Login succeeds
Unauthorized session Handled according to security policy
Multiple reset requests Defined token behavior
Excessive reset requests Rate limiting applied
Disabled account Correct account-state behavior
Password Reset Security Testing
Password recovery is a security-sensitive workflow, so QA should think beyond functional correctness.
Important security questions include:
Can an attacker determine whether an account exists?
Can a reset token be reused?
Can a token be modified?
Can an expired token still work?
Can one user's token reset another user's account?
Can password reset bypass MFA?
Can an unauthorized user change the password?
Are existing sessions handled correctly?
Are reset tokens exposed unnecessarily?
Can the endpoint be abused through unlimited requests?
These questions can reveal issues that ordinary functional testing misses.
Testing for Cross-Account Token Problems
A particularly important scenario is verifying that a token belongs to the correct account.
Suppose:
User A requests a reset.
User B should never be able to use User A's token to change User B's password.
Test that the token is cryptographically and logically bound to the correct recovery request.
Also verify that modifying account-related URL parameters does not change which account the token represents.
For example, if a reset URL contains both:
user=123
and:
token=ABC
changing the user identifier should not allow the token to operate on another account.
The server should derive identity from trusted recovery credentials rather than trusting user-controlled parameters.
Testing Reset Token Predictability
Reset tokens should not be predictable.
From a QA perspective, test that generated tokens do not follow obvious sequences such as:
12345
12346
12347
or other easily guessable patterns.
The actual security implementation should use appropriate cryptographic mechanisms.
QA should not attempt to break cryptographic systems through brute force, but predictable-token behavior should be treated as a serious security finding.
Password Reset Automation Strategy
A strong automated suite should cover the highest-risk scenarios.
A basic automated flow can be:
Create or identify a test account.
Request password reset.
Capture the test recovery email.
Extract the reset URL.
Open the URL in a browser.
Set a valid new password.
Verify successful completion.
Attempt login with the new password.
Attempt login with the old password.
Verify expected session behavior.
Then add negative tests:
Invalid token
Expired token
Used token
Invalid password
Mismatched confirmation
Unauthorized request
Multiple reset requests
Separating Functional and Security Test Suites
Not every password reset test needs to run on every commit.
A practical approach is to divide them.
Fast CI Tests
Run frequently:
Valid reset
Invalid email
Invalid password
Mismatched passwords
Valid login after reset
Old password behavior
Extended Tests
Run regularly:
Token expiration
Token reuse
Multiple reset requests
Role/account-state combinations
Browser variations
Security-Focused Tests
Run according to the team's security testing process:
Account enumeration
Token manipulation
Authorization boundaries
Session invalidation
Rate limiting
Token exposure
Cross-account scenarios
This keeps the main pipeline efficient while maintaining deeper coverage.
How AI Can Improve Password Reset Testing
Password recovery is a good candidate for AI-assisted test design because the workflow contains many combinations.
AI can analyze:
Authentication flows
User roles
Account states
Token states
Password policies
Existing tests
API contracts
Browser workflows
and identify scenarios that may be missing.
AI-Assisted Test Scenario Generation
Instead of asking:
Generate password reset tests.
A stronger instruction is:
Analyze the password recovery workflow and generate test scenarios covering authentication state, token lifecycle, expiration, reuse, multiple reset requests, account enumeration, password policy, session behavior, rate limiting, and error handling.
This produces a more structured test plan.
AI-Assisted Token Lifecycle Analysis
AI can model a token lifecycle:
Generated → Delivered → Opened → Validated → Used → Invalidated
It can then ask:
What happens before expiration?
What happens after expiration?
What happens after use?
What happens if another token is generated?
What happens if the token is modified?
What happens if the browser is refreshed?
This helps QA reason about state transitions rather than individual screens.
AI-Assisted Account-State Testing
AI can generate a matrix involving:
Active account
Unverified account
Locked account
Suspended account
Deleted account
Admin account
Regular account
Combined with:
Valid reset
Invalid reset
Expired token
Multiple reset requests
This can reveal gaps in test coverage.
AI-Assisted Security Scenario Discovery
AI can also review the recovery workflow for potential security boundaries.
For example:
Can a user determine whether an email exists?
Can a previously used token be replayed?
Does password recovery bypass another authentication factor?
Are existing sessions still active after a security-sensitive reset?
These questions can turn a basic functional test suite into a more security-aware QA strategy.
AI should assist with identifying and prioritizing scenarios, while security-sensitive conclusions should still be validated through deterministic tests and appropriate human review.
What QA Should Log During Password Reset Tests
Useful evidence can include:
Request
Timestamp
Account test identifier
Browser/device
Request result
Token
Token state
Expiration state
Whether it was previously used
Reset-request sequence
Do not log raw production recovery tokens.
Email
Delivery status
Link destination
Timestamp
Template version
Reset
Password policy result
Success/failure
Error category
Session
Login result
Existing session behavior
New session creation
This evidence makes failures much easier to diagnose.
Common Password Reset Testing Mistakes
Mistake 1: Testing Only the Happy Path
Many teams test:
Forgot Password → Email → New Password → Login
and stop there.
That misses the highest-risk cases.
Mistake 2: Checking Only the UI
A password rule displayed in the browser does not prove the backend enforces it.
Test the server-side behavior too.
Mistake 3: Ignoring Token Lifecycle
A reset token is effectively a temporary authentication credential.
Its lifecycle deserves dedicated testing.
Mistake 4: Ignoring Account Enumeration
Different responses for valid and invalid accounts can expose user information.
Test both response content and behavior.
Mistake 5: Ignoring Existing Sessions
Changing a password can have implications beyond the next login.
Test what happens to already-authenticated devices.
Mistake 6: Testing Only One Reset Request
Real users may request multiple emails.
Test multiple reset requests and define which tokens remain valid.
Mistake 7: Ignoring Expiration
A reset link that works immediately may still be broken if it continues working after its intended lifetime.
Expiration is a core security scenario.
A Practical Password Reset Testing Workflow
A mature QA team can structure the workflow like this:
Step 1: Map the Recovery Flow
Document:
Forgot Password → Request → Email → Token → Reset → Login
Step 2: Identify Security Boundaries
Define:
Token lifetime
Token reuse policy
Account enumeration behavior
Password policy
Session policy
Rate limiting
MFA behavior
Step 3: Build the Test Matrix
Combine:
Account state
Authentication state
Token state
Password state
Browser state
Step 4: Automate the Core Journey
Automate the happy path first.
Step 5: Add Token Tests
Add:
Expired
Invalid
Modified
Used
Multiple tokens
Step 6: Add Account-State Tests
Add:
Active
Locked
Disabled
Unverified
Deleted
Step 7: Add Security Tests
Cover:
Enumeration
Authorization
Session behavior
Rate limiting
Token exposure
Step 8: Add Browser Coverage
Test supported desktop and mobile browsers.
Step 9: Add Failure Injection
Test email failures, network problems, service failures, and interrupted flows.
Step 10: Review Coverage With Risk
Prioritize scenarios based on:
Account sensitivity
Business impact
User volume
Security risk
Authentication architecture
Password Reset Testing Checklist
Forgot Password
Valid email works.
Invalid email is rejected.
Empty email is handled.
Whitespace is handled correctly.
Email casing behaves as expected.
Existing account behavior is correct.
Unknown account behavior is privacy-preserving.
Email
Reset email is generated.
Correct recipient receives it.
Subject is correct.
Reset URL is correct.
URL points to the correct environment.
Email content is correct.
Expiration information is accurate.
Token
Valid token works.
Invalid token fails.
Modified token fails.
Missing token fails safely.
Expired token fails.
Used token cannot be reused.
Multiple-token behavior is defined.
Token is associated with the correct account.
Password
Valid password works.
Weak password is rejected.
Minimum length is enforced.
Maximum length is enforced.
Password confirmation is validated.
Password history rules are enforced where applicable.
Backend validation matches frontend validation.
Authentication
New password works for login.
Old password behaves correctly.
Existing sessions follow the expected security policy.
MFA behavior is correct.
Device trust behavior is correct.
Security
Account enumeration is controlled.
Reset requests are rate-limited where required.
Tokens cannot be reused.
Tokens cannot be modified successfully.
Unauthorized users cannot reset another account.
Reset does not unintentionally bypass MFA.
Sensitive recovery information is not unnecessarily exposed.
Browser and Device
Desktop browsers work.
Mobile browsers work.
Email-app links work.
Back button behavior is safe.
Multiple-tab behavior is defined.
Refresh behavior is safe.
Error Handling
Expired token has a useful message.
Invalid token has a useful message.
Email failure is handled.
Network failure is handled.
Password update failure is handled.
No sensitive internal information is exposed.
Frequently Asked Questions
What is password reset testing?
Password reset testing verifies that users can securely recover their accounts after forgetting a password. It covers the recovery request, email delivery, reset token, expiration, password validation, authentication, session handling, and security controls.
What are the most important password reset test cases?
Important scenarios include valid reset, invalid email, nonexistent account, expired token, invalid token, token reuse, multiple reset requests, password validation, old-password behavior, session invalidation, account enumeration, and rate limiting.
Why should password reset tokens be tested?
A reset token acts as a temporary recovery credential. QA should verify that it expires correctly, cannot be modified successfully, cannot be reused when the product requires single-use behavior, and cannot be transferred between accounts.
How do you test password reset expiration?
Generate a reset request, obtain the recovery link, wait for or simulate the defined expiration period, and then attempt to use the link. The application should reject the expired token and provide a path to request a new one.
What is account enumeration in password reset?
Account enumeration occurs when an application allows someone to determine whether an email address is registered by observing differences in responses, messages, status codes, or timing.
Should password reset invalidate existing sessions?
The correct behavior depends on the application's security design. QA should verify the documented session policy, especially because a password reset may occur when a user suspects their credentials have been compromised.
Can password reset testing be automated?
Yes. Browser automation can cover the full recovery flow, including requesting a reset, retrieving a test email, opening the reset link, setting a new password, and verifying authentication behavior.
How can AI help with password reset testing?
AI can help generate scenario matrices, identify missing token lifecycle tests, analyze account-state combinations, suggest security scenarios, and compare existing automated coverage with the expected recovery workflow.
Conclusion
Password reset is one of those features that looks small in a product roadmap but carries a surprisingly large testing surface.
The happy path is straightforward:
Forgot Password → Email → Reset → Login
The real QA challenge begins outside that path.
What happens when:
The token expires?
The token is used twice?
Two reset emails are requested?
The email doesn't exist?
The account is locked?
The password is too weak?
The old password is used?
Multiple devices are already logged in?
The reset link is opened in another browser?
The URL is modified?
The recovery service fails?
An attacker tries to discover registered accounts?
Those scenarios are where password recovery quality is actually tested.
A strong password reset strategy therefore treats the feature as an authentication system rather than simply another form.
Test the complete lifecycle:
request → token → delivery → validation → expiration → password change → session handling → login
Then add the security boundaries around it.
AI can help QA teams discover combinations and coverage gaps, but the most important principle remains the same:
Password recovery must be reliable for legitimate users and difficult to abuse for everyone else.
That is what makes password reset testing a core part of modern software quality.
