Close

October 26, 2012

Improving the Test Process

Improving the Test Process - V Model

This article is about improving the test process by implementing the best practices in each phase of Software Test Life Cycle (STLC). Also, it offers the benefits which can be realized by following these processes and the CMMi (Capability Maturity Model Integration) Level aligned to each of the STLC phases.

Objective of this article:

The article deals with improving the test process by implementing the best practices in each of the phases of STLC. These best practices have been aligned with CMMi levels and Software Development Life Cycle (SDLC) phases, to present an incremental improvement adoption process.

The below comparison sheet gives a bird eye view of the process:

The parameters of best practices have been outlined in the first column. And the seven phases of SDLC and STLC have been aligned with these parameters. The CMMi Quality levels have mentioned with respective parameter and phase to quantify the improvement achieved at each stage.

Parameters

SDLC Phase

STLC Phase

CMMi Phase

Crystal Clear Objectives and Understanding

Requirements Gathering

Requirements Gathering

Level 2: Managed
Domain & Architecture Knowledge

Design

Analysis

Level 2: Managed
Effective Usage of Framework and Tools

Planning

Test Strategy

Level 3: Defined
Effective Management

Coding/Unit Testing

Test Data and Bed Setup

Level 4: Quantitatively Managed
Team Governance

Coding/Unit Testing

Test Execution and Defect Reporting

Level 4: Quantitatively Managed
Knowledge Management

In all the phases

In all the phases

Level 4: Quantitatively Managed
Tailoring Best Practices and Benchmarking

Verification, Implementation and Maintenance

Result Analysis & Sign-Off Level 5: Optimizing

Each of the parameters of best practices at different phases of STLC has been explained in details with a project experience (in the text box):

1. Requirements Gathering <_> Crystal Clear Objectives and Understanding

XYZ Corporations is a leading Insurance & Healthcare provider in USA. XYZ Corporations planned to launch new insurance product which should be supported by all existing applications.

Testing team has performed a business study on new products from the XYZ Corporations by involving at early stages. 

Requirements Gathering and Analysis is the fundamental activity in any project. It is essential for a testing team to have a complete knowledge on client’s expectations and their business to perform a valid testing without any deviation from the specified requirements.

To procure the requirements from clients or from business analysts, it is advised to have a tool in place. This ensures a standard process of gathering, reviewing, prioritizing, calculating risks, if any, and tracking of the requirements. It also expedites the process of requirements gathering.

One of the main objectives of understanding client’s requirements is to save the cost of fixing defects. If the defect is left unnoticed in early stages of STLC, it would cost more to fix it in later stages. Once the requirements is collected from the clients, Subject Matter Experts (SMEs’) should duly review, rework (if any) and signoff.

Following documents/artifacts helps testing team to understand the requirements:

  • Application’s Architecture Design
  • Interfaces’ Design
  • Environment Set-up Design

In an Automation Testing project, feasibility analysis should be signed-off apart from functional requirements document. Similarly in a Performance Testing project, Non-Functional Requirements Gathering and Analysis should be signed-off from the clients. The key point is in Testing no requirements gathered should be left to assumptions.

This can be ensured in two steps:

  1. Make sure the Functional and Non Functional Requirements Document (FRD & NFRD) has been reviewed and inspected which has Entry and Exit criteria.

It is always a good practice to pull testing team into the testing ground early in STLC and to involve them in informal reviews of requirements gathering and analysis, design documents and decision making. It helps to break the ice among testers, developers and business analysts. Also, it reduces the dependency when the project moves from one stage to next.

2. Test Strategy/Plan <_> Domain & Architecture Knowledge

Domain & Architecture Knowledge

Testing team has acquired the domain and architecture knowledge from Subject Matter Experts and Solution Designers to have a complete knowledge on new products and the complexities involved in existing framework.

Apart from testing and technical skills, it is important for the testing team to know the domain and application’s architecture design. Thus, it is advisable for the team to attend trainings, business meetings and browse online study materials. Domain Certifications provide a chance to know more about the business.  Such Domain knowledge helps in all the phases of STLC.

Share the blue print of application’s architecture, interfaces, business flow and environment setup as early as possible. This reduces the dependency while carrying on testing and also saves the time and effort.

3. Test Strategy/Plan & Test Case Design/Development <_> Effective Usage of Framework and Tools

Effective Usage of Framework and Tools

Testing team has performed Automation Feasibility Analysis and Proof Of Concept (PoC) for a regression suite. Testing team has identified the right tool and the feasible framework which increases the reusability and reliability factors.

If the project involves regression testing, it is ideal to perform automated testing. Feasibility analysis can be performed in the early phases to decide upon automation testing. Automated test scripts expedite the STLC and also increases the reusability, reliability and accuracy of testing.

By implementing automation framework considerable time and efforts can be saved. The automation tool must support the AUT’s (Application Under Test) components; hence care must be taken in deciding the automation tool.

4. In all phases of STLC <_> Team Governance

Effective Management

To support multiple domain testing activities it was recommended to use a Project Management, Test Data Management and Defect Management Tool.

Not only the rigorous test processes, project management makes the testing more effective. Project Manager must have business as well as technical knowledge of the project. By using a test management tool like Quality Centre, project’s progress can be tracked.

Effective Test Data Management and Defect Management help to improve the testing process. Tools for project management must be defined in the Test Strategy phase of STLC.

5.  In all the phases of STLC <_> Team Governance

Team Governance

There should be a transparency maintained throughout the STLC. This ensures testing is smooth and hassle free. Testing team should know what is going on in the project. Also, reporting structure of the team should be well defined while strategizing the project.

This transparency helps testing team to build rapport with the developers and managers. It leads to an effective communication between testers and developers/business analysts.

6. In all the phases of STLC <-> Knowledge Management

Knowledge Management Anchor had identified for the project to track the KM process and progress. Testing team created a common Knowledge Repository to store all the project and domain related documents, artifacts and reusable tools for effective knowledge sharing.

Knowledge Management

“If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.” – G.B. Shaw

That is the power of sharing ideas, the same holds good for knowledge.

Following an effective Knowledge Management (KM) process helps testing team to improve their skills sets both in personal and professional life. Preparing Induction Kit for new joinees, managing the resource’s skill sets, tracking down the Internal and External certifications helps in managing projects and branding with the clients. KM process leads the testing team to innovation.

Create a KM repository which makes sharing easy and convenient, like offline Project Wiki, centralized SharePoint etc.

7. In all the phases of STLC <_> Tailoring Best Practices and Benchmarking

Tailoring Best Practices and Benchmarking

Testing Team members tailored the identified best practices followed during all the phases of STLC and stored it in the common Organization Project Repository. 

It is always best to adopt best practices in any industry. Pool the best practices and tailor them into the testing process on a periodical basis. By tailoring and implementing best practices gives optimum solutions faster ensuring a quality and timely delivery. This saves organization’s cost, effort and time. Your organization’s project history, previous experiences helps much better to achieve the goal by tailoring them as per your requirement. Tailored testing methods and techniques can be set as benchmark to measure the performance of projects in the future.

Conclusion

To reiterate, all of the best practices shared above brings incremental improvement phase by phase. They cannot exist in isolation but with the associated phases of STLC. And these improvements will result in achieving Quality standards which can be mapped to CMMi levels.

Appendix

Relationship between SDLC and STLC explained with the help of V Model:

Testing is a critical phase in Software Development Life Cycle (SDLC) to validate the end product’s quality from end users perspective and customer’s expectations. To ensure the quality of the product, validation and verification are performed on the deliverables and the testing activity at each phase of SDLC forms Software Testing Life Cycle (STLC).

Below diagram depicts the mapping of SDLC phases to its corresponding phase of STLC.

Software Testing Life Cycle - V Model

Software Testing Life Cycle - V Model

What is CMMi?

Capability Maturity Model Integration (CMMI) is a process improvement approach whose goal is to help organizations improve their performance. CMMI can be used to guide process improvement across a project, a division, or an entire organization. Source: [wiki]

This article published in ISQT’s Newsletter called Software Testing Chronicle.

Download Improving the Test Process

About NaveenKumar Namachivayam

Hi there! is a passionate and experienced Performance Test Analyst based in Chicago, USA with skill sets in Manual Testing, Test Automation, Performance Testing, and Test Estimation. He loves to learn and experiment new trends and models in Software Testing. Please stop by at his personal blogs: Excel Blog, DealsBrook, NaveenKumarN.in, and Affiliate Insights blog and Software Testing Memes.

One Comment on “Improving the Test Process

Automation vs Manual Software Testing
December 3, 2012 at 12:25 pm

In my various posts in the web log, I wrote about common and important Software Testing Types, Methods and Strategies. It is increasing in size as well as in quality. Thanks for this post.-David

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *