|
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 |