Tuesday 13 November 2018

Scaling and improving the quality in Agile Testing using the TMMi





The main focus of this topic is combining the agile and Test Maturity Model Integration (TMMi). But before we discuss the merging of agile and TMMi, let us first discuss about what is agile and TMMi separately.

What is agile?
The word agile derives from the agile manifesto. Agile methodology is an alternative to traditional project management, which is typically used for developing the software. It helps teams respond to unpredictability through incremental and iterative software development called as sprints. Agile methodologies are an alternative to waterfall, or traditional sequential development.
The agile manifesto says that you need to prefer interactions between the developers and the stakeholders instead of the traditional method of some process and uses of tools. It only focusses on working software over the complex documentation approach. It also focusses on customer communication over negotiation of contract. Also, it can quickly respond to the software changes while the traditional software development approach was not able to do any changes in the software since the software was developed using a plan.

What is agile testing?
Agile testing is a software testing practice, that follows the principles of agile software development. Agile testing involves all the members of an agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer. It ensures that the customer realizes the quality of the software at frequent intervals and the agile testing is done quickly.

Benefits of agile testing
Agile development and testing improves the software quality and the whole development team is responsible for this. It ensures that there is a better communication between the software tester and the developer. They can work together to improve the software. Also, in agile all the team is working together, and hence if there are any defects or flaws in the software system it can be easily fixed. Since agile testing is done at the start of the software development, there are very fewer changes and fixes that needs to be done. Also, it flexible enough to incorporate new software requirements.

What is TMMi?
It stands for Test Maturity Model Integration. It is a staged assessment model just like CMM and CMMi. It follows similar assessment and ratings process like CMMi. It consists of five levels such as initial, managed, defined, measurement and management and optimization.

Why to use TMMi model?
TMMi supports testing activities and improvement in test process systems and software engineering. It also addresses all the test levels and focusses on moving organizations from defect detection to defect prevention. It identifies the opportunities for significant savings in the cost of developing the software. It is the international standard to measure the test maturity. It also supports risk management, monitoring and control.

Benefits of TMMi
It helps deliver the projects on time and to budget. It reduces the overall fault levels and development and test costs.

Scope of TMMi
It supports testing activities and test process improvements in both the systems and software engineering. It supports both the lower test levels and higher test levels in terms of dynamic testing. The TMMi proves to be an excellent model for use during software assessment. The assessment contains various requirements such as formal assessments, quick scans and self-assessments. It also provides a full framework for test process improvement.

TMMi maturity levels



It has five levels of maturity. They are the shorthand way for describing the organizational capability. The five levels are:

 1. Initial — It represents the starting point in the TMMi. Organizations in the Initial state have not institutionalized the processes that are called for in the TMMi model. This level has no process areas.

2. Managed — It defines five specific process areas that delineate testing from the development process of debugging. It creates a basic testing capability that includes the definition of testing, processes for planning, designing, executing and controlling testing in a defined testing environment. The five process areas are:
 — Test Policy and Strategy, Test Planning, Test Monitoring and Control, Test Design and Execution, Test Environment

3. Defined — It includes the practices that are required to extend testing (or verification and validation) across the life cycle of development based common standards and processes. This maturity level includes five process areas. They are:
 — Test Organization, Test Training Program, Test Life Cycle and Integration, Non-functional Testing, Peer Reviews

4. Measured — It focuses on gathering data and the measurement of the testing processes. Measurement provides information needed to begin improving the testing process and product quality. Measurement can provide many benefits. The Measured process area includes three process areas. They are:
 — Test Measurement, Product Quality Evaluation, Advanced Reviews

5. Optimization — This is the final level of the TMMi framework. Optimization reflects an organizational state where quantitative process improvement is refined to maximize effectiveness and efficiency. Maturity Level Five includes three process areas. They are:
— Defect Prevention, Quality Control, Test Process Optimization

Combination of Agile and TMMi
In the presentation titled TMMi and agile considerations on quality in agile, Stevan Zivanovic explains that how the two models work together to enable a repeatable approach to quality. He says that the agile practices can easily map into the TMMi levels. Agile practices enforce a high quality output if followed in a sequential model. Agile needs to deliver right level of quality to meet the customer needs. TMMi is not a perspective model and it looks for appropriateness to the project, program and organization in a number of critical areas. It is a method of measuring how well you embed your testing on quality practices. Hence, the agile and the TMMi model do fit well together.

The model is useful to any development approach and it does not look for specific documents. It looks for thoughtful and considered actions to ensure that everyone concerned understands what things to be done. It does not prescribe the practice of continuously evaluating to make effective changes. It can lead to specific benefits in agile that drives to a common goal of a consistent repeatable approach on how you perform the agile practices. For well run agile team the direct benefit is to fine-tune the process. TMMi can be used to access key issues in a consistent manner and it provides a prioritized plan as to what needs to be implemented first.

The point here is that the TMMi and agile do fit together. TMMi uses appropriateness and fit for purpose measures. It is not bound by processes and hence can work with any development methodology. It is an important tool for defining and prioritizing improvements across the whole organization. TMMi supports high quality structures that institutionalizes and prioritizes the practices to ensure a quality deliverable.

Hence, when both the models are used together, the quality of the software is improved. Also the combination, if used at right time helps to deliver the quality repeatedly.

3 comments: