Quality - CMMI Processes for Software Testing
CMMI models are collections of best practices that you can compare to an organization's best practices and guide improvement to the processes.
In this article, let us talk about the key checklists to be considered & deployment of CMMI processes for testing projects.
Introduction to CMMI:
Capability Maturity Model Integration (CMMI) in organizational development is a process improvement approach that provides industry with the important elements for efficient process improvement. This can be used to direct the process improvement across a project, a unit, or industry.
CMMI is a collection of in-class methods that meet the needs of organizations in many areas of interest. A collection of best practices that cover a particular area of interest is called a CMMI model.
Brief History:
CMMI was developed by a group of experts from industry, government, and the Software Engineering Institute (SEI) at Carnegie Mellon University.
CMMI models provide methods for developing or improving processes that meet the industry business goals.
A CMMI model can also be deployed as a framework for appraising the process maturity of the organization.
CMMI originated in software engineering but has been highly generalized to encompass other areas of interest, such as the development of hardware products, the delivery of all kinds of services, and the acquisition of products and services.
The word "software" does not appear in definitions of CMMI. This generalization of improvement concepts makes CMMI extremely abstract.
Capability Maturity Model Integration (CMMI) is developed by the CMMI project, which targeted to improve the usability of maturity models by collating many different models into one framework. The project consisted of members of industry, government and the Carnegie Mellon Software Engineering Institute (SEI). The main sponsors included the Office of the Secretary of Defense (OSD) and the National Defense Industrial Association.
Level 5:
Obtaining Level 5 need additional process improvements; enhancement or development of a project tracking system; deployment of business process capability baselines; quantitative control of processes; and deployment of a process improvement, change management and defects prevention systems.
For Many industries, one of the most difficult aspects in the process of preparing for the Level 5 assessment is getting everyone in the organization to be part of the process improvement road & must work very hard to create an environment that encourages everyone to work on refining the process as well as the project at hand.
The other challenge is putting together complete process data, specifically defect data and time sheets. And, once the data is assembled, understanding the metrics and filtering out abnormal data due to special causes presented important hindrances.
In Product Testing projects the following areas need to be addressed adequately:
- Requirement Management : The test plans should follow the V-estimation model approach wherein the acceptance test plans conforms to the detailed out requirements, Unit test plans maps to the Detailed Level Design (DLD) and Integration Testing - System Testing (IT –ST) plans conforms to the High Level Design (HLD) stage.
- Project Planning, Monitoring and Control: are required to execute the tasks/activities inline with the estimate and budget. It also ensures a systematic approach towards execution thereby ensuring detailed task coverage and right goal setting so to achieve the project objectives thereby satisfying customer. Monitoring and Control mechanisms will serve as leading indicators during execution to take corrective and preventive measures.
- Measurement and Analysis: Identifying the right set of metrics holds the key to a successful project execution. Defect, Effort and Schedule are the most relevant basic metrics to be captured in a testing project. Testing effectiveness and efficiency are two base derived metrics which can help enhancing the process and render stability.
- Verification and Validation: Verification holds a key in ensuring defect free software. Test plans should be prepared covering detailed test coverage, defects should be logged and audit trail maintained so to close defects as well as ensuring none of the requirements gets missed out. Periodic analysis of defects and identifying root causes to eliminate their recurrence will help in delivering a stable product/software. Validating the functionality in production environment to check conformance to requirements will ensure delivering a stable product/software.
- Risk Management: is an umbrella activity which runs throughout the project execution. Identification of risks, its impact, probability of occurrence and exposure needs to be determined and adequate mitigation plans should be put in place.
- Continuous Improvement: Identification of means to automate work processes, eliminate manual intervention, testing tools deployment will lead to productivity and efficiency gains during execution .Certain techniques like FMEA, Design of Experiments add to the process of continuous improvement.
Suggested Checkpoints:
Requirements Deliverable |
Key issues to be looked into |
Requirements Documentation |
|
The business rules should be abstract & properly defined The input & output events should be specified. The functions for input & output should be defined The validations to the inputs should be specified The sequence of processes should be described There should be sufficient description in support to exception handling & recovery scenarios The effect of parameters should be clearly defined The relations & formulae of Input to output should be mentioned. The shortcut keys, if any should be defined. The reporting structure should be clear The error messages & function keys should be specified |
|
The performance requirements should be measurable The latent requirements should be identified & documented Check for measurable requirements availability Check for measurable requirements reliability
|
|
Manageability & Maintainability |
Check for the requirements related to ease of maintenance Check for normal operations Check for special operations, if any |
The usability requirements should be clearly defined |
|
Interfaces (Systems, Network, Hardware) and Integration |
Check for the interface with the system with other components The description of the Interface with the network should be clear. The description of the Interface with the hardware should be clear. The Input & output conditions should be described Check for the documented references to existing interface
|
The requirements related to the date should be defined |
|
Check for the standards derivation from the existing standards |
|
Check for the authorization, & password policies |
|
The system should be scalable enough to be carried to different web clients Check for the platform dependency of the system
|
|
Existing defects |
Check for the identification & documentation of the existing defects which are to be resolved in the current release |
Traceability |
The requirements should be readily identifiable & traceable |
Priority Assignments |
The requirements should be prioritized
|
Check for the requirements sign off by the business |
|
Requirements Conciseness, Completeness & consistency |
The requirements should be complete, concise & correct. All the requirements should be properly documented. Check for the scope & conformance to the client’s expectations & needs Check for the gap items or loopholes in the requirements gathering Identify the requirements which are unspecified but if incorporated would add to customer delight There should not be any conflicting requirements. Check for the requirements having adverse impact on the existing product or system There should be thorough reviews before the base lining
|
Deferred Requirements |
The deleted requirements should be updated & documented Identification & documentation of the deferred requirements
|
Testability |
Make a note of the requirements that cannot be tested Types of testing techniques to be used must be decided
|
Detailed analysis |
Check if the requirements & readable. Check if the requirements are easily understood Check if the complex requirements discussed in detail
|
Test Planning |
Check for the reusable business scenarios Check for the traceability of each test requirement Check for the requirements compatibility with subsequent test phases Identify the key scenarios for automation Check if sufficient test data is available Check if the report & test results are predictable & in compliance to the outputs
|
Requirements Management |
Check for an effective configuration management for requirements Check if the requirement documents flexible enough to accommodate frequent changes Check for the processes followed in accordance with the Project plans |
Summary:
In short, CMMI models are collections of best practices that you can compare to your organization's best practices and guide improvement to your processes. The extent and effectiveness of deployment determines the success of a project ensuring predictability, productivity and quality. The focus areas and checkpoints attempt to highlight their importance and adequacy thereby ensuring a predictable outcome, a stable process and a high quality product.