Validation of software requirements is an important part of software engineering. This paper describes a new safety analysis technique called software deviation analysis to help identify weaknesses in how software handles an imperfect environment. The technique propagates deviations in software inputs to output deviations. A qualitative analysis is used to improve the search efficiency.