Course 306:
Effective Software Testing Methods

Testing Against Time: Effective and Efficient Defect Detection in Software

(4 days)

 

Course Description

When defects are discovered in a system in production by the user or customer, the blame is often placed on the testers. Testing has always been considered the last line of defense against defective software. New approaches to testing apply validation and verification methods throughout the entire Software Development Life Cycle (SDLC).

This course presents current industry best practices in application testing, inspection, verification, validation, and test automation. We will also discuss defect tracking and removal that reduce the risk of delivering software with defects. Using workshops that involve actual case studies from your organization, participants learn the current methods and strategies that can be applied to assure high quality in delivered software.

Learning Objectives

At the end of this course, the participant will know how to:

  • Manage objectives, costs, and benefits to improve testing and inspection
  • Write test plans, cases, logs, and reports
  • Determine the most effective testing and inspection strategy for projects of varying complexity and size
  • Assess the variety of testing methods that may be applied to improve defect discovery rates
  • Implement advanced unit- and integration-testing techniques
  • Execute and manage system, acceptance, and regression testing

Who Should Attend

Participants attending this course include test professionals, test managers, project leaders, quality analysts, and developers.

Prerequisites

No specific prerequisites are assumed. A familiarity with software development concepts is recommended.


Course Outline

Unit 1: Software Testing

  • Testing Concepts
    • Why Do We Test?
    • The Objectives of Testing
    • Testing Approaches
    • The Goal of Testing
  • Role of Quality in the Life Cycle
    • Testing in the System Development Life Cycle (SDLC)
    • What Is Quality?
    • Why Don’t We Get Good Quality in our Delivered Systems?
    • Solving the Problem Statement
  • Testing Process
    • Inspections
    • Test Stages
  • Testing Planning and Automation
    • Automated Testing Tools

Unit 2: Test Planning

  • Test Planning Issues
    • Five Dimensions of Test Planning
    • What Constitutes Test Planning?
    • Test Estimation Factors
  • Test Program Direction
    • QA Policy
    • Test Policy
    • Overview of Testing Policy
    • What Is Planned?
  • Testing and Risk
    • Risk Reduction Through Testing
    • Measuring Success of Testing
  • Unit Summary and Best Practices

Unit 3: Creating Test Cases

  • What Is a Test Case?
    • Definition
    • Test Case Format
    • Executing a Test Case
  • How Do We Create a Test Case/Scenario?
    • Requirements
    • State Diagrams
    • Use Cases
    • Scenarios
  • Workshop: Writing a Test Plan from Requirements
  • Equivalence Classes
    • Equivalence Class Principles
    • Boundary Analysis
    • Equivalence Class Best Practices
  • Organizing Test Cases
    • Test Case Organization
    • Test Case Optimization
    • Decision Tables
  • Reporting on Tests
    • Audiences
    • Defect Report
  • Unit Summary and Test Case Best Practices

Unit 4: Test Methods

  • General Approach to Testing
  • Classic Testing Methods
    • Script-Driven Testing
    • Cause-Effect Testing
  • Alternate Test Execution Approaches
    • Exploratory Testing
  • Scenario Testing in Agile Development
    • Test-Driven Development
    • Extreme Programming (XP)
    • Behavior-Driven Development
  • Unit Summary

Unit 5: Inspections

  • Benefits of Inspection
    • What Is an Inspection?
    • Benefits of Early Inspection
    • Inspection Costs
  • Inspection Process
    • Process Overview
    • Choosing Reviewers
    • Planning the Inspection
    • Inspection Steps
  • Inspection Criteria
    • Software Requirements Checklist
    • Design Checklist
    • Coding Checklist
    • Test Case Checklist
    • Test Procedures Checklist
    • Test Plan Checklist
  • Workshop: Inspecting our Work

Unit 6: Unit Testing

  • Unit Testing Planning and Preparation
    • Goals of Unit Testing
    • Pragmatics of Unit Testing
    • Approach to Unit Testing
    • The Unit Test Plan
    • How Unit Testing Is Done
    • The Test Harness
  • White Box Testing
    • White Box Testing Methods
    • What Is Done in White Box Testing?
    • Complexity and Measurement
  • Black Box Testing
    • When To Do Black Box Testing
    • Risk-Based Testing
    • Unit Testing in Object-Oriented Development
  • Automated Unit Testing
    • Path Testing
    • Object-Oriented Testing Tools
  • Unit Summary
  • Unit Testing Best Practices

Unit 7: Integration Testing

  • Integration Test Planning and Preparation
    • Goals of Integration
    • Definition of Integration
    • Integration Test Plan
    • Planning the Integration Test Process
  • The Order of Integration
    • General Principles
    • Alternate Orders of Integration
    • What Else Is Integrated?
  • Builds
    • Smoke Test
    • Types of Builds
  • The Testbed Database
    • Creating a Testbed Database
    • Maintaining the Testbed Database
    • Tips for an Efficient Applicable Testbed
  • Automating Integration Tests
    • Automated Builds
    • Daily Build and Smoke Test
  • Workshop: Creating Integration Test Procedures

Unit 8: System Testing

  • System Testing Planning and Preparation
    • Goals of System Testing
    • Repeatable System Tests
    • System Test Plans
  • System Testing Scenarios
    • Scripted System Test Scenario Design
    • Example System Test Scenario
  • Risk-Based Testing
    • Test Scheduling
    • Risk-Driven Strategy for System Test Phase
    • Test Selection Criteria
  • Non-Functional Testing
    • System Test Taxonomy
    • Test Scenario Types
    • External Interface Testing
    • Performance Testing
    • Usability Testing
  • Automating System Tests
    • Performance Measurements
    • Automated Scenario Testing
    • GUI Testing Tools
  • Alpha and Beta Testing
    • Alpha Testing
    • Beta Testing
  • Workshop: System Test Scenarios

Unit 9: Acceptance Test

  • Acceptance Test Planning and Preparation
    • Goals of Acceptance Testing
    • Scope of Acceptance Testing
    • Acceptance Test Plans
    • Structured, Unscripted Acceptance Tests
    • Scripted Acceptance Tests
    • Statement of Acceptance
  • Executing Acceptance Tests
    • Acceptance Test Issues
    • Release
  • Alternate Methods
    • Parallel Running
    • Going Live: Uncontrolled, Unscripted
  • Automating Acceptance Tests
  • Workshop: Creating the Acceptance Test Scenario
  • Unit Summary and Acceptance Test Best Practices

Unit 10: Maintenance and Regression Testing

  • Maintenance Test Concepts
    • Types of Software Maintenance
    • Determining Correct Behavior
    • The Regression Test Suite
  • Testing in Corrective Maintenance
    • Corrective Maintenance
    • Release Cycles
  • Testing in Perfective Maintenance
    • Perfective Maintenance Test Strategy
  • Testing in Adaptive Maintenance
    • Adaptive Maintenance
    • Approach to Adaptive Maintenance Testing
  • Regression Test Suites
    • Identifying Regression Test Suites
    • Test Reusability
  • Automated Regression Testing
    • GUI Regression Tools
  • Workshop: Impact on System Requirements

Unit 11: Test Management

  • Test Management Issues
    • Software Testing Model
    • The Test Environment
  • Test Plans and Documentation
    • Sources of Test Plans
    • Typical Test Documentation
  • Test Automation
    • Real Cost of Test Automation
    • Automated Test Guidelines
    • Automated Test Suites

Unit 12: The Bottom Line

  • Where to Go for More Information
  • Practical Ideas in Software Testing

Please Contact Your ROI Representative to Discuss Course Tailoring!