Test Case Design Techniques: Techniques for Black-Box and Glass-Box 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