Course Category: Software Testing
Course Duration: 2 Days
Hours: 14 Contact Hours
Course Overview
Traditionally, software testing takes place towards the end of the software development life cycle. Often the first time that testers see the requirements specification is just before they develop a system test plan.
This is a pity because developing a system test plan requires a thorough analysis of the requirements specification that frequently reveals many inconsistencies and incorrect assumptions. Which means that the late involvement of testers is a missed opportunity to improve the requirements specification prior to development.
This course makes a case for involving testers during the requirements stage of the software development life cycle.
The course commences with a discussion of techniques for documenting software requirements and then moves on to explain the role of verification and validation.
Participants will develop their understanding and skills in the areas of designing verification test cases, risk-based testing, model-based testing and test-driven requirements.
Course Features
- Clarifies the relationship between requirements and testing and highlights the link between changing requirements and regression testing.
- Suitable for graduates, analysts, developers and others moving into a tester role for the first time; as well as experienced testers who need to update their skills, attend a “refresher” or simply get some new ideas.
Who should Attend
- Test Managers, Test Engineers, Testers, Quality Assurance Staff
- Business Analysts, Business Systems Analysts, Systems Analysts, Functional Analysts
- Software Development Managers, Software Engineers, Developers, Requirements Engineers, Requirements Analysts
- Process Engineers, Software Engineering Process Group (SEPG) Staff, Methodologists, Process Improvement Staff
Participant Benefits
- Understanding of 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 requirements.
- 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; and apply risk-based and model-based testing to verification and validation.
Course Outline
Introduction
- The software development life cycle (SDLC)
- Waterfall life cycle
- Rational unified process (RUP) life cycle
- Agile methods
- Agile life cycle
- The triangular life cycle model
- The product life cycle
- Views of quality
- Gaps between the views of quality
- Closing the gaps
- Requirements concepts
- Business needs
- Application features
- Software requirements
- Testing concepts
- Cause of software failures
- People
- Environment
- Understanding the limitations of software testing
- Concepts of verification and validation
- Identifying test objectives and expected outcomes
- Testing and independence
- Cause of software failures
- SDLC roles and responsibilities
Documenting Software Requirements
- Software requirements
- Interface requirements
- Functional requirements
- Non-functional requirements
- 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 and 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 and weaknesses
- Objectives
- Logistics
- Participants
- Workshops activities
- Planning
- Prototypes
- Strengths and weaknesses
- Candidates for prototyping
- User interface
- Business rules
- Modelling
- Strengths and weaknesses
- Modelling languages
- What is the UML?
- The UML meta-model
- The role of a UML repository
- UML diagrams
- Comparing UML models with natural language
- Requirements review
- Strengths and weaknesses
- Error seeding
- Requirements reviews and the system test plan
- Adding error scenarios to use cases
- Product validation
- Options for acceptance testing
- End-to-end testing
- Operational testing
- Post implementation reviews
Verification
- Verification concepts
- Verification and testing
- Use case vs. test cases
- The importance of test case coverage
- Test case coverage of requirements
- Verifying functional requirements
- Identifying verification test cases from use case
- Test case coverage matrix
- Adding error scenarios to use cases
- The concept of a test oracle
- Verifying non-functional requirements
- ISO 9126 quality characteristics
- Constraints
- Special consideration for verifying non-functional requirements
- Benefits of early test planning
- Verification and reviews
- IEEE 1028-1997 standard for software reviews
- Types of review
- Code reviews
- Design reviews
- Architecture review
- Relationship of reviews to test plans
- Reviews and test case design techniques
Participant Benefits
Risk Based Testing
- Risk based testing strategy
- Failure mode effect and 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 and test cases
Test Driven Requirements
- An overview of agile techniques and test driven development
- Requirements vs. test cases
- The test driven requirements approach
- Applying test case design techniques to requirements analysis
- Test driven requirements and automated testing
Requirements Management
- The product life cycle revisited
- Why freezing the specification does not work
-
Baselining requirements
-
Requirements management
-
Controlling changes to requirements
-
Regression testing
Course Category: Software Testing
Course Duration: 2 Days
Hours: 14 Contact Hours