- Overview
- Test Environment Setup
- Manual Testing Checklist
- Feature Testing
- Platform Testing
- User Experience Testing
- Data Integrity Testing
- Performance Testing
- Accessibility Testing
- Error Handling Testing
- Security Testing
- Test Scenarios
- Bug Reporting Template
This document provides comprehensive testing procedures for MySeedBook Catalogue, a React Native/Expo app for managing gardening seeds and suppliers. The app uses Supabase for backend services and supports web, iOS, and Android platforms.
Current Version: Production Ready (August 2025)
Testing Framework: Jest (configured)
Platforms: Web, iOS, Android
Backend: Supabase
Status: ✅ Core functionality tested and working
- Calendar event creation with user ID association
- Android orientation handling and responsive design
- Image URL handling for seed suppliers (RareSeeds, Burpee)
- Authentication flows and security cleanup
- Production security scanning
- Node.js installed
- Expo CLI installed (
npm install -g @expo/eas-cli) - Android Studio (for Android testing)
- Xcode (for iOS testing, macOS only)
- Test devices or simulators
# Install dependencies
npm install
# Start development server
npm start
# Run on specific platforms
npm run android # Android
npm run ios # iOS- Create test Supabase account
- Set up test database with sample data
- Configure test environment variables
- Prepare test images for photo uploads
- App launches without crashes
- Splash screen displays correctly
- Theme loads (light/dark mode)
- Navigation structure initializes
- Authentication state is checked
- Login screen displays correctly
- Login with valid credentials works
- Login with invalid credentials shows error
- Signup process works
- Password reset functionality
- Logout functionality
- Session persistence across app restarts
- Auth bypass flags work in development
- Tab navigation works smoothly
- Back button navigation (Android)
- Deep linking works
- Status bar styling is correct
- Safe area handling on all devices
- Gesture navigation compatibility
- Seed list loads correctly
- Seed images display properly
- Seed details are accurate
- Search functionality works
- Filter functionality works
- Pull-to-refresh works
- Empty state displays when no seeds
- Loading states display correctly
- "Add Seed" button navigates correctly
- All form fields accept input
- Required field validation works
- Image upload functionality
- Multiple image handling
- Supplier selection works
- Date picker functionality
- Form submission works
- Success message displays
- Navigation back to inventory
- Edit seed navigation works
- Form pre-fills with existing data
- Changes save correctly
- Image updates work
- Supplier changes work
- Date changes work
- Validation on edit works
- Delete confirmation dialog
- Soft delete functionality
- Seed removed from list
- Associated calendar events handled
- Undo functionality (if implemented)
- Supplier list loads
- Supplier details display
- Contact information shows
- Associated seeds count
- Search suppliers works
- Empty state handling
- Add supplier form works
- Required field validation
- Contact info validation (email, phone)
- Website URL validation
- Form submission works
- Success feedback
- Navigation back to supplier list
- Edit form pre-fills data
- Changes save correctly
- Validation works on edit
- Associated seeds update
- Delete confirmation
- Soft delete functionality
- Associated seeds handling
- Supplier removed from lists
- Monthly calendar view loads
- Navigation between months
- Events display on correct dates
- Different event types show correctly
- Date selection works
- Double-tap for event creation
- Add event modal opens
- Event form validation
- Date picker works
- Event categories work
- Seed selection works
- Event creation works
- Event deletion works
- Event editing (if implemented)
- Purchase dates auto-add to calendar
- Sowing events create germination/harvest events
- Days to germinate/harvest calculations
- Calendar events sync with seed data
- Camera permission requests
- Camera opens correctly
- Photo capture works
- Photo preview displays
- Photo saves to seed/supplier
- Gallery access permission
- Photo selection works
- Multiple photo selection
- Photo preview displays
- Photo upload works
- Images load correctly
- Image fallbacks work
- Image resizing/optimization
- Image caching works
- Image error handling
- Responsive design works
- Touch/click interactions
- Keyboard navigation
- Browser compatibility (Chrome, Firefox, Safari)
- Web-specific features work
- File upload works
- Date pickers work
- Hover states work
- Material Design compliance
- Back button behavior
- Android permissions
- Keyboard handling
- Hardware back button
- Deep linking
- App icon displays
- Notification handling (if implemented)
- iOS design guidelines compliance
- iOS permissions
- Safe area handling
- iOS-specific gestures
- App icon displays
- iOS keyboard handling
- Deep linking
- Notification handling (if implemented)
- Light theme displays correctly
- Dark theme displays correctly
- Theme switching works smoothly
- Theme persistence across sessions
- All screens support both themes
- Theme affects all UI elements
- Screen reader compatibility
- High contrast mode support
- Font scaling support
- Touch target sizes adequate
- Color contrast ratios meet standards
- Focus indicators visible
- Loading spinners display
- Skeleton screens (if implemented)
- Progress indicators
- Loading timeouts handled
- Offline state handling
- Portrait orientation works
- Landscape orientation works
- Different screen sizes supported
- Tablet layouts (if implemented)
- Content scaling works
- Data saves correctly to Supabase
- Data retrieval works
- Data updates work
- Data deletion works (soft delete)
- Offline data handling (if implemented)
- Real-time updates work
- Data consistency across devices
- Conflict resolution (if implemented)
- Data backup/restore (if implemented)
- Seed-supplier relationships work
- Calendar-seed relationships work
- Foreign key constraints respected
- Cascade deletes work correctly
- App startup time acceptable
- Screen transition smoothness
- List scrolling performance
- Image loading performance
- Memory usage reasonable
- Battery usage acceptable
- Database query performance
- Large dataset handling
- Image upload speed
- Search performance
- Filter performance
- Performance on older devices
- Performance with low memory
- Performance with slow network
- Performance with large datasets
- Secure password requirements
- Session management secure
- Token expiration handling
- Unauthorized access prevention
- SQL injection prevention
- User data isolation (RLS)
- Sensitive data encryption
- Secure API communication
- File upload security
- Input sanitization
- Download and install app
- Create new account
- Add first supplier
- Add first seed with photo
- View seed in inventory
- Add calendar event
- Switch to dark theme
Expected Result: Smooth onboarding experience
- Launch app (auto-login)
- Check calendar for today's events
- Add new seed purchase
- Search for specific seed
- Edit seed details
- Add supplier note
- Plan planting event
Expected Result: Efficient daily workflow
- Import bulk seed data (if implemented)
- Edit multiple seeds
- Delete old seeds
- Update supplier information
- Export data (if implemented)
- Restore deleted item
Expected Result: Robust data management
- Use app without internet
- Add new seeds offline
- Take photos offline
- Reconnect to internet
- Sync data
Expected Result: Seamless offline/online experience
- Use app on phone
- Switch to tablet/web
- Verify data sync
- Make changes on web
- View changes on phone
Expected Result: Perfect synchronization
**Title**: [Brief description of the bug]
**Priority**: Critical/High/Medium/Low
**Platform**: Web/iOS/Android/All
**Device**: [Device model and OS version]
**Steps to Reproduce**:
1. Step one
2. Step two
3. Step three
**Expected Behavior**:
[What should happen]
**Actual Behavior**:
[What actually happens]
**Screenshots/Videos**:
[Attach media if applicable]
**Additional Information**:
- App version:
- User account type:
- Network condition:
- Other relevant details
**Workaround** (if any):
[Temporary solution]
- Critical: App crashes, data loss, security issues
- High: Major feature broken, blocks user workflow
- Medium: Minor feature issues, UI problems
- Low: Cosmetic issues, enhancement requests
- Complete feature testing
- Platform compatibility testing
- Performance testing
- Security testing
- User acceptance testing
- Weekly smoke tests
- Monthly regression tests
- Quarterly full test suite
- Performance benchmarks
- Release candidate testing
- Final verification
- Store compliance testing
- Distribution testing
- Core Features: 100% tested
- Platform Compatibility: 95% tested
- User Scenarios: 90% covered
- Edge Cases: 80% covered
- Performance: Benchmarked
- Security: Fully audited
- Device simulators/emulators
- Real devices for testing
- Network condition simulators
- Accessibility testing tools
- Jest for unit testing
- React Native Testing Library
- Detox for E2E testing
- Performance monitoring tools
For testing support or to report issues:
- Create GitHub issues for bugs
- Use project management tools for tracking
- Document test results systematically
- Regular team testing sessions
Last Updated: August 4, 2025
Version: 1.0