Developer Testing Boot Camp

Developer Testing Boot Camp

We offer private training, at your location or virtually, and an OnDemand course catalog.

About Developer Testing Boot Camp

Duration: 2 day course
Resources: Workbook, Online Companion Course

Developer testing is a critical component of software development — yet studies show that developer testing is typically inefficient and ineffective. Significant developer effort is spent without finding defects that should have been found.

Learn how to be more efficient and effective by achieving higher test coverage and how to make the software itself more testable. See how to plan and carry out an efficient and effective developer testing strategy. Avoid common testing pitfalls, and learn to determine how much developer testing is enough.

 

Core Concepts

  • Levels of testing maturity
  • Economics of testing
  • Risk-based testing: how much testing is enough?
  • Test case, test set, test suite
  • Positive and negative test cases
  • Functional (“black box”) vs. structural (“white box”) testing
  • Test coverage
  • Unit, integration, system, acceptance, regression testing
  • How testing relates to various development lifecycles

Acceptance Test Driven Development (ATDD)

  • Test Driven Development (TDD) process
  • Example of ATDD
  • Advantages and limitations of ATDD
  • Behavior Driven Development (BDD)

Functional (“Black Box”) Testing

  • Limitations of functional testing
  • Requirements testing and requirements coverage
  • Input domain (equivalence class partitioning) coverage
  • Boundary value coverage
  • Output domain coverage
  • Testability tips: input domain and boundary value coverage
  • Combinatorial testing (e.g., all-pairs coverage)
  • Use case coverage
  • ATDD in light of functional testing

Structural (“White Box”) Testing

  • Limitations of structural testing
  • Control-flow testing
  • Control-flow graphs
  • Statement coverage
  • Decision (branch) coverage
  • Condition/decision coverage
  • Modified condition/decision coverage (MC/DC)
  • Multiple condition coverage
  • Path coverage
  • Comparing control-flow coverage criteria
  • Testability tips: control-flow
  • Data-flow testing
  • Data-flow graphs
  • Static analysis of data-flow graphs
  • All definitions (reach) coverage
  • All uses coverage
  • All DU paths coverage
  • Testability tips: data-flow
  • Compare and contrast control-flow vs. data-flow testing

Testing Object-Oriented Software

  • A new level for testing
  • Dealing with encapsulation
  • Test-specific subclass
  • Mock objects, when to mock and when not to
  • Dependency injection

Unit Test Driven Development (UTDD)

  • Test Driven Development (TDD) process
  • Example of UTDD
  • Unit test automation frameworks
  • UTDD with functional and structural coverage
  • Transitioning to TDD

Test Automation

  • Benefits of test automation
  • Pitfalls of test automation
  • Kinds of test automation

You will be able to develop optimal test cases—both functional (black box) and structural (white box).

This course is intended primarily for software engineers. Software leads, QA leads, and test professionals who want to learn testing from the developer’s perspective are also encouraged to attend.