In software development, Acceptance Testing is a type of testing to validate if the software developed meets acceptability. The testing looks at business requirements and validates if the software developed meets these requirements and is ready for use.
In Kanban, we look to deliver value in small, releasable chunks which in turn reduces the testing overhead. Typically, the Product Owner or end user would conduct acceptance testing. You should always look to automate acceptance testing using test automation frameworks such as Nightwatch.js.
Other aspects of acceptance testing to consider are how to build quality into the software development lifecycle earlier. If you are finding lots of defects at the acceptance testing phase then you need to understand root cause and take appropriate preventative action. To be fair, if the customer is doing acceptance testing and finding lots of defects then you have some significant communication and process issues.
Common root causes include code defects, misinterpretation of requirements, data issues, configuration mismatch across environments, not a defect, scope creep, incomplete or erroneous specification, intentional deviation from specification, inconsistent user interface, unable to recreate issue, and many more.
Common metrics associated with acceptance testing are the number of defects raised over time. To normalise this metric you may want to look at calculating the metric based on number of lines of code, i.e. defect density.
An alternative school of thought suggests that formal acceptance testing is potentially wasteful and unnecessary. Instead of creating a gateway in the form of acceptance testing, maybe it’s better to just release the software to a small subset of real users to gauge acceptance. Once you’re happy with the feedback then you can ramp up traffic to 100% of users.
The beauty of this approach is that it can reduce cycle time (a key Kanban metric), further improving your feedback loop. A reduction in the need for acceptance testing can only come with trust and confidence from your stakeholders which Agile techniques provide.