A course with Richard Bender: Writing Testable Requirements

Writing Testable Requirements

Higher Productivity and Quality with Clear and Actionable Requirements

  • Ensure that requirements reflect goals and objectives of customers and users
  • Write clear and actionable requirements statements the first time
  • Verify that requirements are explicit, quantifiable, and understandable
  • Identify and avoid missing and incorrect requirements
  • Reduce the time and cost to deliver the right software
  • Reduce errors, rework, and frustration

Clear, actionable, accurate, and complete requirements are a key component for having productive teams and high quality software—whether your development lifecycle employs detailed requirements specs, agile story cards, or something in between.

Without testable requirements, there is no real way to ensure that you are developing the “right” software—software that will meet the needs and expectations of customers and users. Just as important, testable requirements are the basis for designing and executing tests to confirm that the software does what it’s supposed to do.

Focus Up-Front on Problem Avoidance

The hands-on Writing Testable Requirements course focuses on problem avoidance before coding starts—how to write requirements accurately the first time and ensure that the product will meet your organization’s needs.

Learn practical guidelines for describing processes and data within software specifications. Then, practice writing requirements statements that have the clarity and the necessary detail to become the basis for developing test cases.

You can apply these techniques to any requirements documentation format—company or industry standards—and use them within automated requirements repositories.

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

Who should attend?

This course is intended to help those who write and review functional requirements—and those who develop and test systems based on those requirements. The audience includes business analysts, test analysts, requirements engineers, developers, and project managers. Finding Ambiguities in Requirements is a prerequisite for this class.

About the Instructor

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

Why Good Requirements Are Critical

Impact on costs of development

Impact on schedules

Characteristics of testable requirements

Common Requirements Issues

Identifying all classes of requirements

Identifying the major requirements components

Organizing the requirements specification/database

Ensuring sufficient detail in the requirements templates

Writing Style Guidelines and Practices

Naming conventions

Documenting data stores and data flows

Clarifying the boundary between requirements and design

Creating the initial process model—clarifying scope

Exercise – Create an initial process model for the class project

Documenting use cases, functions, and external entities

Ensuring readability without ambiguity

Making requirements explicit instead of implicit

The four building blocks of decision logic

Reducing complexity in decision rules

Documenting simple and complex transforms

Exercise – Rewrite ambiguous specifications

Impact of design and technology on requirements

Difference between structured English and pseudo-code

Exercise – Write the detailed requirements for the class project
Tuning the Requirements Process

Rapid prototyping and RAD

Agile methodologies

New development

Maintenance

Third-party packages

Technology conversions, rewrites, and re-engineering

Automated Requirements Management

RM tools as a requirements database

Migrating from documents to requirements databases

Moving beyond simple version control and traceability

Key features to support ambiguity reviews

Building templates into RM tools

Building automatic verification into RM tools

Requirements optimization wizards

Contact us for more details

Back to the top