Error Guessing Technique
Error Guessing is a defect-finding technique based on the tester's experience, intuition, and knowledge of common failure patterns. It's the most flexible technique in a tester's toolkit — used when formal techniques miss context-specific bugs. Effective error guessing is built from past bugs, domain knowledge, and pattern recognition.
Error Guessing Heuristics
- Empty/null inputs: Always try empty strings, null, undefined, zero on every input field
- Numeric extremes: Integer.MAX_VALUE, -1, 0, Infinity, NaN for any numeric input
- Special characters: Apostrophes (SQL injection attempt), HTML tags (XSS), emojis, non-Latin characters
- Timing-based: Submit a form multiple times in rapid succession; click a button before previous action completes
- State-based: Perform an action you've already completed (add same item to cart twice, confirm order twice)
- Interrupted flows: Navigate away mid-wizard, reload during form submission, close browser mid-transaction
- Access control: Try accessing URLs for other users' data; try admin features as a regular user
- Boundary actions: What happens at the very first or very last action in a workflow?
Error Guessing Applied
// Error guessing test cases for a file upload feature
// (These go BEYOND what BVA, EP, or decision tables would cover)
// ── Based on "I've seen this break before" experience ─────────
const errorGuessingTests = [
// Filename edge cases:
"file with spaces in name.pdf", // URL encoding issues
"file-with-très-special-chàrs.pdf", // Unicode filenames
"../../etc/passwd", // Path traversal attack
"file.PDF", // Case-sensitive extension check
".htaccess", // Hidden files with no extension
"file.exe.pdf", // Double extension (malware evasion)
"a".repeat(256) + ".pdf", // Very long filename
"file with emoji 🎉.pdf", // Emoji in filename
// File content edge cases:
"empty.pdf", // Zero-byte file
"not_actually_a_pdf.pdf", // Wrong MIME type (just renamed .txt)
"file_at_exactly_10MB.pdf", // Exactly at the limit
// Upload process edge cases:
// - Start upload, disconnect network at 50%
// - Upload same file twice simultaneously in two tabs
// - Upload 100 files in rapid succession (rate limiting test)
// - Refresh browser while upload is at 90%
];
// Each of these has caught real production bugs because:
// - Path traversal: System allowed downloading server configuration files
// - Double extension: Malicious .exe.jpg passed image validation
// - Simultaneous upload: Two identical records created in DB
// - Mid-upload disconnect: Partial file stored, corruption on retrievalCommon Mistakes
- Using error guessing as the ONLY technique — it depends on experience; beginners miss systematic coverage; always combine with BVA/EP/Decision Tables
- Not documenting error guessing tests — if a guess was turned into a test case, document it so it's repeatable and becomes part of the regression suite
- Stopping at obvious guesses — experienced testers layer their guesses; once an obvious one passes, think about what that reveals about the implementation
- Not sharing error guessing patterns with the team — pattern libraries (e.g., 'always try these 20 strings on any input') make the whole team more effective
Tip
Tip
Practice Error Guessing Technique in small, isolated examples before integrating into larger projects. Breaking concepts into small experiments builds genuine understanding faster than reading alone.
Playwright rising fast — modern API, auto-waits, all browsers
Practice Task
Note
Practice Task — (1) Write a working example of Error Guessing Technique from scratch without looking at notes. (2) Modify it to handle an edge case (empty input, null value, or error state). (3) Share your solution in the Priygop community for feedback.
Quick Quiz
Common Mistake
Warning
A common mistake with Error Guessing Technique is skipping edge case testing — empty inputs, null values, and unexpected data types. Always validate boundary conditions to write robust, production-ready software testing code.
Key Takeaways
- Error Guessing is a defect-finding technique based on the tester's experience, intuition, and knowledge of common failure patterns.
- Empty/null inputs: Always try empty strings, null, undefined, zero on every input field
- Numeric extremes: Integer.MAX_VALUE, -1, 0, Infinity, NaN for any numeric input
- Special characters: Apostrophes (SQL injection attempt), HTML tags (XSS), emojis, non-Latin characters