Test Case Design Techniques
Designing Effective Tests for Manual, Automated and Exploratory Testing
This two-day course teaches participants a number of advanced testing techniques. The course commences with a brief discussion of black-box and glass-box test models followed by a discussion of practical test coverage criteria for both models.
The course then moves on to an in-depth discussion of various black-box testing techniques. This is followed by a demonstration of how the techniques can be applied to both the conventional and “model-based” approaches to testing.
The second-half of the course covers glass-box testing techniques and shows how these may be applied to both conventional testing and the static analysis of program code.
The course concludes with a brief discussion of how the techniques learnt during the course can be used with automated test tools.
Course Features
- Compatible with the BCS Draft Standard for Software Component Testing (BS 7925-2)
- Arms participants with a tool box of test case design techniques
- Integrates disparate test case design techniques into an integrated approach
- Relevant to IT and embedded systems software
Participant Benefits
- Understanding of different test models and their related test coverage criteria
- Ability to apply black-box and glass-box test case design techniques to conventional testing, model-based testing and static analysis of program code
- Practical experience in applying the techniques to comprehensive exercise examples
Who Should Attend
- Process Engineers, Software Engineering Process Group (SEPG) Staff, Methodologists, Process Improvement Staff
- Software Development Managers, Software Engineers, Developers, Requirements Engineers, Requirements Analysts
- Test Managers, Test Engineers, Testers, Quality Assurance Staff
Course Duration
2 days full-time.
Course Agenda
Introduction
- Some definitions
- Testing concepts
- The functional or black-box view
- The structural or glass-box view
- The “ translucent-box ” or grey-box view
- Mapping project roles to software views
- The test-driven development (TDD) approach
- Test models
- Black-box test models
- Glass-box test models
- Test case coverage
- Black-box coverage goals
- Glass-box coverage goals
Black-Box Testing and Test-Driven Development (TDD) Test Case Design Techniques
- Requirements verification
- Equivalence partitioning
- Identifying partitions of equivalent values
- Selecting partition test cases
- Equivalence partition coverage criteria
- Test oracles
- Who “tests” the test cases?
- Automated test oracle
- Boundary value analysis
- Testing on the boundary between partitions
- Selecting boundary test cases
- Risks and coverage criteria
- Syntax testing
- A notation for modelling the syntax of inputs and outputs
- Selecting test cases
- Testing for invalid syntax
- Decision Tables
- State transition testing
- State transition diagrams
- State tables
- Testing single transitions
- Testing sequences of transitions
- Constructing a state tree
- Selecting test cases
- State transition coverage criteria
Model-Based Testing
- Goals of model-based testing
- Generating test cases from models
- Partitions and boundaries
- States and transitions
- Syntax
- Using model-based testing when there is no specification or it is out of date
- Applying models-based testing to random and reliability testing
Glass-Box Test Case Design Techniques
- Statement testing
- Rules for counting statements
- Statement coverage
- Control flow graphs
- Modelling control flow with “ nodes ” and “ edges ”
- Control flow and cyclomatic complexity
- Branch/decision testing
- Branches vs. decisions
- Selecting test cases
- Condition testing
- Branches vs. conditions
- Branch condition testing
- Branch condition combination testing
- Modified condition decision testing
- Path Testing
- Linear Code Sequence and Jump (LCSAJ) testing
- Basis path testing
- Data flow testing
- Coverage and Infeasible Paths
- Comparing Glass-Box Test Case Design Techniques
Static Analysis of Program Source Code
- Applying glass-box test case design techniques to static analysis
- Static analysis of program data flow
- Static analysis of program paths
- Automated static analysis tools
Regression Testing
- Performing an Impact Analysis
- Identifying the Regression Test Cases
Test Cases and Automated Testing
- Automating unit testing
- Applying glass-box and black-box test cases to unit testing
- Test cases and unit test frameworks
- Glass-box testing and coverage tools
- Automating system testing
- Applying black-box test cases to system testing
- Test cases and capture/replay tools
- GUI tools
- Web tools
- System and acceptance test frameworks