Monday, August 12, 2013

Development Testing Maturity Model

Development Testing is a process used in software development and its goal is to reduce software development risks, costs and time. The process applies a broad range of defect prevention and detection strategies to achieve this. Development Testing usually includes a variety of test methodologies like static code analysis, data flow analysis, metrics analysis, peer code reviews, unit testing, code coverage analysis, traceability and other software verification practices.

The main point is that this form of testing is performed by the software developer during the development phase of the software development lifecycle. Development testing does not aim to replace the traditional QA, but rather to complement it. Its purpose is to eliminate development errors before the code reaches the QA phase; and increase the software quality and efficiency of the development and QA process while decreasing the cost of eliminating production errors.

The process of implementing Development Testing starts like any other best practice, standard or framework implementation. Policies that state the organization's expectations for availability, security reliability, performance and regulatory compliance are usually defined. Then, the team should be trained on these policies and after the team is trained, Development Testing practices are implemented to align software development activities with these policies. These Development Testing practices include:
  • Practices that prevent defects through a Deming (plan-do-check-act) approach that promotes reducing the opportunity for error via root cause analysis and improvements.
  • Practices that detect defects immediately after they are introduced— believing that at the moment of finding fixing defects is fastest, easiest and cheapest.
The idea of using different defect prevention and defect detection practices is based on the premise that different Development Testing techniques are developed in order to refer to different types of defects at different points in the software development lifecycle. Therefore applying multiple techniques in overall decreases the risk of defects slipping through to production.
Development Testing Maturity Model
Development Testing Maturity Model
Coverity (software vendor which develops development testing solutions) has developed five-level Development Testing Maturity Model that is based on a set of services and best practices designed to help companies adopt development testing within their organizations. These are the five maturity levels:

LEVEL ONE: Automatic Defect Detection

This level is about detecting and repairing critical issues through automated notifications as part of the software  build process, as well as preventing any new defects from entering the system. 

LEVEL TWO: Identification of Residual Risks

At level two, developers identify residual risks in key components of code that may be shared by different groups or found in their authentication routines. These components are very critical to the heart of the code base and necessitate further automated testing of all different possibilities from a logic standpoint.

LEVEL THREE: Developer Workflow Optimization

The development testing process is integrated with other SDLC systems that developers use on a regular basis, such as source control management and bug tracking. For example, the source control management system is queried for the automated identification of file owners so defects can be automatically assigned to them and tracked. By integrating with other mission-critical systems, the development process becomes more efficient, and it fosters the adoption of the testing platform into the organization.

LEVEL FOUR: Code Governance

At this level software code governance and quality assurance is promoted. It is characterized by establishing and enforcing consistent standards for code quality and security and measuring improvement over time. As part of this stage, policy thresholds are established for items such as the number of high-risk defects. With policies in place, stage gates can be implemented to validate that code is in line with an organization’s governance goals before it is moved to the next stage of the development lifecycle.

LEVEL FIVE: Enterprise Code Assurance

Once users reach level five, developers have mitigated all legacy defects and the build will fail if new defects are introduced. They have established automated test cases for their critical code and code affected by change that secures it against any logic defects.

According to some analysis it is believed that organizations that are committed to the Development Testing Maturity Model are able to develop software 50 percent faster and have reduced development costs by 20 percent.

If planning to implement this maturity model it is wise to do it using the ITIL best practices because a very important aspect in the implementation is policy defining and ITIL can help with that, and also because ITIL can help change related conflicts to be reduced. If you want to find out more about ITIL I recommend reading the following books ITIL Lifecycle Suite 2011 Edition (5 volume set).

Unknown

Daniela Gavrilovska is ISO 20000, ISO 27001 and ISO 9001 Lead Auditor interested in IT Service Management best practices, standards and technology with passion about Green IT. -Google Profile

0 comments:

Post a Comment

 

Copyright @ 2013 Wise Guide to ITSM.