Skip to content

Our Test Plan ​

This is the script we run on your TestFlight build. Two testers, Tester A and Tester B, each use their own iPhone. Every step must work without help from you.

TIP

Run this plan yourself before you submit. You can play Tester B with a second device, the iOS Simulator, or the built-in echo bot.

1. Install and sign up ​

#StepExpected result
1.1A and B accept the TestFlight invitation and install the app.App launches to a welcome or phone-number screen.
1.2A enters a phone number, then code 000000.Profile setup screen appears.
1.3A enters a display name and a username. A tries a username that is already taken.Clear "username taken" message before or on submit.
1.4A completes the profile.Main screen with empty Chats and Friends lists, with helpful empty states.
1.5B does steps 1.2–1.4 on the second iPhone.Same result.

2. Become friends ​

#StepExpected result
2.1A searches for B's username.B appears with an "Add friend" action.
2.2A sends a friend request.A sees "Request sent". A can cancel it.
2.3B looks at the app (foreground).Incoming request appears in real time, with a badge. No pull-to-refresh needed.
2.4(A1) B has the app in the background.B receives a push notification for the request. Tap opens the requests screen.
2.5B accepts.Both A and B see each other in their friends list in real time.
2.6A and B check each other's status.Each sees the other as "online".

3. Chat ​

#StepExpected result
3.1A opens a chat with B and sends 3 messages quickly.Messages appear instantly with the clock icon, then ✓.
3.2B has the app open on the chats list.Chat with A moves to the top with unread count 3 and preview of the last message. A sees ✓✓.
3.3B opens the chat.A sees blue ✓✓ on all 3 messages. B's unread count goes to 0.
3.4B types without sending.A sees "typing…" in the chat header and stops seeing it shortly after B stops.
3.5A and B exchange 30+ messages, including emoji and a long multi-line message.Correct order on both phones. Smooth scrolling. Keyboard never hides the input field.
3.6B force-quits the app.A sees B as "last seen …" within about a minute.
3.7(A1) A sends a message while B's app is closed.B gets a push notification with A's name and the text. Tap opens the chat. Badge shows unread total.

4. Offline and recovery ​

#StepExpected result
4.1A turns on Airplane Mode and sends 3 messages.Messages show the clock icon. The app shows an offline indicator. No error pop-ups.
4.2A turns off Airplane Mode.The 3 messages send in order. B receives each message exactly once.
4.3A goes offline, sends 2 messages, then force-quits the app. A goes online and opens the app.The 2 messages are still pending and then send. No duplicates on B.
4.4B goes offline. A sends 5 messages. B goes online and opens the app.B sees all 5 messages in order. A's ticks move to ✓✓ and then blue ✓✓.
4.5A switches from Wi-Fi to cellular in the middle of the chat.Chat continues. At most a short reconnecting indicator.
4.6A scrolls back through the full history.Older messages load page by page. No gaps, no duplicates.

5. Safety and account ​

#StepExpected result
5.1A reports one of B's messages.Confirmation shown.
5.2A blocks B.B can no longer message A. B no longer sees A's online status.
5.3A unblocks B.Friendship must be requested again (blocking removes the friendship).
5.4A logs out and logs back in with the same phone number.Chats and history are restored from the server.
5.5B deletes their account.B returns to the welcome screen. A sees B as "Deleted account" in the old chat.

6. Advanced features you chose ​

We test every Advanced feature you list in your README, on both phones. Tell us in the README how to reach each feature.

What we also observe ​

  • Cold start time and time to show the chats list.
  • Behaviour with Dynamic Type at the largest size, and with Dark Mode.
  • Crashes (we check the TestFlight crash reports).

Questions? Reply to your invitation email.