99testsStart a job

Test case library · Login & identity

Test cases for mobile number sign-up and device binding

These cases cover creating an account with an Indian mobile number: entering and checking the number, verifying it by OTP, filling profile details, applying a referral code and accepting consents. They also cover SIM-based device binding, where banking-style apps send a verification SMS from the phone itself, which breaks on dual-SIM phones, prepaid SIMs with no outgoing SMS left and SIMs removed after sign-up.

34 test cases8 release-blocking (P1)14 need a real phoneUpdated 2026-10-29

From the reviews. Login and OTP failures were 16.4% of the malfunction reviews in our India App Quality Report, and 7.1% of all reviews on banking app storefronts, the highest of any category.

category page · India App Quality Report

In scope

  • Number entry with +91 handling and 10-digit checks
  • Existing-account detection and OTP verification
  • Profile details, referral code and consent checkboxes
  • SIM-based device binding by an SMS sent from the phone
  • SIM slot choice, and SIMs removed or moved later

Out of scope

  • OTP delivery and auto-read details (see OTP login)
  • Aadhaar or PAN based KYC (see Aadhaar eKYC)
  • UPI PIN set-up

Before you start

  • Fresh test numbers on Jio, Airtel and Vi, plus one number that already has an account
  • A dual-SIM Android phone with both SIMs active, and an iPhone with two lines
  • A prepaid SIM whose plan has no outgoing SMS left, for binding tests
  • Valid, expired and already-used referral codes
  • A way to delete or reset test accounts between runs
Show
Add to a test plan

Happy path5

REG-01

Sign up with a new number, OTP and profile details

P1functionalreal phone
  1. Tap Sign up and enter a new 10-digit mobile number
  2. Enter the OTP from the SMS
  3. Fill name and email, tick the required consents and tap Create account

Expected: The account is created and the welcome or home screen shows the entered name. The profile shows the number as +91 followed by the 10 digits.

Why a real phone: Checks the full sign-up with a real OTP SMS on a live SIM.

REG-02

PIN code fills city and state in the profile

P3functional
  1. On the profile step, enter a valid 6-digit PIN code
  2. Check the city and state fields
  3. Enter a 5-digit PIN code, then an all-zero one

Expected: A valid PIN code fills city and state, which can still be edited. An invalid PIN code shows an inline error.

REG-03

Apply a valid referral code during sign-up

P2functional
  1. Enter a valid referral code in the referral field
  2. Complete sign-up
  3. Open the referral or rewards section on both accounts

Expected: The code is accepted with a confirmation message, and the new account shows the benefit the offer describes. The referrer's account lists the new sign-up.

REG-04

Referral link prefills the code, with and without the app installed

P2functional
  1. On a phone without the app, open a referral link from an SMS
  2. Install from the Play Store, open the app and start sign-up
  3. Repeat with the app already installed

Expected: The referral field is prefilled with the code from the link both times. The user can still edit or clear it.

REG-05

Device binding sends a verification SMS from the phone

P1functionalreal phone
  1. After OTP verification, allow the app to send a verification SMS
  2. Pick the SIM that holds the registered number, if asked
  3. Wait for the device verified message

Expected: The messages app shows one SMS sent from the chosen SIM, and the app confirms the device is verified. The user moves on without re-entering the number.

Why a real phone: Needs a live SIM to send a real SMS over the carrier network.

Validation & negative7

REG-06

Number shorter than 10 digits or with letters is rejected

P2negative
  1. Enter 9 digits and tap Continue
  2. Paste a number containing letters or symbols
  3. Try to type an 11th digit

Expected: An inline error appears for short or invalid numbers and Continue stays disabled. The field does not accept letters or more than 10 digits after +91.

REG-07

Sign up with a number that already has an account

P1negative
  1. Start sign-up with a number that already has an account
  2. Compare the next screen with the one shown for a new number
  3. Enter the OTP from the SMS

Expected: Before the OTP, the screen looks the same as for a new number. After the OTP, the app says an account exists and offers to log in, without creating a second account or changing the existing profile.

REG-08

Invalid, expired or already-used referral code

P2negative
  1. Enter a referral code that does not exist
  2. Enter an expired code, then a single-use code that was already used
  3. Remove the code and continue sign-up

Expected: Each code shows a specific message, such as not found or expired, and no benefit is applied. Sign-up continues normally without a code.

REG-09

Create account stays disabled until required consents are ticked

P2negative
  1. Fill the profile and leave the required consent unticked
  2. Open the terms link, then come back
  3. Tick the required consent and tap Create account

Expected: Create account is disabled until the required box is ticked, and optional marketing boxes start unticked. Returning from the terms page keeps the entered details and box states.

REG-10

Email already used by another account

P2negative
  1. On the profile step, enter an email that belongs to another account
  2. Tap Create account

Expected: An inline message says the email is already in use and suggests logging in or using another email. The other account is not changed.

REG-11

Deny the SMS and phone permissions needed for binding

P2negative
  1. When the app asks for SMS or phone permission, tap Don't allow
  2. Continue to the binding step
  3. Deny a second time, then reopen the binding step

Expected: The app explains why the permission is needed and offers to ask again. After repeated denial, it shows a clear path to the app's settings instead of a blank or stuck screen.

REG-12

Binding fails because the SIM cannot send SMS

P2negativereal phone
  1. Use a prepaid SIM whose plan has no outgoing SMS left
  2. Start device binding and pick that SIM
  3. Wait for the result

Expected: The app shows a clear failure that suggests checking the SIM's SMS service, with a retry option. It does not keep spinning or mark the device as verified.

Why a real phone: Depends on a real prepaid plan and the carrier refusing the SMS.

Edge cases5

REG-13

Same number typed with +91, a leading 0 or spaces maps to one account

P1edge
  1. Sign up with the number as plain 10 digits
  2. On another phone, start sign-up with +91 and spaces, then with a leading 0
  3. Complete the OTP each time

Expected: Every form is cleaned to the same 10 digits and treated as the existing account. No second account is created for the same number.

REG-14

Names with initials, a single name or Devanagari script

P2edge
  1. Enter a name with initials and dots, such as 'A. B. Kumar'
  2. Try a single-word name, then a name typed in Devanagari
  3. Try a name made only of spaces

Expected: Names with initials, single names and Devanagari names are accepted and shown in the profile as typed. A name of only spaces shows an inline error.

REG-15

Day and month in the date of birth are not swapped

P2edge
  1. Set the phone region to one that writes the month before the day
  2. Pick 5 March as the date of birth in the sign-up form
  3. Save and open the profile

Expected: The profile shows 5 March in the DD/MM/YYYY style the app uses. The stored date does not change to 3 May.

REG-16

Two family members sign up on one phone with two SIMs

P2edgereal phone
  1. Sign up and bind account A using the SIM 1 number
  2. Sign out and start sign-up for account B with the SIM 2 number
  3. Complete binding for account B

Expected: The app follows the product's one-device rule, either allowing B or explaining that the phone is already bound to another account. Account A's binding is not replaced silently.

Why a real phone: Needs a dual-SIM phone with two live numbers sending real binding SMS.

REG-17

Number ported to another carrier after sign-up

P3edgereal phone
  1. Sign up and bind a number, then port it to another carrier
  2. Insert the new carrier's SIM and open the app
  3. Complete any verification the app asks for

Expected: The app keeps the binding or asks to verify the device again, with a clear message either way. Binding completes on the new carrier's SIM.

Why a real phone: Needs a real number moved between carriers with a new SIM.

Interruptions & network4

REG-18

Binding confirmation is slow and the user retries

P2interruptionreal phone
  1. Start device binding in a weak-signal spot
  2. Wait for the timeout message, then tap Retry
  3. Check the sent messages and the app's device list, if it has one

Expected: The app shows a waiting state, then a timeout with Retry. After the retry succeeds, the device appears once and no second binding is left pending.

Why a real phone: Real carrier delays decide when the binding SMS reaches the server.

REG-19

Return from the messaging app after sending the binding SMS

P2interruptionreal phone
  1. Use a build that opens the messaging app with the SMS prefilled
  2. Send the SMS from the messaging app
  3. Return to the app with Back or from the recent apps screen

Expected: The app shows the waiting or verified state, not the start of binding. The user does not have to send the SMS again.

Why a real phone: Sending a real SMS from the phone's messaging app needs a live SIM.

REG-20

App killed while the camera is open for the profile photo

P2interruptionreal phone
  1. On a 3–4 GB RAM phone, verify the OTP and start the profile
  2. Add a profile photo with the camera, or open several heavy apps
  3. Return to the app

Expected: The app returns to the profile step with the number still verified and the photo attached if one was taken. Typed details are kept and no new OTP is needed.

Why a real phone: OEM memory managers on budget phones kill the app while the camera is open.

REG-21

Network drops when tapping Create account

P2interruption
  1. Fill the profile and turn on airplane mode
  2. Tap Create account
  3. Turn airplane mode off and tap Create account again

Expected: A no-connection message appears and the form keeps its data. The retry creates one account, without an 'already registered' error.

Device & OS4

REG-22

Wrong SIM picked in the SIM picker

P1securityreal phone
  1. On a dual-SIM phone, sign up with the SIM 2 number
  2. At binding, pick SIM 1 in the SIM picker
  3. Wait for the result, then retry with SIM 2

Expected: Binding fails with a message that the SIM does not match the entered number, and nothing is bound to SIM 1. The retry with SIM 2 succeeds.

Why a real phone: Needs two live SIMs; the server checks which number really sent the SMS.

REG-23

Phone's default SMS SIM differs from the SIM picked in the app

P2compatibilityreal phone
  1. In phone settings, set SIM 1 as the default for SMS
  2. Sign up with the SIM 2 number and pick SIM 2 at binding
  3. Check which SIM the sent SMS shows

Expected: The SMS goes out from SIM 2 and binding succeeds. The app does not fall back to the default SMS SIM.

Why a real phone: SMS SIM defaults on dual-SIM phones behave differently across OEM skins.

REG-24

SIM moved to the other slot of the same phone

P2compatibilityreal phone
  1. Sign up and bind with the SIM in slot 1
  2. Power off, move the SIM to slot 2 and restart
  3. Open the app

Expected: The app keeps the binding, or asks to verify again with a clear message. It does not crash or lock the account.

Why a real phone: Slot changes need a physical dual-SIM phone and a real SIM.

REG-25

Binding on an iPhone with a physical SIM and an eSIM

P2compatibilityreal phone
  1. On an iPhone with two active lines, start binding
  2. In the message composer, check which line is selected
  3. Choose the line for the entered number and send

Expected: The composer opens with the text prefilled and lets the user choose the line. Binding succeeds for the matching line and fails with a clear message for the other.

Why a real phone: Needs an iPhone with two active lines sending a real SMS.

Security & privacy6

REG-26

An abandoned sign-up does not reserve the number

P1security
  1. Start sign-up with a new number and close the app at the OTP step
  2. On another phone, sign up with the same number
  3. Complete the OTP and profile

Expected: The second sign-up completes normally, with no 'already registered' error and none of the first attempt's details.

REG-27

Bound SIM removed after sign-up

P1securityreal phone
  1. Sign up and complete device binding
  2. Power off, remove the bound SIM and restart
  3. Open the app and try a sensitive action, such as viewing account details

Expected: The app says the registered SIM is not found and asks the user to insert it or verify again. Sensitive actions stay blocked until then.

Why a real phone: Needs a real bound SIM to be physically removed from the phone.

REG-28

Bound SIM moved into another phone

P1securityreal phone
  1. Bind the account on phone A
  2. Move the SIM to phone B, install the app and sign in
  3. Complete binding on phone B, then open the app on phone A

Expected: Phone B needs full verification before it is bound. Phone A then asks to verify again or signs out, following the product's one-device rule.

Why a real phone: Needs the same live SIM moved between two real phones.

REG-29

Recycled number with an old inactive account

P2security
  1. Use a test number whose account the test team marked as long inactive
  2. On a new phone, sign up or log in with that number
  3. Complete the OTP

Expected: The app asks for an extra check before opening the old account, or offers a fresh account. The old profile, orders or balance are not shown on the OTP alone.

REG-30

Referral reward claimed twice from the same phone

P2security
  1. Sign up with a referral code and note the reward
  2. Clear app data, then sign up again on the same phone with a new number
  3. Use the same referral code

Expected: The second sign-up is flagged or gets no reward, following the referral rules. The referrer is not credited twice for the same phone.

REG-31

Marketing consent can be changed after sign-up

P3security
  1. Sign up with marketing consent ticked
  2. Open settings and turn marketing messages off
  3. Close and reopen the app, then check settings

Expected: Settings show the choice made at sign-up, and the change is still saved after reopening. Required consents show as accepted, with links to the accepted text.

Accessibility & language3

REG-32

TalkBack reads consent boxes, links and the SIM picker

P2accessibility
  1. Turn on TalkBack and go through the sign-up screens
  2. Focus each consent box and the terms link
  3. Reach the SIM picker at binding

Expected: Each box is read with its text and checked state, and links are read as links. SIM options are read with the carrier name or number shown on screen.

REG-33

Largest font on the profile and consent screens

P2accessibility
  1. Set font size and display size to the largest in phone Settings
  2. Fill the profile and scroll to the consent boxes
  3. Open the keyboard on the last field

Expected: Labels, consent text and errors wrap without being cut off. Create account can be reached without closing the keyboard.

REG-34

Sign up with the app set to Hindi

P3localization
  1. Set the app or phone language to Hindi
  2. Go through sign-up, including an error and the consent screen
  3. Check the binding SMS notice and the SIM picker

Expected: All screens, errors and consent text show in Hindi without truncation or raw text keys. The number field still shows digits 0–9 and the +91 prefix.

In the field

Where mobile number sign-up breaks on real phones

  • The binding SMS goes out from the phone's default SMS SIM instead of the SIM the user picked, so the server sees the wrong number and binding fails.
  • Prepaid SIMs whose plan has no outgoing SMS left fail binding silently, and the app keeps waiting with no message.
  • The same number saved as +91, with a leading 0 or with spaces creates two accounts when it is not cleaned up the same way everywhere.
  • On 3–4 GB RAM phones the app is killed while the camera or the terms page is open, and the user has to verify the OTP again.
  • Moving a SIM to the other slot, or a phone coming back from repair, is treated as a new SIM and locks the user out without explanation.
  • Dates of birth picked on phones set to a month-first region are saved with the day and month swapped.

Run these 34 cases on real phones

They fit the Standard package: 10 × 45-minute sessions on 4 phones or browsers of your choice, up to ~50 cases, ₹18,999 + GST ($249), verified report in 3 business days. The 8 P1 cases alone fit Starter (₹9,999 + GST).

Download the CSV, pick the package at checkout and upload the file with your build. Testers run them on their own phones, on Jio, Airtel and Vi.

Questions

About testing mobile number sign-up

What is SIM-based device binding in mobile apps?

It links an account to a specific phone and SIM by having the app send an SMS from that phone to the service's number. Because the carrier delivers the SMS from the real number, the server can confirm the user holds that SIM. The app then checks on later launches that the same SIM is still present and asks to verify again if it is not.

How do you test device binding on a dual-SIM phone?

Use two active SIMs and test each slot as the registered number. Pick the wrong SIM on purpose, set the phone's default SMS SIM to the other slot, and move the SIM between slots after binding. In each case, check which SIM the sent SMS shows and whether the app's message matches what happened.

Should sign-up tell users that a number is already registered?

Yes, but only after the OTP is verified, so the screen cannot be used to check who has an account. Before that, new and registered numbers should see the same step. After verification, offer to log in rather than creating a second account.

Related flows

Test these next

Your AI wrote the test cases. Run them on real phones.

99tests runs your cases, AI-generated ones included, on the phones, laptops and browsers your users own. Every finding is verified, serious bugs come with a screen recording, and each case comes back pass, fail, blocked or not run.