The quality assurance enables releasing better quality code and therefore help to increase the user acceptance for the solution.
There are different kinds of tests, some are done by and for the developers (unit, system and integration) another part, the User Acceptance Tests are done by the business for the end user, and this document is focused on those UAT.
Writing a test case
In order to achieve higher quality, the UAT cases must be written from the perspective of the users, the technical details hidden from the user have no places in user acceptance tests.
User role of the expected tester
It must be clear which user role needs to execute the test or the step because the product behaviour could depend on the user roles.
In cases, some preconditions are required such as previous action done on the product; those should be cleared by either detailing all the required preconditions. To ensure reproducibility it is recommended either to have script that setup those precondition or to define them step by step inside the test case, or refer to another documentation such as another test case or other documents.
Names and summary
The test case name and description/summary should help the business and user to understand the features tested by the UAT case
Each action or set of action that generates a result (error message, graphical toolkit, new page … ) define a step. Creating steps can be experienced as dull but it helps the tester to follow the desire scenario, it increases reproducibility and help to identify where the issue is.
The result of the step and or the result of the test case must be clear and must lead to a factual assessment: “Failed” or “Passed.”
Executing the test cases
Once written, the UAT cases are grouped and order to ensure the precondition of a given test are run before the test itself. Often there is two sets of tests, the regression test (features already tested in the past) which are made to ensure the used feature are still working and the new feature test that validate that the change made in the code create the desired features.
The tester must be informed on how they execute and report the UAT case result, ideally (s)he is familiar with the software or the steps must be very precise. The test must have access to the application that is compatible with the role expected.
The tester follows the UAT case and reports everything which is not aligned with the test case description. If an issue tracking system is used then the tester must create an issue and ensure that the issue is linked to the test cases so this case could be found back once the issue is solved.
Using a test case management tool enable the team to follow the execution of the test and give an overview on the release quality and readiness for production.