Acceptance testing is formal testing conducted by end users or clients to determine if a system meets business needs and requirements. There are two types of acceptance testing: user acceptance testing, which ensures a system satisfies contractual criteria from the user's perspective, and business acceptance testing, which is conducted by the development organization to ensure the system will pass acceptance. The objective of acceptance testing is to confirm that the system meets specified criteria and to identify any discrepancies, with testing divided into basic and complex test cases executed over two phases.