Regression testing is the retesting of previously tested software to ensure that previously working functions continue to work, that newly added features have not created problems with previous versions of the software and that new faults have not been introduced. Regression testing can be automated.