backlink to all of my Software Engineering notes :)
why does software go wrong?
validation: evaluating software prior to release to ensure compliance with intended usage
verification: determining whether products of a given phase of the development process fulfil requirements established in a previous phase
software fault: static defect in the software
software error: incorrect internal state that is the manifestation of some fault
software failure: external, incorrect behaviour (as in really bad fail)
testing: evaluating software by observing its execution
debugging: finding (and fixing) a fault given a failure