A regression test
-
will help ensue unchanged areas of the software have not been affected
-
can only be run during user acceptance testing
-
will help ensure changed areas of the software have not been affected
-
will always be automed
Regression testing verifies that recent code changes haven't adversely affected existing features - it specifically checks unchanged areas of the software to ensure they still work. Option C is incorrect because regression testing focuses on unchanged areas, not changed ones. Option B is wrong because regression testing runs at all levels, not just UAT. Option D is incorrect because regression tests can be manual.
Regression testing is specifically aimed at confirming that areas of the software that were NOT intentionally changed still work as before, catching unintended side effects of a change elsewhere in the system. It isn't limited to user acceptance testing, and it isn't inherently about verifying the changed areas themselves (that's the job of the tests targeting the new/changed functionality), nor is full automation guaranteed.