State of the Art in Defensive Programming