Skip to content

Instantly share code, notes, and snippets.

@bensojona
Created January 31, 2025 22:46
Show Gist options
  • Save bensojona/fad39cd8bc9d231c26f2ceaa3d55a842 to your computer and use it in GitHub Desktop.
Save bensojona/fad39cd8bc9d231c26f2ceaa3d55a842 to your computer and use it in GitHub Desktop.
For testing Promise

Promise App - Testing Guide

Overview

Promise is a social accountability app that helps users achieve their goals through group challenges. This document outlines the testing procedures to ensure all features work as expected.

How to Report Issues

  • Send all feedback to: [email protected]
  • Include in your email:
    • Device model & OS version
    • Steps to reproduce the issue
    • Screenshots/recordings if applicable
    • Severity level (Critical/High/Medium/Low)

Test Environment Setup

  1. Install the latest TestFlight version
  2. Create a new test account
  3. Enable notifications when prompted
  4. Verify dark/light mode functionality

Testing Checklist

1. Account Management

  • Create new account
  • Verify email verification flow
  • Test password reset functionality
  • Update profile information
  • Test account deletion
  • Verify data cleanup after account deletion

2. Challenge Creation & Joining

A. Create Custom Challenge

  • Create challenge from scratch:
    • Fill all required fields
    • Add custom promises
    • Set frequencies for each promise
    • Verify preview matches input
    • Test back navigation preserves data
    • Complete creation flow

B. Template-Based Challenge

  • Create challenge from template:
    • Browse available templates
    • Filter templates by category
    • Select template
    • Modify template defaults
    • Add/remove promises
    • Adjust frequencies
    • Complete creation flow
  • Verify template promises are pre-populated
  • Test template category mapping

C. Challenge Joining

  • Join via code:
    • Test valid join code
    • Test expired join code
    • Test invalid join code format
    • Test case sensitivity
    • Join challenge
  • Test join request flow:
    • Submit join request
    • Cancel join request
    • Receive approval/rejection
    • Rejoin after rejection

D. Deep Linking

  • Test challenge invite links:
    • Open link while logged out
    • Open link while logged in
    • Open link with app closed
    • Open link with app in background
    • Test valid invite links
    • Test invalid invite links
  • Verify deep link behaviors:
    • Direct to challenge details
    • Preserve navigation stack
    • Handle authentication flow
    • Test universal links
    • Test custom URL scheme

E. Edge Cases

  • Maximum participants (5000):
    • Join full challenge
    • Wait list behavior
    • Participant limit updates
  • Challenge visibility:
    • Private challenge access
    • Challenge template discovery
    • Filtering functionality
  • Join code management:
    • Generate new code
    • Disable join code
    • Code expiration
  • Multiple devices:
    • Sync join status
    • Push notifications
    • Challenge updates

3. Promise Management

  • Create new promise
  • Edit existing promise
  • Delete promise
  • Set weekly frequency
  • Test promise limits:
    • Maximum character length
    • Special characters
    • Empty fields validation
  • Verify promise sorting
  • Test promise filtering

4. Challenge Participation

  • Join challenge with code
  • Test invalid join codes
  • Submit join request
  • Cancel join request
  • Leave challenge
  • Test wager system:
    • Create non-monetary wager
    • Edit wager
    • Remove wager

5. Social Features

  • Group chat functionality:
    • Send messages
    • Delete messages
    • Upload images
    • Message notifications
  • Participant management:
    • Invite participants
    • Accept participants
    • Remove participants
    • Ban participants
  • Leaderboard:
    • Weekly updates
    • Position changes
    • Score calculation

6. Progress Tracking

  • Daily progress updates
  • Weekly summary view
  • Progress notifications
  • Streak tracking
  • Achievement system

7. Notification Testing

Test all notification types:

  • Challenge join requests
  • Request responses
  • Chat messages
  • Progress reminders
  • Weekly summaries
  • Leaderboard updates

8. Edge Cases

  • Network connectivity:
    • Offline mode behavior
    • Data sync when connection restored
  • Concurrent users:
    • Multiple users editing same challenge
    • Multiple users chatting at the same time
    • Real-time updates
  • Data limits:
    • Maximum participants per challenge (5000)
    • Maximum active challenges per user
    • Message history limits
  • Time zones:
    • Challenge dates across time zones
    • Progress tracking accuracy
    • Notification timing

9. Performance Testing

  • App launch time
  • Challenge loading speed
  • Chat message loading
  • Image upload/download
  • Battery usage
  • Memory usage
  • Background process behavior

Final Verification

  • All features work in both light/dark mode
  • Accessibility features function correctly
  • App behaves correctly during interruptions (calls, messages)
  • Data persistence after app restart
  • Proper error messages for all failure cases

Test Scenarios

1. Basic Challenge Creation

Feedback Format

  • When reporting issues, please use the following format:
  • Subject: [Bug/Feature] Brief Description
  • Priority: (Critical/High/Medium/Low)
  • Device: (Model/OS Version)
  • App Version: (TestFlight version)
  • Description:
    • Detailed explanation of the issue
  • Steps to Reproduce:
    • Step 1
    • Step 2
    • Step 3
  • Expected Behavior:
    • What should happen
  • Actual Behavior:
    • What actually happened
  • Additional Notes:
    • Screenshots/recordings
  • Related issues

Send all feedback to [email protected]. Thank you for helping improve Promise!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment