Specification-Based Testing Workshop
2 days
This is a workshop designed for people who want to learn how to evaluate project deliverables (user requirements, design documents, use cases, etc.), design tests based on those deliverables, then perform the tests to verify features as described by the deliverables. This is not a course that covers the team-based review process, however we do address the team roles in defining and testing requirements.
This course will help you as an individual tester or systems analyst become more comfortable and confident in designing tests based on specifications, as well as finding defects in the specification before designing and performing tests.
You can apply these techniques at just about any level of detail: unit test, integration test, system test, and user acceptance testing. You will emerge from this course knowing how to develop test cases and test scenarios that not only verify a specification has been implemented correctly, but establishes traceability between project deliverables and test documentation.
Return on Investment
- Learn how to find costly and embarrassing problems before your customers find them.
- Understand the key issues in testing software applications.
- Learn how to design tests that adequately cover requirements, models and other project documentation.
- Understand the importance of bi-directional traceability.
- Advance your career by reinforcing your testing expertise.
Who Will Benefit
- Test analysts
- Testers
- Test managers
- Developers
- Users involved in test design
Topics
Developing Quality Requirements (1 hr.)
To truly understand specification-based testing, we must first understand what constitutes a testable specification. This module provides understanding of requirements and how they can written to be complete, correct and testable.
- The Importance of Requirements
- Quality Measures for Requirements
- Testable Requirements
- Identifying Needs
- Ambiguity in Requirements
- The Importance of Inflection
- The Importance of Word Meanings
- Word Games
- The Right People – Who Do We Involve?
- The Role of Testers in Requirements Definition
- The Role of Testers in Requirements Definition
- Brainstorming
- Prototyping
- Dealing with Change
- How to Control Change
- Requirements Reviews
- Prioritizing Requirements (N)
- Special Considerations For Existing Software Requirements
- Exercise: Role Playing the Requirements Process
Understanding Model-based Deliverables (1 hr.)
While requirements are text-based, models are visual. In this module we examine the nature of models and how they can enhance and extend the understanding of requirements.
- The Role Of Models
- The Benefits Of Models
- Examples
- State-transition models
- Use case models
- Process models
- What Models Tell Us
- What Models Don’t Tell Us
- Testability of Models
Specification-Based Testing (5 hrs.)
In this extensive module, we cover four major techniques used to define test conditions and ultimately test cases and test scenarios.
- Identifying Test Conditions And Designing Test Cases
- The Importance of Bi-directional Traceability
- Categories Of Test Design Techniques
- Specification-Based Techniques
- Equivalence Partitioning
- Boundary Value Analysis
- Exercise for EP and BVA
- Requirements-based Testing
- Decision Table Testing
- Exercise for Requirements-based Testing and Decision Table Testing
- Choosing Test Techniques for the Project at Hand
- Exercise for Choosing Techniques
Applying Specification-Based Testing Through a Project (2 hrs.)
In this module, we examine how a specification evolves throughout the SDLC and serves as a basis for test planning and design at each point in the project.
- Understanding The “V” Diagram
- Defining Verification and Validation
- Applying Specification-based Testing for:
- Unit testing
- Integration testing
- System Testing
- UAT
- Exercise
Configuration Management for Specification-Based Testing (1 hr.)
Change is going to happen during projects. These changes ripple through all project deliverables, including test documentation. This module answers the question, “How can we deal with change in ways that facilitate control and ensure correct testing of specifications?”
- Techniques for Dealing with Change in Specification-based Tests
- Confirmation Testing
- Regression Testing
- Bi-directional Traceability and How it Enables Specification-Based Tests
- How These Techniques Work Together to Support Specification-Based Tests
- Designing Tests to be Resilient to Change
- Keeping Track of it All – Configuration Management
- The Scope of CM – Specifications, Testware and more
- How CM Helps Control Deliverables and Associated Tests
- Exercise
Prioritizing Specification-based Tests (1 hr.)
Requirements must be prioritized and so should the associated tests. This module covers a variety of ways that specification-based tests can be prioritized. Not all techniques are applicable in all situations and this module provides guidance on when some techniques yield better results than others.
- By Risk
- Risk Identification, Assessment And Mitigation
- Specification Level
- Product Level
- Project Level
- Risk Identification, Assessment And Mitigation
- Stakeholder Priorities
- Stated Priorities
- When Priorities Change
- Project Priorities
- Project Dependencies
- Dealing with Project Blockages
- Exercise
Test Case Optimization (1 hr.)
A key tenet of specification-based testing is the ability to combine conditions in efficient ways to get the most test coverage from the most efficient set of test cases. In this module, we cover both manual and tool-based methods to get the most value from specification-based tests.
- Pairwise Techniques and Tools
- Cause-effect Graphing
- Exercise
Manual Test Execution, Measurement and Reporting (1 hr.)
Now that we have designed, documented and optimized the specification-based tests, we are ready to perform them. This module is mainly oriented to what can be learned, measured and reported from the tests. Also covered is how to make adjustments as needed during testing to achieve desired levels of test coverage.
- How to Perform Specification-based Tests
- What Can We Learn From The Tests?
- Errors, Omissions and Ambiguities in the Specifications
- What Can We Learn From The Tests?
- How to Measure Coverage in Specification-based Tests
- Requirements coverage
- Scenario coverage
- State-transition coverage
- Decision table coverage
- How to Adjust Test Coverage of Specifications During Testing
- Reporting Specification-Based Test Results
- Incident Reporting – Associating Observed Incidents to Defined Specifications
- Status Reporting - Associating Test Progress to Defined Specifications
- Final Reporting – Associating Final Test Evaluation to Defined Specifications
- The Role of Dashboards in Reporting Test Coverage and Results
Tool Support For Specification-Based Testing (.5 hr.)
There are some great tools to support specification-based testing. This module covers the nature of these tools and how they can add leverage to your test design and evaluation.
- Tools for Requirements Analysis (Ambiguity scanning)
- Tools for Test Management and Requirements Management/Traceability
- Tools for Test Specification
- Pairwise testing
- Model-based testing