Differences between User Acceptance Test and Test Case Scenario and Functional Test

5.2k views Asked by At

In the context of Agile software development, what's the difference between User Acceptance Test (UAT), Test Case Scenario and Functional Test?

The members of the team I am part of, they consider the three things as different, but I see them as exactly the same thing.

In fact, all of them are designed having the end user in mind

3

There are 3 answers

0
Stanislav Bashkyrtsev On
  • User Acceptance Testing is having business users trying out your app.
  • There is also an Acceptance Testing done by QA when they check the new functionality - you can call it a Story Acceptance Testing to distinguish between these. These are not necessarily Functional Tests (could be Security, Performance testing, etc.).
  • Test Case is a number of steps to check a small piece of functionality. It has Prerequisites, Steps, Expected Result, Actual Result. This is one of the ways of carrying out Functional Testing. Others could be: exploratory testing, checklists.
  • Test Scenario - steps that cover a bigger picture. Often they cover cases of how real users would use the app. But these are carried out by QA team.
  • Functional Test - a test that checks the functionality as opposed to e.g. Performance. This can be a unit test as well, but since this terminology is mostly used by QA - when people talk about them they usually mean Functional System Test.

Note, that different authorities may use different definitions of the same terms. Check out Holes in testing terminology: Test Types and Test Levels. Since it's impossible to find the one true terminology it's more important that you use terms consistently within your team even if they are used differently in other companies and teams.

0
Schwern On

There's a lot of different sorts of testing. Many of them overlap. Many use the same tools. Many are specializations of other more general terms. Often they blur together. People argue about the terminology all the time.

You're correct that they all have the end user in mind, but they are different.

User Acceptance Test

This is a specific form of an acceptance test where a subject-matter expert, ideally the client or their representative, tests the software. This is in addition to functional and acceptance testing done by QA. It's designed to simulate, as closely as possible, an actual end-user using the software; the tester is asked to perform a bunch of common tasks with the new system, but not given specific instructions nor coaching on how to do it.

For example, if you were creating a site for an airline, they might be asked to register, login, book a flight, make a payment, check in, check their flight status, and so on.

Functional Test

This is blackbox testing done by the QA role. It verifies the thing does what it's supposed to do; you give it inputs, you check the outputs. Typically this is testing against the specification and/or requirements document.

"Functional" here doesn't refer to code functions, but that the system functions as expected. Testing specific functions is unit testing.

They can be purely functional, "when I do X I get Y". They can be about resource use, "when I do X it uses no more than Y memory/time". Or about error checking, "when I give it garbage I get a well formed error". Anything that validates it meets the requirements.

Test Case Scenario

Sounds like Scenario Testing: this uses stories, similar to user stories, that help a tester work through a complicated testing scenario. Scenario testing tests complicated combinations of things which might arise during actual use and often cut across multiple systems.

An example of a test scenario might be: "in the middle of processing the system runs out of disk space; verify an admin is notified, that processing resumes once space is cleared, and that no data is lost".

A User Acceptance Test might use Scenario Testing.


These are my rules of thumb:

  • Unit testing: does this one function work?
  • Integration testing: do the functions work together?
  • Functional testing: does it function as required?
  • Acceptance testing: is it acceptable to the client?
  • Regression testing: does it still work like it used to?
0
Vijay Patel On

User acceptance testing is a process that obtains confirmation that a system meets agreed customer/product manager requirements.

Functional Testing is actual functionality test of the software there can be many different types of testing but in simple word testing the functionality what is should be expected.

The test scenario is the high level of testing cases when the first classification of module testing then module dividing into a scenario and at last small and specifical test steps with expected result says test cases, so the test scenario is group test cases with limited to specific functionality and module.