A course with Richard Bender: Requirements-Based Testing

Requirements-Based Testing

A Disciplined Approach for Designing, Maintaining, and Executing Tests

  • Develop and maintain efficient tests that cover all functional requirements
  • Design test cases that force defects to appear early in testing
  • Learn and practice cause-effect graphing to design more robust tests
  • Learn and practice alternative test design approaches—pairwise, equivalence class
  • Optimize and reduce the size of your test suite
  • Integrate testing in the software development lifecycle

If your testing efforts are not achieving the payback you and your organization expect, this course is for you. Requirements-Based Testing (RBT) delivers a proven, rigorous approach for designing a consistent and repeatable set of highly optimized test cases. Companies employing RBT practices have achieved twice the requirements coverage with only half the tests they previously maintained.

Design the test library

The RBT process helps you validate that the requirements are clear and complete. Then, it guides you to define a set of tests verifying that the design and code fully meet those requirements. You’ll learn and practice cause-effect graphing, a test design technique which ensures that defects will be fully observable. If there are any defects in the software—even ones that could be hidden from tests by other errors—cause-effect graphing will find them. With this technique, you’ll be able to reduce the number of tests you need and make sure that every test is valuable.

Explore alternative test design techniques and the advantages and disadvantages of each. Learn how to complement functional, black-box testing with code-based, white-box testing to further ensure complete coverage and higher quality. Classroom exercises are employed throughout the course to reinforce your learning.

Leave with a Testing Process that Integrates with the Development Lifecycle

Take back a lifecycle testing process that incorporates testing as an integrated—and integral—part of the software development project. With the RBT process, your next project will experience significant time and cost savings while helping the test team develop better estimates and dynamically track test and project progress.

Bring samples from your own projects to work on and evaluate during class.

Who should attend?

Requirements-Based Testing is for test managers, test engineers, QA specialists, software managers, and anyone responsible for developing tests and test suites. Finding Ambiguities in Requirements is a prerequisite for this class.

Although the focus of this course is on process and techniques, there will be a brief introduction to the BenderRBT™ software tool, which automates much of the requirements-based testing process.

About Richard Bender

Richard Bender has more than forty years of experience in software with a primary focus on testing and quality assurance. He has consulted internationally to large and small corporations, government agencies, and the military. Richard’s work has included a wide variety of application classes and technology bases from embedded systems to super computer-based systems—and everything in between—consulting to both vendors and IT departments alike. He has been active in establishing industry standards for software quality and is a frequent speaker at conferences, universities, and corporate events. For his breakthroughs on code-based testing, Richard was one of the first programmers ever awarded IBM’s Outstanding Invention Award.

2-Day Course Outline:

Introduction

Making the business case for quality

Definitions of testing

The twelve-step RBT test approach

Initial RBT Steps

Validating requirements against objectives

Validating the scope of requirements using scenarios and tours

Exercise – Identifying scenarios
Cause-effect graphing

Basic logical operators

Exercise – Identifying variables, states, and relations

Five graphing constructs of functional requirements

Exercise – Create cause-effect graphs for numerous requirements
Data Constraints

Boundary condition data constraints

Processing sequence imposed constraints

Exercise – Determine what constraints apply

Inconsistencies in processing rules

Exercise – Determine why the requirements are logically inconsistent
Test Case Design from Graphs

Strategies for test case design

Concept of fault detection

Identifying functional variations

Exercise – Determine the required functional variations to test

Packaging functional variations into test cases

Exercise – Complete the test designs from the variations
Alternative Test Designs

Equivalence class testing

Exercise – Determine the states to tests

Review of other model-based testing techniques

Optimized pairs and orthogonal pairs

Exercise – Design tests using optimized pairs

Comparing the various test design approaches

Points of Integration

Integrating testing throughout development

Developing user acceptance tests before coding starts

Code-based Testing

White-box test completion criteria

Data flow-based testing

Integrating black-box and white-box testing

Management Considerations

Planning and estimating guidelines

Change control

Test team organization

Tracking the testing effort

Contract management

Test Automation

Test automation issues

How the RBT process integrates with the rest of test automation

Contact us for more details

Back to the top