Regression testing and UAT and functional testing are all different, in fact.
Regression testing is the act of retesting a product around an area where a bug was fixed. If a data access component is changed, for instance, to improve security, the code directly affected by that change will be regression tested. A good team will also test related code such as UI-based functions which leverage the methods and/or class impacted by the fix.
UAT, or user acceptance testing, is a waterfall test concept. Software solutions are developed, tested internally and then delivered to the customer/user for UAT. In this test activity, end-to-end scenarios are the focus. Generally testers are the business customers of an IT project, and very little negative testing takes place.
Functional testing is an overridden term most frequently used to refer to the testing of software features (functional points) individually. Emphasis is placed on functionality within the unit, and very little time is spent testing how that functional unit integrates with other functional units.
This was first published in April 2009