The concept of a testable requirement
has been used for years as a test of the quality and detail of system specifications. The key new assertion is that the number of testable requirements is a measure of the size of the system.
This in turn has many practical applications to the measurement of the software development process.
The "testability" attribute of a requirement is the key concept that normalizes the requirement and makes the measure meaningful. While the testability of a requirement is fundamental to the concept of sizing with testable requirements, it should be noted that sizing a system using testable requirements is not
the same as counting test cases (Testable Requirements Vs Test Cases
Sizing a system based on testable requirements offers a flexible measure of software system size. Since the definition of requirements
includes not only the traditional user requirements, but also other types of requirements, there is considerable flexibility to "size" either a complete system or selected aspects of a system. For example:
The user requirements
The design requirements
The requirements for a particular program
The portion of the system that is being changed by a maintenance release
The size of a software package
The size of modifications required to a software package.
This raises the question: "What is meant by the size of a system?" The answer depends on the individual perspective:
For an end user, the size is the number of user requirements (like Function Points).
For a programmer, the size may be the number of program requirements (like Lines Of Code).
For a manager or other estimator trying to project costs, the size may be the total of all types of requirements.
Testable requirements provide a sizing measure that can address all these perspectives. It offers A New Paradigm For Sizing Software Systems
which has advantages over the other industry software measures, function points and lines of code.