Explain each of these testing methods, unit, system, integration, user acceptance and regression testing.
A unit test is a procedure used to validate that a particular module of source code is working properly. The procedure is to write test cases for all functions and methods so that whenever a change causes a regression, it can be quickly identified and fixed. Ideally, each test case is separate from the others; constructs such as mock objects can assist in separating unit tests. This type of testing is mostly done by the developers.
For instance, in HR/Finance system, HR and Finance are two major design items (i.e. assemblages, larger aggregates or groups of units). These larger aggregates are comprised of modules, like, Salary calculations, Tax calculations etc. Test scripts (input data) are formed to test all functions and methods with the modules.
Integration testing takes its input modules that have been checked out by unit testing, groups them in larger aggregates, applies tests ...