Finding bugs before users do is what separates senior from junior developers. Here's my checklist of edge cases to always test.
Input Edge Cases
Array Edge Cases
Async Edge Cases
UI Edge Cases
Date/Time Edge Cases
The Testing Mindset
- Always test the happy path AND the sad path
- Think: "What if the user does something unexpected?"
- Think: "What if the server returns something unexpected?"
- Test with realistic data volumes, not just toy examples
- Test on slow networks (Chrome DevTools → Network throttling)