You know what's embarrassing? Tweeting about your new app launch, someone clicks the signup button, and... nothing happens. This happened to me. Turns out, my signup form worked perfectly on Chrome desktop but broke on Safari mobile. I tested it once, on one browser, and called it done.
Testing isn't about writing thousands of automated tests (that comes later). It's about systematically breaking your app in every way a user might, BEFORE they do. This phase is your bug-hunting checklist.
LLM as Your QA Engineer
Turn your LLM into a testing assistant:
My app: [describe core functionality] Key user flows: 1. [e.g., User signs up and creates first invoice] 2. [e.g., User edits and downloads invoice as PDF] 3. [e.g., User upgrades to paid plan] Act as a QA engineer and help me: 1. List 20 ways this could break 2. Create a test checklist for each user flow 3. Suggest edge cases I haven't considered 4. Identify security vulnerabilities in my flows 5. Recommend test scenarios for payment processing Be ruthlessly thorough - I want to find bugs before users do.
Pro Tip:
Save this output as your master test checklist. Run through it before every major release.
The Manual Testing Checklist
Yes, manual testing. Click everything. Try to break it. This is NOT beneath you - professional teams still do this before major releases.
1. Test the Happy Path
This is the ideal user journey - everything works perfectly.
Example: Invoice App Happy Path
2. Test the Sad Paths
This is where users do unexpected things (and they WILL).
Invalid Inputs
- • Submit empty forms
- • Enter special characters in name fields
- • Use invalid email formats
- • Enter negative numbers where not allowed
- • Paste 10,000 characters in text fields
Edge Cases
- • Sign up with email that already exists
- • Click "Submit" 10 times rapidly
- • Navigate away mid-form
- • Use browser back button during checkout
- • Try accessing admin pages while logged out
3. Test Error Messages
Every error should have a helpful message. "Something went wrong" is NOT helpful.
Bad:
"Error 500"Good:
"Failed to save invoice. Check your internet and try again."PM Insight: The Mom Test
The secret: If your mom can't use your app without calling you, it's not ready.
The test: Watch someone who's never seen your app try to complete your main task. Don't help. Don't explain. Just watch and take notes.
Where they get confused = bugs you need to fix. Every "How do I...?" question is a UX failure. This 15-minute test finds more real issues than 100 hours of solo testing.
Payment Chaos Testing
If you're handling payments, you need to test EVERY possible payment failure scenario. This is non-negotiable - payment bugs = lost money + angry customers.
Stripe Test Card Scenarios
Stripe provides test cards that simulate real-world failures. Test ALL of these:
Payment succeeds normally
Payment declined - insufficient funds
Card declined - generic error
Requires 3D Secure authentication
Payment Testing Checklist
Critical: Never Skip Payment Testing
Horror story: A developer skipped payment testing. User paid $100, got charged successfully, but a typo in the webhook handler meant their account stayed "free tier". Developer had to manually fix 50+ accounts.
The rule: Test your entire payment flow (success AND failures) before accepting real money. Use Stripe's test mode until you've tested every scenario twice.
Device & Browser Testing
Your app might work perfectly on your MacBook Pro Chrome browser. But 50% of users are on phones, and some are on browsers you've never heard of.
Desktop
- Chrome (Windows & Mac)
- Safari (Mac)
- Firefox
Mobile
- iPhone Safari
- Android Chrome
- Tablet (bonus)
Screen Sizes
- Small phone (375px)
- Large phone (414px)
- Desktop (1920px)
Quick Device Testing Tricks
Chrome DevTools Mobile View
Press F12 → Click phone icon → Test different device sizes
Use Your Actual Phone
Visit your Vercel preview URL on your phone. Touch targets feel different than mouse clicks.
BrowserStack (Free Trial)
Test on real devices in the cloud. Free for 30 minutes.
Pre-Launch Testing Checklist
Do this 48 hours before launch. No shortcuts:
The Launch Day Rule:
If you find a critical bug during testing, delay launch. Better to ship late than to ship broken. Users remember buggy launches forever.