Home  >  Fundamentals of Unit Testing

Fundamentals of Unit Testing

Fundamentals of Unit Testing
Duration
2 days
Course Cost: $1,895.00
Overview

This foundation course provides the attendee with an excellent introduction to software testing practices with a specific focus on unit testing techniques for code. Unit testing is the most mysterious of testing as it is closest to the development process itself. Usually, unit testing is an iterative and repetitious task focused on achieving a clean compile and execution without failure. In the real world, this is insufficient and ineffective because even clean compiling code can entirely miss meeting specifications and technical design.

The course provides a broader context for unit testing by presenting testing basics including definitions and methodologies, techniques for testing including black and white box, and explores various techniques such as equivalence partitioning, boundary analysis, and forced error handling. One of the essential goals of this course is to show developers better ways to try to force their code to fail, and thus increase the quality of their testing activities.

Additionally, this course presents a method for conducting structured walkthroughs and technical inspections. These techniques are highly effective in the early detection of software defects, and in many cases, are far more effective than actually executing the code.

This course uses pseudo-code (English-like statements) to illustrate concepts and does not focus on one programming language or technical environment.
Objective

  • An overview of the software testing life cycle including the V-model
  • A detailed review of testing techniques including static and dynamic testing approaches including white and black box techniques.
  • A practical guideline to structured walkthroughs and technical inspections.
  • Hands-on workshop in conducting a technical inspection
  • Hands-on workshop constructing test cases including coverage analysis, equivalence partitioning, boundary analysis, forced error handling, and worst case analysis.


  • This practical, hands-on course will provide an excellent overview of testing techniques while focusing specifically on the needs of developers and unit testers.
    Topics

    • 1. Welcome and Overview

    • Instructor and Student Introduction
    • Course Overview and Agenda

    • 2. The Software Testing Life Cycle

    • The Software Testing Life Cycle
    • The V-Model of Testing
    • The Project Life Cycle
    • Project Planning and Project Definition
    • Business Requirements
    • Alternatives
    • Business Solution Design
    • Technical Design
    • Construction
    • Quality Assurance and Testing
    • User Acceptance Test
    • Implementation
    • Post-Production Support
    • Project Closing
    • Summary of Testing Activities

    • 3. Case Study Overview – Lost Horizons Software Corporation

    • Lost Horizon Case Study Overview
    • Overview of Lost Horizons
    • The TripFinder Product

    • 4. Fundamental Testing Concepts and Techniques – Part I

    • The Objectives of Testing
    • The Nature of Testing
    • The Danger of Developer Reliance
    • The ‘Inside-Outside’ Nature of Testing
    • Static Analysis Techniques
    • Dynamic Analysis Techniques
    • Black Box Testing
    • White Box Testing
    • White Box Testing - Coverage
    • White Box Testing - Instruction Coverage
    • White Box Testing - Branch Coverage Testing
    • White Box - Overall Coverage
    • White Box - Multiple Condition Coverage
    • White versus Black Box Testing

    • 5. Fundamental Testing Concepts and Techniques - Part II

    • Developing Black Box Test Cases
    • Specification Analysis
    • Specification Analysis Documents
    • Design Element Verification
    • Policy and Procedure Verification
    • Standards Analysis
    • Equivalence Partitioning
    • Rules for Equivalence Partitioning
    • Common Equivalence Partitioning Groups
    • Example of Equivalence Partitioning
    • Boundary Analysis
    • Boundary Analysis Guidelines
    • Forced Error Handling
    • Worst Case Analysis

    • 6. Technical Inspections and Structured Walkthroughs

    • Structured Walkthroughs
    • Roles and Responsibilities
    • Goals of Walkthroughs
    • Structured Walkthrough Rules
    • Types of Structured Walkthroughs
    • Business Requirements Walkthrough
    • Business Solution Design Walkthrough
    • Technical Design Walkthrough
    • Program or Code Walkthrough
    • Test Case Walkthrough
    • Walkthrough Reports
    • Implementing Technical Walkthroughs

    • 7. Case Study Workshop: Technical Inspection of TripFinder Pseudocode

    • TripFinder Walkthrough
    • Instructor Review and Group Discussion

    • 8. Case Study Workshop: Developing Test Cases using Black Box Techniques

    • Exercise Instructions
    • Developing Strategies and Test Cases
    • Instructor Review and Group Discussion

    • 9. Unit Testing Checklist and Testing Metrics

    • Common Unit Test Problems
    • Strategies for Detection
    • Common Testing Metrics

    • 10. Course Wrap-Up

    • Course Summary
    • Review of Outstanding Questions/Action Items
    • Student Course Survey

    • 11. Appendix A: Review of Automated Testing Tools

    • Automated Testing Tools
    • Benefits of Automated Tools
    • Types of Automated Tools
    • Coverage Analyzers
    • Interactive Testing Facilities
    • Capture/Playback Tools
    • Test Data Generators

    • 12. Appendix B: Testing Definitions
    • Test Definitions
    • Unit Test
    • Integration Test
    • System Test
    • Client Acceptance Test
    • Performance Test
    • Fail-Over Test
    • Security Test
    • Production Readiness Test
    Audience
    Whether you are a developer, programmer, business analyst, programmer/analyst, test engineer, quality assurance analyst, software tester, or any member of the QA staff responsible for gathering, analyzing, documenting, confirming, and maintaining testing activities, this course is for you.
    Register
    Courses 4 IT