Project Management Consulting

 

 

Project Management

Project vs Program Mgmt

NEW:  BLOG

Development Management

Risk Management

Process Management

Requirements Management

Quality Management

Change Management

Contingency Planning

Mentoring and Training

Small Companies

Downloads

Related Links

About Dan

 

Home

 

Site Map

 

 

 

 

 

 

 

 

 

 

 

 

 

 

copyright 2007-2010, Project Management Consulting

 
 

REQUIREMENTS BASED TESTING

REQUIREMENTS BASED TESTING: DELIVER WHAT YOU PROMISED
By Dan Friedmann

Software applications should delight their users. This can mean many things. In general, software that does its intended job - completely, reliably, efficiently and easily - should delight the user and the provider of the service. There are many steps in building delightful software. This article focuses on one of those steps: requirements based testing.

Requirements based testing involves verifying that the software meets the application's requirements. Each requirement has a set of tests demonstrating the successful implementation of that requirement.

A premise of requirements based testing is that the requirements are complete and accurate. Clearly, if the requirements are incorrect or incomplete, the software will not perform the intended job appropriately. For purposes of this article, it is postulated that the requirements are indeed complete and correct.

There are a variety of testing approaches and steps. A sample of these includes black box (user), white box (functional), unit, integration, system, performance, load, fail-over, and coverage testing. While each has value in helping ensure quality during the development process, perhaps none is as important as requirements based testing for verifying that the software is providing the required functionality defined during the product conceptualization process.

Demonstrate the Software Meets the Requirements

There have been studies that indicate that a measurable percentage of reported problems with software involve "errors of omission". That is, the software delivered failed to include the required functionality. While some errors of omission are the result of missed requirements, often times they result from a failure of the developer to implement these requirements. Requirements based testing is intended to preclude the latter class of error.

Expanding slightly on the basic approach to requirements based testing is the goal to construct a series of tests that will demonstrate the implementation of the specified requirements. Each requirement has an associated set of tests and all requirements based tests demonstrate the implementation of a specific requirement. This verifies that the implementation was complete with respect to the requirements.

Similarly, no requirements based test case should exist that does not demonstrate the correct implementation of a requirement. If there exists functionality tested that is not mapped to a requirement, the development team probably has built capabilities not called for by the requirements. All too often, development budgets and schedules are sapped by the inclusion of features that are not required or expected.

Crafting Requirements Based Tests

Properly constructed requirements based tests are developed directly from the requirements document prior to the start of development activity. If there is a quality assurance organization that will be responsible for test execution, a representative of that organization should be involved in the construction of the requirements based tests. Virtually every development effort encounters changing requirements. Part of the change control model should be the modification of the requirements based tests as the requirements change.

There are numerous commercial tools that allow complete requirements tracking. Any search engine will provide access to numerous requirements traceability tools. These tools allow a project team to link all lifecycle documents (including code) back to specific requirements and to see which lifecycle documents support each requirement.

In the final analysis, requirements based testing demonstrates that the development team built what was asked for by the requirements and no more. Successfully performed, requirements based testing helps to deliver good software which leads to a delighted customer.

The original version of this article was written in 2001 for Crosshair (www.xhair.com), a developer of managed and customized extranet security service platforms.

 

Contact Information

Email
proj-mgt @ proj-mgt dot com
Telephone
+1.914.391.6241

Dan on LinkedIn

Twitter:  DanFriedmann