What is UAT?

User acceptance testing is the last test operation before deploying the software. Software testing activities before the product is released, after unit testing, integration testing, and system testing have been completed. It is the final stage of technical testing, also known as delivery testing. The purpose of acceptance testing is to ensure that the software is ready and can be used by end users to perform the intended functions and tasks of the software.

UAT characteristics

  • Verify the functional performance of software products in real scenarios.
  • The wide range of testing and UAT’s desire to cover the entire product is one of the factors that makes the automation of acceptance testing tasks so difficult.
  • On the process side, UAT follows system testing. As mentioned earlier, user acceptance testing is the last testing phase before the software is put into use.
  • Automated user acceptance tests can be part of regression testing so that the team can re-run the UAT suite prior to the major release.

The need to implement UAT

You may feel that after the software has gone through unit, integration, and system testing, acceptance testing is unnecessary. However, acceptance testing is still needed because:

  • Developers write software based on requirements documents, which are their “own” understanding of requirements and may not actually be what the customer needs.
  • Requirements changes during the project may not be communicated effectively to developers.

When to execute the UAT

In the whole software development life cycle, the user acceptance test corresponds to the requirement review stage.

UAT implements standards

  • Business requirements must be available.
  • Code development is complete.
  • Complete unit testing, integration testing, and system testing.
  • There are no medium or advanced functional defects.
  • Prior to UAT, only appearance errors were acceptable (page style or text spelling).
  • Regression testing should be done without major defects.
  • All known defects should be fixed and tested prior to UAT.
  • The UAT environment must be ready.
  • An email or communication from the system test team confirming that the system is ready to execute UAT.

How do I implement UAT

UAT is also known as Beta testing, and this type of software testing is typically performed at the customer site by users of the system or software. Once the UAT implementation criteria are met, the tester needs to complete the following tasks:

  • Business requirement analysis
  • Create a UAT test plan
  • Determine the test scenario
  • Create UAT test cases
  • Preparation of test data
  • Run the test case
  • Identify business objectives

Is manual testing the right way to do UAT?

In a typical project, it might take 2-3 testers a week to manually run a pre-released UAT test suite. As the project grows, so does the time required to run user acceptance tests. At some point, the pressure of increasing delivery frequency is causing companies to skip some UAT runs or abandon UAT altogether.

Very few QA teams actually use automation for acceptance testing. According to statistics (TestDrive UAT), only about 3% of software test teams automate the UAT process. While these numbers may be imprecise, they do illustrate the current state of affairs: for most teams, most UAT still relies on manual testing.

Why is automation less prevalent in user acceptance testing? Based on what I’ve seen on many teams, code capability is a major bottleneck for test teams because of their limited coding capabilities, which are either not robust enough or simply not capable of writing automated code.

Natural language drives UAT

Testers write many test cases that are understood by all users as a natural language. From the PERSPECTIVE of UAT testing, testers can isolate test cases to form different UAT scenarios.

Cucumber (github.com/cucumber/cu…). As a behavior-driven framework, use cases can be combined with code to automate UAT. As a tester, the UAT use case can be edited into the feature file to realize automatic script operation in the corresponding steps. For example, the following scenario:

Scenario: Shopping cart billing if you open a browser and navigate to"https://cuketest.github.io/apps/shopping-cart/"When clicking the Add to Cart button then the button text should be"Sold Out"And pop up the bill"Total: $4. 99. ""
Copy the code

The above use cases can be easily converted into UAT test scenarios. With the help of CukeTest (cuketest.com) tool, it is easy to edit gherkin standard-based scenario descriptions and associate these scenarios with automated code for UAT automation.

During the UAT test, click “Run the project” to automatically run the project. During the running process, subtitles will be directly displayed on the desktop to show which scene and operation steps the project is currently running to facilitate the understanding of THE UAT progress.

After the running is complete, you can automatically generate a report file to view the overall running result.

In addition, it can record video of the UAT automation during execution, making it easy to revisit the operation to diagnose problems if necessary.

UAT involves many types of applications, such as Windows applications, Web applications, APIS, mobile applications, WPF, Qt, and Java, and operates multiple types of applications in one script. Or execute on multiple platforms, such as Windows, Mac, or Linux. Fortunately, CukeTest has support for all of these platforms as a UAT automated testing tool. For details, see the previous article node.js for detailed steps to develop multi-side automation (Windows, Mobile, Web). As long as you know the popular JavaScript language, you can do UAT testing for all application types.