Regression testing verifies that unchanged areas of software still work correctly after modifications. Its purpose is to detect unintended side effects in parts of the system that weren't directly modified. It doesn't focus on changed areas (that's the job of other tests) and can be manual or automated at any test level.