Course Description
This 2-day Requirements-Based Software Testing training 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.
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.
Pre-requisites
Attendance at our Software Testing Introduction training course or equivalent experience.
Who is this Course for ?
This course is Ssitable for anyone involved in software testing in any capacity, or indeed anyone involved in systems analysis & design. It 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.
Further Training
After some further on-the-job experience in a software testing environment, we recommend students attend our Software Testing Advanced training course to gain a deeper insight into software testing philosophies and techniques.
Course content
Introduction
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
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
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 & 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
Failure mode effect & analysis (FMEA)
Fast-track approaches to risk analysis
Model-based Testing
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
Requirements vs. Use cases
Test-driven requirements approach
Test case design techniques & requirments analysis
Test-driven requirements & automated testing
equirements Management
Why “freezing the specification” doesn’t work
Baseline requirements
Requirements managment
Controlling changes to requirements
Regression testing