In this guide
Sign-up is the first gate. If it fails, nothing else in your app matters. Each case below has an expected result, a reason and a way to check. Use a fresh install and a real device, and keep a few spare email addresses.
Valid input
- Sign up with a normal email and a strong password. Expected: account is created and the user lands where the app promises. Why: the happy path must be flawless. Check: do it on a clean install and confirm the account in your backend.
- Sign up with an address that has a plus tag or subdomain (name+test@example.com). Expected: accepted. Why: valid addresses get wrongly rejected by strict patterns. Check: try it and complete verification.
- Use a name with accents, an apostrophe or a non-Latin script. Expected: saved and shown correctly. Why: real names vary. Check: reopen the profile and compare.
Invalid input
- Leave each field empty, one at a time. Expected: a message at that field naming what is missing. Why: users skip fields. Check: submit with one field empty, then all.
- Enter an email without @ or domain. Expected: clear message, no crash. Why: typos are common. Check: try "name", "name@", "name@com".
- Enter a password below your minimum length. Expected: the rule is visible before or at the error. Why: hidden rules frustrate. Check: type one short password and read the message.
- Mismatching password confirmation (if you ask for one). Expected: error on the confirm field. Why: otherwise users lock themselves out. Check: enter two different values.
Edge cases
- Very long email, name and password. Expected: handled without layout break or server error. Why: limits differ between app and backend. Check: paste long strings and submit.
- Leading and trailing spaces in email. Expected: trimmed or rejected clearly. Why: keyboards add spaces after autocomplete. Check: type "name@example.com " with a trailing space.
- Uppercase email, then log in with lowercase. Expected: same account. Why: case mismatches cause "account not found". Check: sign up as Name@Example.com and log in as name@example.com.
- Paste a password from a password manager. Expected: accepted. Why: some fields block pasting. Check: paste in both fields.
- Emoji in the name field. Expected: accepted or rejected cleanly, never garbled. Why: storage may drop characters. Check: save and reload.
Duplicates
- Sign up again with an existing email. Expected: a message that does not crash and ideally does not reveal more than needed. Why: duplicates are common, and detailed messages can leak who has an account. Check: try twice and compare both screens. Decide deliberately which trade-off you want.
- Tap the sign-up button twice quickly. Expected: one account, one verification email. Why: impatient taps create duplicates. Check: double-tap on a slow network.
Email verification
- Verification email arrives and the link works. Expected: the account is confirmed and the app opens correctly. Why: no email, no user. Check: use a real inbox and also check spam.
- Open the link on a different device. Expected: sensible result, not a blank page. Why: many users read email on a computer. Check: open the link on your laptop.
- Use an old or already used link. Expected: a message with a way to request a new one. Why: links expire. Check: reuse the first link after requesting a second.
- Try to use the app before verifying. Expected: behavior matches your design, with a clear prompt. Why: unclear states produce support requests. Check: close the app after sign-up and reopen it.
Interruptions and environment
- Lose the network during submit. Expected: error with retry, no half-created account. Why: phones lose signal. Check: airplane mode on at the moment of tapping.
- Kill the app during sign-up and reopen. Expected: user can continue or restart cleanly. Why: calls and app switches interrupt. Check: swipe the app away mid-form.
- Rotate and use large text. Expected: fields and buttons stay reachable. Why: keyboards cover fields. Check: enable large text, open the keyboard and tap each field.
- Third-party sign-in (if offered): cancel from the provider screen. Expected: return to your app without a broken state. Why: users change their mind. Check: start and cancel.
Wording
- Read every message aloud. Expected: each says what is wrong and what to do. Why: "Error 400" helps nobody. Check: list all messages and mark vague ones.
Not legal advice: check that consent text, age gates and terms links match your own requirements.
Related
- Hub: Mobile app testing checklist hub
- Login and password reset testing checklist
- Onboarding testing checklist
Want a fresh pair of eyes on your sign-up? AppReviewX offers private, structured feedback; one feedback you write earns one credit. See how AppReviewX works.