回归测试的目的是为了确保对旧代码的修改没有引入新的错误或导致其他代码产生错误。回归测试需要针对修改过的软件成分进行测试,并且通常需要能够测试软件的所有功能的代表性测试用例。因此,选项A、B和C都是正确的。而选项D不正确,因为回归测试是可以实现自动化的,通过自动化可以大大减轻重复工作的工作量。