Software Testing Fundamentals

Length:

In-person classes – 2 days / Virtual (Live online) and Anytime Learning – 4 sessions

Overview: 

Does your job involve testing or test planning, whether or not you’re in a QA role?  Then you need to know the fundamentals.  This course presents best practice methods and techniques for software testing to obtain thorough and effective testing results.  Various levels and types of testing are covered.  Learn techniques for assuring testing of software deliverables throughout the project lifecycle is adequate and effective.  

This course focuses on the planning and management of the software testing lifecycle by establishing a test strategy and plans appropriate for a given project size, complexity and technical architecture.  It is applicable to a wide range of project roles, from business analysts to QA staff to application developers. Get your testing under control with our help!

Objectives:

  • Describe what testing means, why it is necessary, why it can be inadequate and when it is complete.
  • Describe how early and where testing activities fits into a typical Software Development Life Cycle.
  • Describe the processes and deliverables associated with best practice testing.
  • Learn the importance of good requirements for testing and the role of testers in requirements development.
  • Perform product risk analysis to determine how much to test and what to test and create a Product Risk Assessment evaluation and understand how it is different from Project Risk Management.
  • Understand and distinguish among common testing levels, styles and types, such as documentation reviews, black and white box, unit, integration, system, regression, boundary, stress, static and dynamic testing.
  • Understand the use of special tests, such as usability tests, parallel tests, and business continuity tests.
  • Define testing strategies and create a Test Strategy Document.
  • Create test plans and test cases based on requirements.
  • Understand the unique testing characteristics for web, client/server, mainframe and vendor applications.
  • Develop a process for handling defects discovered throughout the testing lifecycle and understand how they are different from project issues that occur.
  • Understand Quality concepts (including Quality Assurance) and its importance to the testing process.
  • Describe the roles and responsibilities throughout the testing process.

Pre-requisites: Some basic understanding or exposure to requirements concepts. Our Eliciting Business Requirements or Fundamentals of Business Analysis courses satisfy this prerequisite.

Skill Level: Basic

Audience:

This course will benefit test leads, business analysts, project managers, new QA analysts, application developers, testers, business clients and anyone involved in the software testing process.

PDUs/CDUs: 14  CEUs: 1.4

Certificate Programs:

  • Masters Certificate in Business Analysis

Format: 

To help assimilate the tools and techniques learned, there is a mixture of individual and team exercises throughout the course.  A case study helps reinforce concepts learned.  Students will need to be prepared for a high level of participation.  Each participant will receive a comprehensive student guide complete with examples and workshop solutions.


Content:

Testing Concepts

  • What is testing? What is Debugging?
  • Testing definitions
  • Testing related issues & questions
  • Characteristics of effective testing
  • Why testing is necessary
  • Reasons for inadequate testing
  • When testing is complete
  • Defining a testing process
  • How test cases solidify business requirements
  • Reasons for omitted requirements
  • Importance of “testable” requirements
  • Characteristics of “testable” requirements

Planning for Quality

  • What is quality?
  • Cost of quality
  • Cost of defects
  • Benefits of quality
  • Testing Lifecycle
  • Testing in an iterative development lifecycle
  • When to begin testing
  • Levels of testing
  • Testing Styles:
    • Functional and Structural
    • Black box and White box
    • Static and Dynamic
    • Formal and informal testing
    • Manual and automated
  • Types of tests most frequently used, including:
    • Usability
    • Security testing
    • Stress testing
    • Performance testing
    • Compliance
    • Regression
    • Operations
  • Special types of tests, including:
    • Parallel
    • Business Continuity
    • Boundary value analysis
    • Looping analysis
    • Error handling

Testing Deliverables

  • Definitions
  • The value of a Product Risk Assessment and how to do it
  • Developing a Test Strategy and its components
  • Developing Test Plans
  • Developing Test Cases
  • Developing Test Scenarios
  • Components of Test Scripts
  • Tracking test results and defects
  • Benefits and use of a Traceability Matrix
  • Testing activities during each software development lifecycle phase

Static Testing

  • Benefits of artifact reviews
  • Effective review techniques
  • Peer reviews and Inspections
  • Review Criteria
  • Worksheets: Characteristics of good requirements and test artifacts
  • Getting requirements right the first time

Dynamic Testing

  • Characteristics and pitfalls of each test stage
  • Unit testing checklist
  • Integration approaches
  • Integration approaches for structured and object oriented languages
  • The use of stubs and drivers
  • Characteristics and challenges of testing for different architectures
    • Client/Server
    • Web
    • Vendor Applications
    • Object oriented
    • Business Intelligence

DIRT (Data, Issues, Roles & Tools)

  • Defining and managing test data
  • Issues and defects: What’s the difference?
  • Defects and requirements: What’s the difference?
  • Typical testing roles
    • Clarifying testing responsibilities using RACI or Responsibility matrix
    • Management testing responsibilities
    • Team member testing responsibilities
  • Testing tools
    • Types of testing tools
    • Tips for taking advantage of testing tools

 This outline is subject to change.