User acceptance testing is performed by business analysts, clients or the end-users. They will write a complete UAT test plan, prepare a UAT environment that mirrors production, write corresponding UAT test cases, execute these test cases, report defects if any, verify the fixes to the defects raised and finally confirm that the software is fit for use.