Software Testing - Advanced      

Code:

IS130-006

Series:

Information Management

Duration:

2 days

Test Models
Some definitions
Testing concepts
- Functional or black-box view  
- Structural or glass-box view
- “Translucent-box” or grey-box view
- Mapping project roles to software views
- Test-first approach
Test models
- Black-box test models
- Glass-box test models
Test case coverage
- Black-box coverage goals
- Glass-box coverage goals

Black-Box & Test-first 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 & Boundaries
- States & Transitions
- Syntax
Using Model-Based Testing without Specifications
Apply Model-base Testing to Random & Reliability Testing

Glass-Box Testing Techniques
Statement Testing
- Rules for counting statements
- Statement Coverage
Control Flow Graphs
- Modelling with "Nodes" & "Edges"
- 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 & Jump (LCSAJ) testing
- Basis path testing
- Data Flow Testing
- Coverage & Infeasible paths
Comparing Glass-box Test Case Design Techniques

Static Analysis of Program Code
Applying Glass-Box techniques to Static Analysis
Static Analysis of Program Data Flow
Static Analysis of Program Paths
Automatic Static Analysis Tools

Regression Testing
Performing an impact analysis
Identifying the Regression test cases

Test Cases & Automated Testing
Automating Unit Testing
- Glass-box & Black-box Test Cases & Unit Testing
- Test Cases & Unit Test Frameworks
- Glass-box Testing & Coverage Tools
Automating System Testing
- Black-box Test Cases & System Testing
- Test Cases & Capture / Replay Tools
- GUI Tools
- Web Tools
- System & Acceptance Test Frameworks


Software Testing - Advanced

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.

After completing this course, students will be able to:

  • understand and explain different test models and their related test coverage criteria
  • apply black-box and glass-box test case design techniques to conventional testing, model-based testing and static analysis of program code
  • apply techniques to comprehensive exercise examples

Prerequisites:


For experienced software developers and software testers.