Now, more than ever before, more responsibility is being placed on software users to define and validate the systems they acquire. This course presents two important sides of user involvement in software projects: gathering and documenting user requirements, and testing from the user perspective.
The instructor for this course will be Randy Rice, a facilitator and designer of many user acceptance tests in a variety of project settings. This presentation is for anyone who needs to understand and apply solid techniques for user-oriented activities on a project.
This is a basic course in understanding the process of gathering, defining, testing and managing user requirements. On the final day, we will discuss how to plan, perform and evaluate user acceptance testing.
This course is ideal for people who are just learning about the importance of user requirements, or for those who need a defined process for requirements management and user acceptance testing.
This is a practical interactive seminar which uses team exercises to reinforce the process taught in the class. Your instructor will be a certified instructor in the software engineering field. You will learn the terminology, process, and challenges of requirements management in the real world. As a result of attending this seminar, you should have a good working knowledge of user requirements and what it takes to gather, design, test and manage a complete set of user requirements for a project. In addition, you will know how to plan a user acceptance test that can be used for a variety of projects.
This workshop will help you become more comfortable and confident in performing the requirements management process in just about any role on the project, including business analyst, user, system designer, project manager, QA analyst or tester.
You will emerge from this three-day session knowing how to define the right problem, talk to the right people, document the right needs, build the right system, and test the system using a defined baseline of requirements as the target. You will also leave with a knowledge of how tools can help you perform requirements management and user acceptance testing. You will also learn about how to deal with some of the most common people problems in user acceptance testing.
- Learn how to define and solve the right problem and avoid spending tons of money building the wrong system.
- Learn how to find problems in requirements before they ripple through the rest of the project, where they are much more costly to fix.
- Understand the key issues in gathering and defining user requirements.
- Learn how to design tests that adequately cover requirements and business events.
- Get the most out of your existing investment in user requirements and use cases and how to leverage that investment.
- Advance your career by reinforcing your software engineering expertise.
- Project managers
- Business analysts
- System designers
- Software engineers and developers
- QA analysts
- Test analysts
This course requires only basic IT knowledge or experience. Technical documentation knowledge or experience is not a prerequisite.
This course is presented on an in-house basis only unless offered as a special public course. Contact us for information about how to bring this course into your organization.
Module 1 - Exploring Requirements
- What is Development?
- What is the Requirements Process?
- What Is A Requirement?
- What a Requirement Isn’t
- What is Requirements Management?
- The Overall Objective
- Why We Aren’t Very Good At Requirements
- Problems With Requirements
- Why Are Requirements Important?
- Where Defects Originate
- Where Testing Resources are Used
- The Relative Cost of Fixing Defects
- Case Study – Defining A Simple Requirement
- Assessing the Requirements Process in Your Organization
- Making Sense of Your Score
Module 2 - Problem Analysis
- Five Step ProcessProblem Solving Exercise
- Step 1 – Define the Problem to be Solved
- Step 2 – Understand the Root CausesStep 3 - Identify the Affected People
- Root Cause Analysis
- Fishbone Chart
- How to Describe the Root Causes of a Problem
- Context-free Questions
- How Can Context-free Questions be Used?
- The Sources of False Assumptions
- Step 4 – Define the Scope of the Solution
- Step 5 – Identify Solution Constraints
- Modeling Techniques
- Business Modeling
- System Modeling
- E-R Diagrams
- Process Flows
- Data Models
Module 3 - Techniques for Getting the User Perspective
- Getting the Right PeopleInterview Techniques
- Questions to identify the right people
- Who is a Customer?
- Who is a User?
- A Short Process for Getting the Right People
- Preparing for the Workshop
- Marketing the meeting
- Responsibilities of the Facilitator
- Sample Agenda
- Conducting the Session - Things to Pay Attention To
- Brainstorming Process
- Types of Storyboards
- Tools for Storyboarding
- Helpful Hints for Storyboarding
- Use CasesJAD Sessions
- Use Case Components
- Use Case Model
- Sample Use Case
- Role Playing
- How to Role Play
- PrototypingExercise – Role Playing to Develop a Requirement Definition
- Types of Prototypes
- The Prototyping Cycle
- Dealing With Conflicts
Module 4 - Documenting Requirements
- IEEE/ANSI SRS Standard Document
- Major Topics that Should be Addressed in Requirements
- Desirable Attributes of Requirements
- Categories of Specification Statements
- Sizing of Requirements
- Testable requirements
- Readability of Requirements
- Common Problems with Requirements
- Tools Used for Defining Requirements
- Defining the Problem to be Solved
- Statement of Work
- Risk Analysis
- Types of Prototypes
- Use Cases
- Use Case Components
- Four Phases of Use Cases
- Facade - Outline and high-level description
- Filled - Broadening and deepening
- Focused - Narrowing and pruning
- Finished - Touching up and fine tuning
- Process for Writing Use Cases
- Business Rule Catalog
- Five Types of Business Rules
- Technical Methods for Defining RequirementsTools for Documenting Requirements
- Decision Trees
- Entity-Relationship (E-R) Diagrams
- Object-oriented models
- Data Flow diagrams (DFDs)
- Finite-state Machines
- State-Transition Diagram
- Books that Discuss Modeling and Requirements
Module 5 - Requirements Management
- Scope Management
- Managing Expectations - Understanding Tradeoffs
- Tips for Managing Expectations
- Nine Steps to Conflict Resolution
- Refinement of Requirements
- Requirements vs. Design
- Change Control
- Where Does Change Come From?
- Three Ways to Deal With Change
- How to Control Change
- Change Control Process
- Tools for Change Control and Requirements Management
- Case Study – Changing a Requirement
Module 6 - Testing Requirements
- Ten Quality Measures
- Verification Methods
- Ambiguity Walkthroughs and Reviews
- Technical Reviews
- Why Perform Early Verification?
- Exercise – Perform an Ambiguity Review
- Developing Test Cases from Requirements
- Requirements-Based Test Conditions
- Adding Traceability
- Tools for Test Case Design from Requirements
- Exercise – Define Test Cases from a Requirement
Module 7 - Dealing With Problems in the Requirements Process
- Scope Creep Solutions
- Excessive Change Solutions
- How to Get Cultural Acceptance of Requirements
- How to Start
- How to Start Earlier
- When to Stop
Module 8 - User Acceptance Testing
- What is User Acceptance Testing?
- Methods of User Acceptance Testing
- The User's Role in Testing
- An Overview of the User Acceptance Testing Process
- Working Definitions
- The User Acceptance Test Planning Process
- Setting UAT Objectives
- Organizing the UAT Team
- What to Look For in Testers
- Defining Acceptance Criteria
- Developing Test Scenarios
- Developing UAT Scripts
- Developing Business Cases
- Defining Functional Test Cases
- Building a Test Cycle Matrix
- What is a Test Cycle
- Why Use Test Cycles?
- Building a Test/Function Matrix
- Estimating UAT Time and Resources
- UAT Materials
- Finalizing the Test Plan
- Execute User Acceptance Tests
- Selecting Test Tools
- Training Team Members
- Manual vs. Automated Methods of UAT
- Tracking UAT Process
- The Role of Regression Testing in UAT
- Documenting UAT Results
- UAT Pitfalls to Avoid
- Managing Attitudes and Conflict
- Addressing User Attitudes
- Addressing Developer Attitudes
- Addressing Management Attitudes
- Recording Defects
- Writing the UAT Final Report
Module 9 - People Issues in UAT
- The Role of Testing in a Project
- Working with Developers
- Working with Users
- Keeping Management Informed of Progress
- Managing Expectations
- What Can a Tester Reasonably Assess or Recommend?
- Checklists and Templates
- Course notebook with slides, worksheets, checklists, complete examples and supporting text
- You will have the basic information needed to gather and define good requirements, and plan and execute an effective test of a software application.