Requirements-Based Testing  

Code:

IS130-004

Series:

Information Management

Duration:

2 days

Introduction
Software Development Life Cycle (SDLC)
Waterfall life cycle
Rational Unified Process (RUP) life cycle
Agile methods
Agile life cycle
Triangular life cycle model
Product life cycle
Views of quality
Gaps between views of quality
Closing the gaps
Requirements concepts
Business needs
Application features
Software requirements
Testing concepts
Cause of software failure
People causes
Environment causes
Understanding the limitations of software testing
Concepts of verification & validation
Identifying test objectives & expected outcomes
Testing & independence
SDLC roles & responsibilities

Documenting Software Requirements
Software requirements
Interface requirements
Functional requirements
Non-functional requirements
Quality attributes
Constraints
Storage requirements
Use cases
Use case Concepts
UML Use Case Diagrams
Naming use cases
The importance of a glossary
Use case steps
The subject..verb..object template
Use case scenarios
Interface Requirements
Data dictionaries
The role of prototypes
Use cases & business processes
Documenting "to be" workflows
UML Activity Diagrams
UML Sequence Diagrams
Use case templates
Levels of use case description
Use case narrative

Validation
Validation concepts
Product validation
Requirements validation
Workshops
Strengths & weaknesses of workshops
Objectives
Logistics
Participants
Workshop activities
Planning
Prototypes
Strengths & weaknesses of prototypes
Candidates for prototyping
User interface
Business rules
Modelling
Strengths & weaknesses of modelling
Modelling langauges
What is the UML?
UML meta-model
UML repository
UML diagrams
UML models vs. natural language
Requirements review
Strengths & weaknesses of requirements review
Error seeding
Requirements review & system test plan
Error scenarios & use cases
Product validation
Options for acceptance testing
End-to-end testing
Operational testing
Post-implementation reviews

Verification
Verification concepts
Verification & testing
Use case vs. test cases
Importance of test case coverage
Test case coverage of requirements
Verifying functional requirements
Verification test cases vs. use case
Test case coverage matrix
Adding error cases to use cases
Concept of a test oracle
Verifying non-functional requirements
ISO 9126 quality characteristics
Constraints
Special considerations
Benefits of early planning
Verification & reviews
IEEE 1028-1997 standard for software reviews
Types of review
Code reviews
Design reviews
Architecture review
Reviews vs. test plans
Reviews & test case design techniques

Risk-based Testing
Risk-based testing strategy
Failure mode effect & analysis (FMEA)
Fast-track approaches to risk analysis

Model-based Testing
Static models
State Machine Diagrams
Generating test cases from State Machine Diagrams
Dynamic models
Spreadsheets
"Executable" specification languages
xUnit test frameworks
Using models to generate program code & test cases

Test-Driven Requirements
Overview of Agile Techniques & test-driven development
Requirements vs. Use cases
Test-driven requirements approach
Test case design techniques & requirments analysis
Test-driven requirements & automated testing

Requirements Management
Product life cycle re-visited
Why "freezing the specification" doesn't work
Baseline requirements
Requirements managment
Controlling changes to requirements
Regression testing


Requirements-Based Testing


This course clarifies the relationship between requirements and testing and highlights the link between changing requirements and regression testing. Traditionally, software testing takes place towards the end of the SDLC. Often the first time the testers see the requirements specification is just before they develop a system test plan. This course makes a case for involving testers during the requirements of the SDLC.

Suitable for anyone involved in software testing in any capacity, or indeed anyone involved in systems analysis & design.

Outcomes include:

  • understanding the techniques for documenting software requirements with an emphasis on use cases
  • understanding of the concepts and objectives of requirements validation, product validation, requirements verification, and test-driven requiremements
  • understanding of requirements validation techniques and how testers can contribute to requirements validation
  • ability to identify verification test cases from use cases and other requirements
  • ability to apply risk-based and model-based testing to verification and validation.

Prerequisites:


Familiarity with software design and development.  This course is ideal for Testers, Developers, Business Analysts, Systems Analysts, Software Architects and Designers.   It is also suitable for Methodologists, Quality Assurance and Process Improvement staff.