2 Days   

This course is designed for testers and software developers who want to learn how to test distributed software at the unit and system levels.

The course covers both functional and structural testing, with numerous examples and templates. The processes and techniques taught in the course are reinforced with examples and exercises based on distributed software development processes, tools and languages.

You will learn the terminology, process, and challenges of testing in the real world.

As a result of attending this seminar, you should have a good working knowledge of unit testing and what it takes to design and conduct an effective unit test of distributed software, such as that developed in Microsoft Visual Studio using languages such as Visual Basic, Java, C# and Visual C++.

Who Should Attend

  • Software developers
  • QA and Test Managers
  • Test analysts
  • Testers

Return on Investment

  • Learn how to find software defects early in the development lifecycle before they become more costly and risky to fix.
  • Understand how to design a unit and system test.
  • Learn which tools can help you perform testing more effectively.
  • Get developers involved in testing.
  • Advance your career by reinforcing your testing expertise.

Program Information

This course is presented on an in-house basis only unless offered as a special public course. Contact us for information about how to bring this course into your organization.


Module 1 - Introduction to Unit Testing

  • What is Testing?
  • The Economics of Testing - The 1:10:100 Rule
  • When Should Testing be Performed?
  • Testing and Risk
  • Key Testing Concepts

Module 2 - Testing Prerequisites and Terminology

  • Test Phases - Unit, Integration, System and User Acceptance Testing
  • The Workbench Model
  • Defects
  • Requirements
  • Verification and Validation
  • Functional (Black box) testing
  • Structural (White box) testing
  • Independent Testing
  • Developer Testing
  • What Unit Testing Should Cover
  • What Unit Testing Should Include
  • Unit Test Approach
  • Unit Test Techniques
  • Unit Testing Responsibilities
  • GUI Challenges and Considerations
  • Web Considerations and Challenges
  • Object-oriented Challenges and Considerations

Module 3 - Unit Testing Process for Distributed Applications

  • Step 1 - Planning
    • Functional tests
    • Structural tests
  • Step 2 - Define Tests 
    • Structural (White box) tests
      • Structural test coverage measures - statement, branch, condition, multi-condition and path
    • Functional tests
      • Boundary Value Tests
      • Equivalence classes
      • Decision tables
      • Requirement-based cases
      • Error forcing
    • Environmental test
      • Configuration
      • Compatibility
      • Integration
      • Interoperability
    • Behavioral tests  
      • Usability
      • Reliability
      • Security
    • Test scripts
  • Step 3 - Create and Maintain Test Data
  • Step 4 - Execute Tests
    • Drivers and stubs
    • Functional tests  
    • Regression testing
    • Structural tests
  • Step 5 - Check Results
    • Compare actual to expected results
    • Report defects
  • Step 6 - Evaluate Results
    • Summarize
    • Evaluate
    • Recommend

Module 4 - System Testing for Distributed Applications

  • What is System Testing?
  • System Test Planning
  • Identifying System Test Objectives
  • Identifying System Functions to Test
  • Identifying Critical Requirements
  • Identifying System Interfaces
  • Writing System Test Scripts
  • Writing System Test Cases
  • Profiling for Performance Testing
  • Building the System Test Matrix
  • Identifying System Test Schedules and Resources
  • Finalizing the System Test Plan
  • A Representative System Test Plan Outline
  • Manual System Test Methods
  • Defect Reporting
  • The Role of the Defect Administrator
  • Evaluating the System Test

Module 5 - Regression Testing

  • What is Regression Testing?
  • Example: No Regression Testing vs. Regression Testing
  • The Regression Testing Process
  • What's Needed?
  • Regression Testing Issues
  • How Much Regression Testing is Enough?
  • Tips for Performing Regression Testing

Module 6 - Unit and System Test Tools for Distributed Software

  • What is a Test Tool?
  • The Risks of Not Automating Testing
  • The Risks of Automating Testing
  • Where Do Tools Fit In?
  • The Major Issues
  • The Top 10 Test Tools
  • Interactive Test/Debug
  • Structural Test
  • Capture/Playback
  • Memory Test
  • Stress and Load Testing
  • Defect Tracking
  • Test Data Generators
  • Test Management
  • Coverage Analyzers
  • Checklists
  • Critical Success Factors

Module 7 - Building and Using the Distributed Test Environment

  • Considerations in Building Distributed Test Environments
  • How to Configure an Isolated Test Environment
  • Security Issues
  • How to Create and Maintain Test Data
  • Configuration/Release Management
  • What is Version Control?
  • The Process for Configuration/Release Management

Module 8 - Test Management and Summary

  • Test Management Considerations
  • Maintenance Considerations
  • Test Measurement
  • Key Seminar Points


  • Checklists and Templates
  • Glossary


  • Course notebook with slides, worksheets, checklists, complete examples and supporting text
  • You will have the basic information needed to plan and execute a unit and system test.