Input validation is the enforcement in software systems to ensure that only valid input is accepted to raise effects. It is essential and very important to a large class of software systems and usually forms a major part of data-intensive systems. Currently, the design and implementation of input validation are carried out by application developers. The recovery and maintenance of the input validation implemented in software systems are challenging. Furthermore, as input validation is vital to the robustness of software system, having an effective method for testing input validation is important for software quality assurance. In this thesis, we establish the approaches for the recovery, maintenance and testing of input validation based on the techniques of program analysis, program slicing and software testing augmented with empirical properties. We present some properties that characterize the implementation of input validation and an algorithm for the automated recovery of input validation information from program source code. The information recovered provides the basis for the maintenance and testing of input validation. We then introduce a variant of control flow graph called validation flow graph for representing the overall structure of the input validation implemented in software systems and a set of vi