Guides manual QA testing of app features with checklists for happy paths, edge cases, cross-browser compatibility, mobile support, and structured workflows before deployment.
npx claudepluginhub whawkinsiv/solo-founder-superpowers --plugin solo-founder-superpowersThis skill uses the workspace's default tool permissions.
```
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Feature Testing:
- [ ] Happy path works (main user flow)
- [ ] Edge cases handled (empty, long, invalid data)
- [ ] Error messages clear and helpful
- [ ] Works on mobile (iOS and Android)
- [ ] Works in Safari, Chrome, Firefox
- [ ] Loading states show during waits
- [ ] Forms validate input
- [ ] Can't break it with weird input
- [ ] Back button works correctly
- [ ] Page refresh doesn't lose data
See TEST-SCENARIOS.md for detailed scenarios.
Test when:
Don't test:
Rule: Build → Test → Fix → Test again → Deploy
Don't test randomly. Follow this sequence every time.
Before testing, know what you're testing. Walk through your app and list every page and feature.
Map Your App:
- [ ] List every page (home, dashboard, settings, etc.)
- [ ] List every form (signup, contact, create/edit)
- [ ] List every button that does something
- [ ] List every integration (payments, email, third-party)
Go through every page, every button, every form. Don't skip pages you "know" work.
Tell AI:
Go through every page of my app. Click every button. Fill every form.
Submit every action. Tell me what's broken, what looks wrong, and what
behaves unexpectedly. For each issue, tell me:
- What page it's on
- What you did
- What happened vs. what should happen
- How severe it is (blocks users vs. cosmetic)
Rate your app 1-10 on each dimension. Be honest — this is for you.
App Health Score:
Score (1-10)
Does it load fast? (under 3 seconds) ___
Do all buttons/links work? ___
Do forms submit correctly? ___
Do error messages make sense? ___
Does it work on mobile? ___
Is the core flow completable? ___
Total: ___/60
50-60: Ready to ship
40-49: Fix the gaps, then ship
30-39: Significant issues — fix before showing users
<30: Major problems — keep building before testing
After each fix, re-test two things: the thing that was broken AND the things that were working. AI fixes often break something else.
After Every Fix:
- [ ] Original bug is resolved
- [ ] Core signup/login flow still works
- [ ] Core action still works
- [ ] No new visual issues on the page you changed
Have someone who's never seen your app try to sign up and complete the core action. Watch without helping. What surprises you?
This test reveals more than a week of solo testing. The things you "know" are obvious often aren't.
1. Test happy path
- Does the main flow work?
- Can user complete the task?
2. Test edge cases
- What if field is empty?
- What if text is very long?
- What if user clicks twice?
3. Test on mobile
- Open on real phone
- Test main actions
- Check layout doesn't break
4. Test in different browsers
- Chrome (most users)
- Safari (iOS users)
- Firefox (some users)
5. Document issues
- Screenshot the problem
- Write exact steps to reproduce
- Give to AI to fix
Always test these:
Empty data:
Long data:
Invalid data:
Boundary cases:
Tell AI:
Test these edge cases:
- Empty username: show "Required"
- Username too long (>50 chars): show "Max 50 characters"
- Username with spaces: show "No spaces allowed"
- Special characters: show "Letters and numbers only"
See EDGE-CASES.md for comprehensive list.
Minimum mobile tests:
Mobile Testing:
- [ ] Page loads and looks correct
- [ ] Can tap all buttons (44px minimum)
- [ ] Forms work (keyboard appears)
- [ ] No horizontal scroll
- [ ] Images load and fit screen
- [ ] Navigation works
- [ ] Can complete main user flow
Test on:
Don't need to test:
Priority order:
Common browser issues:
Quick test:
Open in each browser:
1. Load homepage
2. Sign up / Log in
3. Complete 1-2 main actions
4. Check nothing is broken
Form validation testing:
Form Testing Checklist:
- [ ] Required fields show error if empty
- [ ] Email validation works (format check)
- [ ] Password requirements enforced
- [ ] Can't submit invalid form
- [ ] Error messages clear and specific
- [ ] Success message shows after submit
- [ ] Form disables during submit (no double-submit)
- [ ] Errors clear when user fixes them
Tell AI:
Test form validation:
- Required field left empty: "This field is required"
- Invalid email: "Enter a valid email address"
- Weak password: "Password must be 8+ characters with 1 number"
- All valid: Allow submit
- Show errors inline, not alert()
Auth flow testing:
Auth Testing:
- [ ] Can sign up with valid info
- [ ] Can't sign up with existing email
- [ ] Can log in with correct password
- [ ] Can't log in with wrong password
- [ ] Can reset password via email
- [ ] Session expires after timeout
- [ ] Logout works (can't access protected pages)
- [ ] Can't access protected routes without login
- [ ] Redirect to login when session expires
Third-party services:
Payment (Stripe):
- [ ] Test card (4242 4242 4242 4242) processes
- [ ] Declined card shows error
- [ ] Receipt email sent
- [ ] Subscription status updates
- [ ] Can cancel subscription
Email (SendGrid):
- [ ] Welcome email sends on signup
- [ ] Password reset email arrives
- [ ] Emails have correct content
- [ ] Links in email work
- [ ] Unsubscribe link works
Tell AI:
Add test mode checking:
Log when using test API keys.
Show banner: "TEST MODE - No real charges"
Use Stripe test cards only in development.
How to break your app:
1. Click fast and repeatedly
2. Enter unexpected data
'; DROP TABLE users;--<script>alert('xss')</script>3. Change state unexpectedly
4. Use slow connection
See BREAKING-THINGS.md for full list.
Bug report template:
Bug: [Short description]
Steps to reproduce:
1. [First action]
2. [Second action]
3. [What triggers the bug]
Expected: [What should happen]
Actual: [What actually happened]
Screenshot: [Attach if visual]
Browser: [Chrome 120 on Mac]
URL: [Where it happened]
Frequency: [Always / Sometimes / Once]
Give to AI to fix:
Bug found: [paste bug report]
Please:
1. Reproduce the bug
2. Identify root cause
3. Fix the issue
4. Verify fix works
5. Test that fix didn't break anything else
After fixing a bug, test:
Regression Checklist:
- [ ] Original bug is fixed
- [ ] Happy path still works
- [ ] Related features still work
- [ ] No new errors in console
- [ ] No new visual issues
Common regression issues:
Before pushing to production:
Production Readiness:
- [ ] All features tested (happy path + edge cases)
- [ ] Works on mobile (iPhone + Android)
- [ ] Works in Safari and Chrome
- [ ] No console errors
- [ ] Forms validate correctly
- [ ] Authentication works
- [ ] No test data visible
- [ ] Error messages are user-friendly
- [ ] Loading states show
- [ ] Can't break it with weird input
Consider hiring QA when:
10 features to test before launch
For most MVPs: Following this checklist is sufficient.
| Mistake | Fix |
|---|---|
| Only test happy path | Test edge cases too |
| Test only on Chrome desktop | Test mobile + Safari |
| Skip testing forms | Forms are where bugs hide |
| Test while AI still building | Wait until feature complete |
| Ignore console errors | Fix all errors before deploy |
| Test with perfect data | Test empty, long, invalid data |
5-minute quick test:
1. Load page in Chrome
2. Complete main user flow
3. Try one edge case (empty field)
4. Check mobile view (Chrome DevTools)
5. Look for console errors
15-minute thorough test:
1. Happy path in Chrome
2. 3-4 edge cases
3. Test on real phone
4. Check Safari
5. Try to break it (fast clicks, weird input)
6. Check all error messages
Built into browser:
Free external tools:
Usually don't need:
✅ Main user flow works perfectly
✅ Edge cases handled gracefully
✅ Works on mobile and desktop
✅ Works in Chrome and Safari
✅ Error messages clear and helpful
✅ Can't break it with weird input
✅ No bugs reported by users