Acceptance tests are created to test a system from the user's perspective and ensure business requirements are met. They examine inputs, outputs, and state changes of the external system interfaces without relying on implementation details. Creating acceptance tests early in the development process and coding with the tests provides quick feedback to prevent rework when tests fail. The tests are created collaboratively by customers, testers, and developers and can be automated for regression testing to improve quality.