What is a failure? And how do we find it? A failure is a deviant behaviour from the expectations. Software testing that means a reference and a deviation with respect to the reference. So, we test a software against something, a manual, a specification, an expectation, etc. A software does not meet the specification. Often as a result of it a program respect with a software does not meet the specifications, whereas a user would say does not meet the expectations.