Error Guessing is not in itself a testing technique but rather a skill that can be applied to all of the other testing techniques to produce more effective tests (i.e, tests that find defects)

Error Guessing is the ability to find errors or defects in the AUT by what appears to be intuition. In fact, testers who are effective at error guessing actually use a range of techniques, including:

- Knowledge about the AUT, such as the design method or implementation technology
- Knowledge of the results of any earlier testing phases (particularly important in Regression Testing)
- Experience of testing similar or related systems (and knowing where defects have arisen previously in those systems)
- Knowledge of typical implementation errors (such as division by zero errors)
- General testing rules of thumb of heuristics.

Improve your error guessing techniques.

# Improve your memory:

- List interesting error-types you come across
- Use existing bugs lists (I like the huge one provided as an appendix in Testing Computer Software, 2nd Edition)

# Improve your technical understanding:

- Go into the code, see how things are implemented, understand concepts like buffer overflow, null pointer assignment, array index boundaries, iterators, etc.
- Learn about the technical context in which the software is running, special conditions in your OS, DB or web server.

# Remember to look for errors not only in the code

- Errors in requirements

- Errors in design

- Errors in coding

- Errors in build

- Errors in testing (we never make mistakes, do we?)

- Errors in usage