User Acceptance Testing

Background

User acceptance testing is normally the final stage of testing performed on a system. It is usually planned to be a formality - a final confidence building step for the users. It can however, become an exercise fraught with problems.

The main problems can be summarised as follows:

  • In a new development, it is common for users to find serious faults in software, which is assumed to have been tested and be working well - whether the system was written internally or by a third party.
  • When testing a package solution, the acceptance test may be the first and last chance for uses to ensure the system meets their requirements Mismatches between the package and the business may be expensive or impossible to correct in time.
  • There is little point in handing over a system for testing to users who have little time or adequate experience of testing. Without support, users will not be able to test the system adequately, and a poor or unusable system may be accepted.

Are Users the best acceptance testers?

There are distinct advantages in getting users to acceptance test the systems they are expected to use:

  • They are independent from the developers of the system and so are more objective
  • They understand the business requirements, so can prepare tests and test data, which are realistic
  • They define the context in which the system will be used so can better assess its fitness for purpose
  • They have a vested interest in ensuring that the system is of high quality and so are motivated to perform rigorous tests

Users are best placed to ensure that the testing is rigorous and covers the most important areas. However, users are rarely expert in test specification and preparation and yam by unable to execute comprehensive tests effectively without support.


Learning Objectives:

Upon completion of this course you will be able to:

  • Understand the relationship between testing and development and how important acceptance testing is
  • Define the fundamental principles of testing and overall test process.
  • Plan, prepare and execute acceptance tests
  • Effectively implement the essential disciplines of test management including prioritisation, estimation and control of the testing

Topics covered

  • Introduction
    • Agenda
    • Objectives
    • Workplan
  • Testing V's Development
    • System Development Lifecycle
    • Testing Versus Development
    • Why do Errors Occur?
    • Testing and Errors
    • Cost of Errors
    • Layered and Staged Testing
    • V-model of Testing
  • Testing Principles
    • Purpose of Testing
    • Formal Versus Informal Testing
    • Testing as a Controlled Experiment
    • Looking for Errors
    • Independence
    • Positive Testing
    • Negative Testing
    • Testing Against a Baseline
    • Expected Results
    • Where to Begin
    • Re-Testing
    • Regression Testing
  • Test Process Overview
    • Why Test a Process?
    • Scoping the Test
    • Specifying the Test
    • Preparing the Test
    • Executing the Test
    • Managing the Test
  • Scoping the Test
    • Complex, Critical and Error Prone
    • Requirements-based Testing
    • Business Process-based Testing
    • Design-based Testing
  • Specifying the Test
    • Test Cases and Conditions
    • Techniques for Selecting Test Cases
    • Equivalence Partitions
    • Boundary Values
    • Error-guessing
  • Preparing the Test
    • Business Scenarios
    • Mapping Scenarios to Conditions
    • Test Scripting
    • Expected Results
    • Inputs and Outputs
    • Test Data
    • Test Scheduling
    • More Important Tests First
  • Executing the Test
    • Working as a Team
    • Testing to the Plan
    • Recording Results
    • When You Find an Error...
    • Early Frustrations, Keeping Going
  • Managing the Test
    • Estimation
    • Test Environment
    • Support
    • Incident Management
    • Prioritisation and Severity
    • Reporting Results
    • Releasing Errors in to Production
    • Stopping Testing