Developers and testers are comfortable with the idea of receiving input fro
m human users, checking it for validity, and producing out put for human us
ers, However, the human user is only part of: the equation. Other, invisibl
e software users also submit input and receive output but Rr e less underst
ood and sometimes forgotten altogether. But there is a price to pay for ign
oring these invisible users. The first step in proper accounting of these u
sers is: to understand their nature and how they can cause software applica
tions to fail.