Continuous Testing Focus Areas

Published date: April 15, 2024, Version: 1.0

Overview

Continuous testing is a modern testing technique that depends on actionable feedback at each stage of the software delivery cycle. The main goal of Continuous Testing is to test early at all stages of the SDLC with automation, test as often as possible, and get faster feedback on the builds.

Continuous testing executes automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate, thus gaining actionable feedback at each stage of SDLC. Below are the different types of Continuos testing focus areas that we have:

Key Principles of Continuous Testing

Test as early as possible:

  • Testing as early as possible is one of the key principles of continuous testing. By testing early and often, you can identify issues and defects early in the development process, which can help reduce the cost and time required to fix them.

Test automation and in-sprint automation:

  • Test automation is the key enabler for continuous testing. It is recommended to automate the tests in-sprint so that all the regression testing can be run automated along with the automated pipeline

Balanced test pyramid:

  • The testing pyramid is a model that breaks automated tests into three main categories: unit, integration, and UI (or e2e tests). This allows the development of a more efficient test suite and helps developers and QA specialists achieve higher quality. The pyramid metaphor tells us to group software tests into buckets of different granularity. The bottom layer of the pyramid consists of unit tests, which are small, fast, and focused on testing individual functions or methods. The middle layer consists of integration tests, which test how different parts of the system work together. The top layer consists of UI (or e2e) tests, which test how the system works from a user’s perspective.

A Balanced Testing Pyramid reduces Cost of Quality and Accelerates Testing

  • Automated Pipelines with Quality Gates: Automated pipelines with quality gates are an important part of continuous testing. Quality gates are checkpoints that are used to ensure that code meets certain quality standards before it is allowed to proceed to the next stage of the pipeline. Automated quality gates can help ensure that code is tested thoroughly and that it meets certain performance and architecture metrics.

    Quality gates can be implemented at different stages of the pipeline, including unit testing, component testing, integration testing, and end-to-end testing. By implementing quality gates at each stage of the pipeline, you can ensure that code is tested thoroughly and that it meets certain quality standards before it is allowed to proceed to the next stage.

 

CT1

Continuous Testing practices

The Continuous testing approach recommends various best practices listed below

Dev Practices

  • Code Quality - Static code analysis
  • Code Reviews
  • Version Control
  • Unit Testing

Infrastructure

  • Environment Provisioning
  • Automated pipelines with Quality Gates

Process

  • Engineering culture
  • Agile Practices

Test Automation

  • Test Pyramid
  • Test Design Practices
  • In-sprint automation
  • Shift Left Non-functional Testing
  • Shift Left Integration Testing
  • Production Testing and Monitoring

Adoption expectations

System Components  MVP MVP+

Static Code Analysis

+

 

Code Reviews

+

 

Version Control

+

 

Unit Testing

+

 

Environment Provisioning

 

+

Automated pipelines with Smoke testing as Quality Gate at all Env

+

 

Automated pipelines with Regular Quality Gate at all Env

 

+

Automated pipelines with Advanced Quality Gate at all Env

 

+

Balanced Test Pyramid

+

 

Test Design Practices

+

 

In-sprint automation

 

+

 

Tools

Functionality Tool Name

Test automation and in-sprint automation

Git

Version Control Collaboration

Azure DevOps Repo, Bitbucket

Build automation tools

Jenkins, Bamboo, TeamCity, Azure DevOps

Containerization and orchestration tools

Docker, Kubernetes, OpenShift

Test Automation

JUnit, NUnit, Rest Assured, Selenium

Roles

Name  Responsibilities 

QE Architect

  • Define and implement the overall continuous testing strategy, architecture, and framework

  • Guide the implementation of balanced test pyramid

Developer

  • Write unit tests with required coverage

  • Implement code quality standards

  • Implement Code Quality Gating

Build Engineer

  • Implement the continuous testing pipeline along with the quality gating

Test Automation Engineer (TAE)

  • Design and develop automated test scripts and frameworks using UTAF to support functional, regression, and performance testing.

  • Implement in-sprint automation testing

  • Implement a balanced test pyramid

  • Performs the Automated testing activities

QA Specialist (Functional SME)

  • Collaborate with Agile teams, Product Owners, and stakeholders to gain a deep understanding of functional requirements and user expectations

  • Performs the testing activities