Software Functional Testing Course
 

Home
Up
Consulting Services
Events & Activities
Library & Information
CSQE Quizzes
About Our Team
How to Contact Us

Software Functional Testing is a 2-day course that is a subset of our Software Testing course and is designed to provide an excellent knowledge base and practical skills for anyone interested in improving Software Functional Testing techniques and practices in their organization. This course starts with an overview of software testing basics, including discussions of the importance of software testing, the different levels of testing and basic testing principles.  Basic testing terminology is defined.  Techniques for ensure test coverage of requirements, different types of testing documentation and various test activities are discussed.

Course attendees will explore various techniques for performing functional testing of individual functions, user scenarios and of the operational profile.  This course will also explore various issues involved in testing the software’s nonfunctional requirements.  This course also teaches the basics of software regression test analysis.

Method of Instruction: This course is taught through lecture and interactive discussion.  Actual examples from the software industry are utilized to make the information relevant.  Throughout this course, learned skills are practiced using team exercises.  The emphasis of this course is on techniques that allow the attendees to transition the skills learned in this course to their own work environments.  

Target Audience: Software testers, quality engineering, developer, project managers, functional managers and other software project stakeholders involved in functional test design, and execution, and who are interested in improving software functional testing practices in their organization.

Course Objectives: Upon successful completion of this course attendees will be able to:

  • Understand the basic concepts of software testing

  • Perform effective and efficient functional testing of software

  • Select the appropriate tests to regression test your software after changes have been made

Course Materials: Student notebooks are designed to provide reference materials that can be utilized by the attendees long after the completion of the course.  These materials include:

  •  Copies of all presentation materials with annotated descriptive notes

  • A bibliography of reference materials

  • An index and glossary of Software Auditing Terms

Detailed Outline:

I: Software Testing – The Basics

1. Why, What, When & How of Testing

  a.  Why Test?

·  Testing Defined

·  Testing Software Products

·  Why is Testing Important?

·  Defect Prevention & Process Improvement

·  Common-Defect Checklists

  b.  When to Test?

·  Levels of Testing

·  Testing Activities

·  Increasing Cost of Fixing Issues

  c.  What to Test?

  d.  How to Test?

·  Testing Principles

·  Factors Affecting Quality of Testing

2. Testing Terminology

a.  Standardizing Testing Terminology

b.  Mistakes, Faults & Failures

c.  Testing, Debugging & Root Cause Analysis

d.  Software Items, Component & Units

e.  Verification & Validation

f.  Types of Testing

g.  Test Bed

3. Test Coverage of Requirements

a.  Where to Find Requirements

b.  Traceability

c.  Testability

d.  Attributes of Testable Requirements

e.  Test Matrix

4. Test Documentation

a.  Benefits of Formal Test Documentation

b.  Types of Testing Documentation

5. Test Activities

a.  Test Activities

b.  Participate in Peer Reviews

c.  Test Planning & Design

d.  Test Case Specification

e.  Test Procedure Specification

f.  Test Execution

g.  Test Log

h.  Test Incident Report

i.  Test Summary Report

6. Standards & Models Related to Testing

a.  Why Standards are Important

b.  IEEE Standards Related to Testing

c.  ISO 12207 & IEEE/EIA 12207on Testing

d.  ISO 9000:2000 on Testing

e.  SEI CMMISM on Testing

II: Functional (Black Box) Testing

1. What is Functional Testing?

a.  Functional Testing Defined

b.  Strengths of Functional Testing

c.  Weaknesses of Functional Testing

d.  The Functional & Non-Functional Requirements

2. Testing the Functional Requirements

a.  Testing Each Function

·  Create a Function List

·  Exercise – Function List

·  Function’s Environment & Capability

·  Function’s Environment

·  Function’s Capability

·  Example - Environment & Capability

·  Exercise - Environment & Capability

·  Input Testing

·  Equivalence Class Partitioning

·  Boundary Value Testing

·  Human/Hardware – Input Testing Checklist

·  Testing Outputs

·  Human/Hardware – Output Testing Checklist

·  Exercise – Input & Output Testing

·  Example Solution – Input & Output Testing Exercise

·  Forms for Input & Output Testing Exercise

·  Data Testing

·  Data Testing Checklist

·  Computation Testing

·  Computation Testing Checklist

·  Exercise – Data & Computation Testing

·  Example Solution – Data & Computation Testing Exercise

·  Forms for Data & Computation Testing Exercise

·  File System Interface – Checklist

·  Software/OS Interface Testing

b.  Usage Scenario Testing

·  Use Cases

·  Example – Use Case

·  Use Case Diagrams

·  Creating Tests from Use Cases

·  Exercise - Creating Tests from Use Cases

c.  Operational Profile Testing

·  Threads

·  Testing to the Operational Profile

3. Testing Non-Functional Requirements

a.  Usability Testing

·  Usability Characteristics

·  Exercise – Usability Testing

b.  Software Reliability

c.  Performance Testing

·  Race Conditions & Time Dependencies

·  Resource Utilization Testing

·  Load – Volume Testing

·  Load – Stress Testing

·  Normal Load, Volume & Stress Testing Compared

·  Exercise – Performance Testing

d.  Safety Testing

e.  Security Testing

f.  Configuration Testing

g.  Localization Testing

4. Functional Test Case Design

a.  Cause & Effect Graphing

b.  State Transition Testing

c. Exploratory Testing

5. Functional Test Execution

a.  Unit/Component Functional Testing

b. Testing Third Party Software

c. Commercial Off The Shelf (COTS) Software

·  Advantages & Disadvantages of COTS

·  COTS Usage

·  COTS Testing

·  Vendor Supplied Software

d.  System Testing

e.  Alpha Testing

f.  Beta Testing

g.  Acceptance Testing

h.  Installation Testing

i.   Compatibility & Conversion Testing

III: Regression Testing

1. Regression Analysis & Testing

a.  Regression Analysis Defined

b.  Determining Impacts & Possible Side Effects

c.  Regression During Development

d.  Regression for Releases Systems

e.  Regression Testing Step 1 – Test What Changed

f.  Regression Testing Step 2 – Test What Was Affected

g.  Regression Testing Step 3 – Run the Regression Test Suite

2. Maintenance Testing

a.  Software Maintenance

b.  Maintenance Testing

c.  Patching Issues

d.  Testing Patches

e.  Maintenance Release Testing

f.  Testing Ported Software

3. Test Automation

4. Regression Test Libraries

5. Regression Test Execution

Other Software Testing Courses Include:

Software Testing: is a 5-day course designed to provide an excellent knowledge base and practical skills for anyone interested in improving Software Testing and Test Management techniques and practices in their organization.

Software Structural Testing: is a 2-day course designed to provide an excellent knowledge base and practical skills for anyone interested in improving Software Structural Testing techniques and practices in their organization.  This course consists of chapters 1-3 from our standard Software Testing course.

Software Functional Testing & Test Management: is a 3-day course designed to provide an excellent knowledge base and practical skills for anyone interested in improving Software Functional Testing and Test Management techniques and practices in their organization. This course consists of chapters 1 and 4-6 from our standard Software Testing course.

Software Test Planning & Management: is a 1-day course designed to provide an excellent knowledge base and practical skills for anyone interested in improving Software Testing Management techniques and practices in their organization. This course consists of chapter 6 from our standard Software Testing course.

Customized Courses:  Our Software Testing courses are modularized so that they can be easily customized for in-house course offerings that focus on the specific content and topics needed to meet your organization’s exact training requirements. 

The Westfall Team can also customize this course or any of our other standard courses or develop unique software engineering, quality and project management courses to meet your exact in-house training needs and specifications.  For example, class exercises can be tailored to include actual examples from your organization in order to make the training more relevant to your environment. 


For more information about this course or other courses offered by The Westfall Team

Send an email to:  lwestfall@westfallteam.com

Or call: 972-867-1172

© 1999-2008 Westfall Team, Inc.