References:
www.cetin.net.cn/storage/cetin2/QRMS/ywxzzl12.htm
www.stsc.hill.af.mil/crosstalk/1998/12/hammer.asp

1. Introduction
Requirements development and management have always been critical in the implementation of software systems. It is a known fact that engineers cannot build what analysts cannot define. It thus becomes imperative to have an efficient requirements gathering and management to deliver the best possible software systems.


Many automated tools are utilized to support requirements gathering and management. The use of these tools not only supports the definition and capture of requirements, but they also open the door to effective use of metrics in tracing, characterizing and assessing the requirements from a testing perspective. In addition to a tool based capture of metrics, it is necessary to opt for other complementary methods.

As per a detailed analysis done by NASA, it was identified that problems that are not found until testing are at least 14 times more costly to fix than if the problem was found in the requirement phase.

This objective of this topic is to discuss the details of various metrics that can be used in a complete SDLC project from requirements gathering thru testing and analysis phases derived from the best practices.

2. Metrics:
In software development, a metric is the measurement of a particular characteristic of a program’s performance or efficiency.

2.1 Why Metrics?
– Metrics help the Project Management/Team to effectively manage the various activities across the SDLC and achieve a single view, understanding of the progress of the deliverables and also to quickly analyze and identify the impact of any change across the deliverables.
– Metrics assist early detection and correction of errors or changes in the requirements gathered.
– Multiple metrics are needed for comprehensive evaluation of requirements, testing and their trace-ability to do a Gap analysis, Change Impact analysis, compliance verification of code, regression test selection, and requirements verification and validation for the project team to achieve the best of best deliverables.
– Metric collection, with a combination of tool based approach and other methods, is cheaper, faster and more reliable.

2.2 Approach:
1. Once business requirements are written, finalize the methods/metrics for ensuring that the system contains the functionality specified must be developed.
2. The next groups of testing metrics activities we investigate relate to the test plan links between test cases and the requirements.
3. The linkage of the requirements, the relationship between unique requirements and unique tests.

2.3 Metrics Lifecycle:

Metrics Lifecycle

Steps involved in Metrics Life Cycle:

  1. Identification of various Metrics required for the Project.
  2. Classifying and Prioritizing the Metrics as per their usage and need that are going to be used for different activities in the project.
  3. Identifying data required for the metric; if data is not available, identify/setup process to capture the data.
  4. Communicating to Stakeholders, to Project team and Quality Audit team.
  5. Capturing and verifying the data in metrics as per the project requirement.
  6. Analyzing and processing data in metrics as per the project requirement.
  7. Reporting the metrics to Customer and project team for project tracking.
  8. Revising the metrics at regular interval to improve the quality.
  9. Adding any new metrics required/suggested by Customer/Vendor as part of Best Practices at various stage followed by step 1 to 8. 2.4 Types we will cover:

    Metric Based Approach for Requirements Gathering and Testing
    Click on the below links to read further:
    1. Requirement Reliability Metrics
    2. Testing Reliability Matrix
    3. Traceability Matrix

3. Conclusions:
To develop any software application, the base is requirement gathering, management and testing. The metrics discussed above can provide the project team a good control and grip on the project with less effort and minimum errors leading to quality deliverables.
The benefits that can be derived through a metric based approach are:

Requirements Reliability Metrics Testing Reliability Matrix Trace-Ability Matrix
  1. Quick identification of potential project risks arising out of scope creep or slippage.
  2. Logical categorization of requirements based on certain criteria like type, priority for project releases etc.
  3. Requirements Reliability Metrics are available in the requirement phase to assess test plans.
  4. Logical grouping of functional requirements planned for different project releases.
  5. Separate logging and tracking of new requirements-related to change controls or change requests as part of the project releases.
  6. Monitoring the details of requirements delivered and not delivered as per the release plans.
  1. Facilitates the quantitative assessment of the quality of the software application developed.
  2. These metrics assists in identifying the test characterization, test span, test coverage, test complexity.
  3. Test metrics gives the detailed information about the test repository and their maintenance.
  1. The trace-ability metrics gives the details of test to requirement links to do a Gap and change Impact analysis.
  2. This metric can have phases for Requirements, Functional Design, Technical Design, Coding, Data Base modeling, Functional Code Review ,Quality procedure—Unit testing, Integration testing and System Testing, Data Dictionary and DEFECT CONSOLIDATION LOG for the project.
    References:

www.cetin.net.cn/storage/cetin2/QRMS/ywxzzl12.htm
www.stsc.hill.af.mil/crosstalk/1998/12/hammer.asp