How to Test Forgot Password on Android (Complete Guide)

The "Forgot Password" functionality is a critical component of any Android application requiring user authentication. A flawed implementation directly impacts user experience, potentially leading to a

May 25, 2026 · 6 min read · How-To Guides

Robust Android Forgot Password Flows: A Practical Testing Guide

The "Forgot Password" functionality is a critical component of any Android application requiring user authentication. A flawed implementation directly impacts user experience, potentially leading to account lockouts, frustration, and lost business. This guide details how to thoroughly test these flows, ensuring reliability and security.

The High Stakes of Password Resets

Users expect a seamless and secure password recovery process. Failures here are not minor inconvenconveniences; they can prevent legitimate users from accessing their accounts entirely. Common issues include:

Comprehensive Test Cases for Forgot Password

Beyond the obvious "happy path," a robust testing strategy requires exploring various failure points and user behaviors.

Happy Path Scenarios:

  1. Successful Email Reset:
  1. Successful SMS Reset (if applicable):

Error Scenarios:

  1. Invalid Email/Phone Number:
  1. Malformed Email/Phone Number:
  1. Expired Reset Link/Code:
  1. Incorrect Password Confirmation:
  1. Weak Password Attempt:
  1. Multiple Reset Requests:

Edge Cases:

  1. Account Already Logged In:
  1. Special Characters in Email/Username:
  1. Case Sensitivity:

Accessibility Considerations:

  1. Screen Reader Compatibility:
  1. Dynamic Type Support:
  1. Sufficient Color Contrast:

Manual Testing Approach

  1. Locate the Forgot Password Link: On the login screen, find and tap the "Forgot Password?" or similar link.
  2. Enter Identifier: Input your registered email address or phone number into the designated field.
  3. Submit Request: Tap the "Submit," "Send Reset Link," or equivalent button.
  4. Check Email/SMS: Access your email inbox or SMS messages. Locate the password reset message.
  5. Follow Link/Use Code:
  1. Set New Password: On the password reset screen, enter your new password. Ensure it meets complexity requirements.
  2. Confirm New Password: Re-enter the new password to confirm.
  3. Save Changes: Tap "Reset Password," "Save," or similar.
  4. Verify Login: Navigate back to the login screen and attempt to log in using your new password.
  5. Test Error Paths: Systematically repeat steps 1-9, substituting valid inputs with invalid ones, expired links/codes, or non-compliant passwords as per the test cases above.

Automated Testing Approach for Android

While manual testing is essential for exploring user journeys, automation is key for regression.

Example (Conceptual Java with Appium):


    // Assuming you have initialized your AndroidDriver
    MobileElement forgotPasswordLink = driver.findElementByAccessibilityId("forgot_password_button");
    forgotPasswordLink.click();

    MobileElement emailField = driver.findElementById("com.your.app:id/email_input");
    emailField.sendKeys("testuser@example.com");

    MobileElement submitButton = driver.findElementById("com.your.app:id/submit_reset_button");
    submitButton.click();

    // ... (Assertions for email delivery or code entry would be more complex,
    // often involving external services or mocked responses for true automation)

SUSA's Autonomous Approach to Forgot Password Testing

SUSA (SUSATest) automates this entire process by treating your Android app as a black box. You simply upload your APK to susatest.com. SUSA's autonomous engine then explores your application without requiring any pre-written scripts.

How SUSA Tests Forgot Password:

  1. Autonomous Exploration: SUSA's engine navigates through your app, discovering the "Forgot Password" entry point. It uses its understanding of common UI patterns to locate it.
  2. Persona-Driven Testing: SUSA employs multiple user personas, each with unique interaction styles:
  1. Issue Detection: During its autonomous exploration, SUSA identifies:
  1. Flow Tracking & Verdicts: SUSA tracks the critical "Forgot Password" flow. It can provide a PASS/FAIL verdict based on whether the user can successfully initiate, complete, and verify the password reset process without encountering critical errors.
  2. Auto-Generated Regression Scripts: A key benefit of SUSA is that after its initial autonomous run, it auto-generates robust Appium (for Android) regression test scripts. These scripts capture the successful flows and common failure points identified, allowing you to integrate them into your CI/CD pipeline. This means your forgot password flow will be automatically re-tested with every build.
  1. Cross-Session Learning: With each run, SUSA learns more about your application. If a particular reset flow was problematic in one run, SUSA will revisit and test it more rigorously in subsequent runs, getting smarter about your specific app's behavior.

By combining manual exploration, targeted test case design, and the power of SUSA's autonomous testing, you can build confidence

Test Your App Autonomously

Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.

Try SUSA Free