Title: User Acceptance Testing CSTE Skill Category 7
1User Acceptance TestingCSTE- Skill Category 7
- Acceptance Testing Concepts
- Roles and Responsibilities
- Acceptance Test Planning
- Acceptance Test Execution
Presented by Deanna Benton QA/QC Infrastructure
Lead, Albertsons
2I. Acceptance Testing Concepts1.Acceptance
testing concepts2.Difference between system test
acceptance test
- Acceptance testing concepts
- Acceptance Testing is formal testing conducted to
determine whether a software system satisfies its
acceptance criteria and to enable the buyer to
determine whether to accept the system.
3- SOFTWARE ACCEPTANCE is an incremental process of
approving or rejecting software systems during
development or maintenance, according to how well
the software satisfies predefined criteria. - Final software acceptance testing must occur at
the end of the development process - ACCEPTANCE DECISIONS occur at pre-defined times
when processes, support tools, interim
documentation, segments of the software, and the
total software system must meet accepted elements - Final acceptance decision occurs with
verification that the delivered documentation is
adequate and meets buyer requirements
4Acceptance testing involves procedures for
identifying acceptance criteria for interim life
cycle products and for accepting them. As a life
cycle process, software acceptance enables
- 1-Early detection of software problems
- 2-Preparation of appropriate test facilities
- 3-Early consideration of the users needs during
software development - 4-Accountability for software acceptance belongs
to the customer of the software whose
responsibilities are - Ensure user involvement in developing system
requirements and acceptance criteria - Identify interim and final products for
acceptance, acceptance criteria and schedule - Plan how and by whom each acceptance activity
will be performed - Plan resources for providing information on which
to base acceptance decisions - Schedule adequate time for buyer staff to receive
and examine products and evaluations prior to
acceptance review - Prepare the Acceptance Plan
- Respond to the analyses of project entities
before accepting or rejecting - Approve the various interim software products
against quantified criteria at interim points - Perform the final acceptance activities,
including formal acceptance testing, at delivery - Make an acceptance decision for each product
5Acceptance testing is designed to determine
whether the software is fit for use. The concept
of fit is important in both design and testing
- The 4 components of fit are
- Data-The reliability, timeliness, consistency and
usefulness of the data included in the automated
application - People-People should have the skills, training,
aptitude and the desire to properly use and
interact with the automated application - Structure-The structure is the proper development
of application systems to optimize technology and
satisfy requirements - Rules-The rules are the procedures to follow in
processing the data
6The system must fit into these four components of
the business environment. If any of the
components fails to fit properly, the success of
the application system will be diminished
7Difference between Acceptance Test and System Test
- Acceptance Testing is performed by user personnel
and may include assistance by software testers. - System Testing is performed by developers and/or
software testers. - The objective of both is to assure that it will
be acceptable to the user in the end! - System Test should be performed before User
Acceptance Testing.
8II. Roles and Responsibilities Users
role Software testers role
- Users role
- Begins with the user making the determination
whether or not acceptance testing will occur - If acceptance testing does occur, the user is
responsible for planning and conducting the
testing - At a minimum the user will have the following
roles in acceptance testing - Defining acceptance criteria in a testable format
- Providing the use cases that will be used in
acceptance testing - Training user personnel in using the new software
system - Providing the necessary resources, primarily user
staff for acceptance testing - Comparing the actual acceptance testing results
with the desired acceptance testing results - Making decisions whether the software is
acceptable or whether more work needs to be
completed
9- Software testers role
- Software testers can have 3 roles
- 1. No involvement at all. The user accepts
full responsibility for developing and executing
the acceptance test plan - 2. An advisor role. The user will develop and
execute the test plan, but rely on software
testers to compensate for a lack of competency on
the part of the users or a quality control role - 3. Active participant in software testing
role. This role can include any or the entire
acceptance testing activities - The software tester cannot make the decision
whether or not the software can be placed into
production - The software testers should develop the
acceptance test process. - Develop a process for defining acceptance
criteria - Develop a process for building an acceptance test
plan - Develop a process for recording and presenting
the results of acceptance testing
10III. Acceptance Test Planning
- The acceptance test plan follows the practices
used for developing an overall system test plan - Acceptance Criteria
- Acceptance Test Plan
- Use Case Test Data
11Acceptance Criteria
- The user must assign the criteria the software
must meet to be deemed acceptable. In preparing
for developing the acceptance criteria, the user
should - Acquire full knowledge of the application for
which the system is intended - Become fully acquainted with the application as
it is currently implemented by the users
organization - Understand the risks and benefits of the
development methodology that is to be used in
correcting the software system - Fully understand the consequences of adding new
functions to enhance the system
12Acceptance requirements that a system must meet
can be divided into 4 categories
- 1- Functional Requirements- this relates to the
business rules that the system must execute - 2- Performance Requirements- this relates to
operational aspects, such as time or resource
constraints - 3- Interface Quality Requirements- this relates
to connections from one component to another
component of processing - 4- Overall Software Quality Requirements- these
specify limits for factors or attributes such as
reliability, testability, correctness and
usability
13- All safety criteria are critical and by law,
certain security requirements are critical. Some
typical factors affecting criticality include - Importance of the system to organization or
industry - Consequence of failure
- Complexity of the project
- Technology risk
- Complexity of the user environment
14- USER RESPONSIBILITIES
- The user has the responsibility of ensuring that
acceptance criteria contain pass or fail criteria - For specific software systems, users must examine
their projects characteristics and criticality
in order to develop expanded lists of acceptance
criteria for those software systems - The user must also establish acceptance criteria
for individual elements of a product (should be
numeric value or a range of values)
15Acceptance Test Plan
- The first step to achieve software acceptance is
the simultaneous development of a Software
Acceptance Plan, general project plans, and
software requirements to ensure that user needs
are represented correctly and completely. This
simultaneous development will provide an overview
of the acceptance activities, to ensure that
resources for them are included in the project
plans.
16- Acceptance managers define the objectives of the
acceptance activities and a plan for meeting them - After the initial Software Acceptance Plan has
been prepared, reviewed and approved, the
acceptance manager is responsible for
implementing the plan and assuring that the
plans objectives are met
17What should be included in a Software Acceptance
Plan?
- The first section of the plan is an overview of
the software development or maintenance project,
followed by major sections for management
responsibilities and administrative matters - The plans overview section describes the
technical program for software acceptance - The plan must include the techniques and tools
that will be utilized in acceptance testing - Two categories of testing techniques can be used
in acceptance testing structural and functional - Functional testing techniques help ensure that
the requirements/specifications are properly
satisfied by the software system - Structural testing ensures sufficient checking of
the implementation of the function by finding
test data that will force sufficient coverage of
the structured presence in the implemented
software
18Use Case Test Data
- A use case is a test case which represents how
the software will be used in operation - A use case is built on a business transaction and
can be test data or a test script - Unit testing will attempt to determine whether
there are any variances between unit
specifications and the unit as it is executed - Integration testing will attempt to determine if
there is a variance between specified integration
and actual integration - System testing will validate that the system will
perform as specified - The test cases and scripts used for these three
levels of testing are focused more on the
components of the software than business
transactions
19An individual use case consists of
- Preconditions that set the stage for the series
of events that should occur for the use case - Post-conditions that state the expected outcomes
of the above process - Sequential narrative of the execution of the use
case
20IV. Acceptance Test Execution Execute the
Acceptance Test Plan Acceptance Decision
- Execute the Acceptance Test Plan
- The objective is to determine whether the
acceptance criteria have been met in a delivered
product - Through reviews, which involve looking at the
interim products and partially developed
deliverables at various points throughout the
dev. Process. - Through testing the executable software system
- The determination of which of these techniques to
use will depend on the criticality of the
software, the size of the software program, the
resources involved, and the time period over
which the software is being developed
21- Software acceptance criteria should be specified
in the formal project plan - Acceptance decisions need a framework in which to
operate - A disciplined acceptance program for software of
any type may include reviews as a formal
mechanism - Some software acceptance activities may include
testing pieces of the software formal software
acceptance testing occurs at the point in the
development life cycle when the user accepts or
rejects the software
22- Acceptance Decision
- Final acceptance of software based on software
acceptance testing usually means that the
software project has been completed, with the
exception of any caveats or contingencies - Final acceptance for the software occurs and the
developer has no further development obligations
23- Typical acceptance decisions include
- Required changes are accepted before progressing
to the next activity - Some changes must be made and accepted before
further development of that section of the
product other changes may be made and accepted
at the next major review - Progress may continue and changes may be accepted
at the next review - No changes are required and progress may continue
- The goal is to achieve and accept perfect
software!