November 13, 2023
INTRODUCTION

The CI and CD in CI/CD stands for both Continuous Integration and Continuous Delivery (or Continuous Deployment). The aim of the processes within CI/CD is to improve the efficiency, quality, and speed of software delivery to both test and to production. It is worth understanding first what we mean by the terms described below.

1). CONTINUOUS INTEGRATION

Continuous Integration (CI) is a development process where developers frequently integrate code changes into a version control system, such as Git, and in response to those code changes, automated build and test processes are triggered. These verification methods provide quick feedback on the quality of the code changes and highlight any integrations issues.

2). CONTINUOUS DELIVERY

Continuous Delivery (CD) follows Continuous Integration, deploying the code changes to a staging or pre-production environment after passing the Continuous Integration tests. Once deployed, other types of testing such as automated functional testing and performance test can be performed on the deployed code to assess its suitability for promoting to production with reduced manual intervention.

3). CONTINUOUS DEPLOYMENT

Continuous Deployment takes the concept of Continuous Delivery a step further by automatically deploying tested and verified code changes straight to production after successful testing in the staging or pre-production environment. A deployment to production is triggered after successful testing in the staging environment, and this entire deployment process is automated, meaning there is less chance of human error in the deployment process.

PERFORMANCE TESTING IN CI/CD

Alongside other forms of testing, performance testing can be utilised within CI/CD cycles to provide performance validation of code changes.

This has many advantages, for example the early detection of issues in the development lifecycle and early feedback on the performance of committed code changes, meaning faster time to production. Identifying issues at an early stage is more cost-effective, and stops the issue becomings embedded in the code, where it could become more costly to fix at a later date.

MEASURING PERFORMANCE AND ALERTING PERFORMANCE ISSUES IN CI/CD

In conjunction with running performance tests as part of the CI/CD, performance monitoring tools should be employed for data collection and analysis during the testing in order to ascertain the suitability of the code changes and deployed application in terms of performance. The performance monitoring tool should also send alerts in order to indicate in a timely fashion if performance of the deployed application strays beyond a define threshold.

CONCLUSIONS

As indicated previously, conducting performance testing early in the development cycle is advantageous to allow early detection and resolution of potential performance issues. Performing performance tests as part of the CI/CD pipeline, alongside automated functional test, provides an automated validation of software quality, although we should still perform traditional performance testing and monitor performance in production in order to identify potential issues which may not be covered by the performance tests scripts executed as part of CI/CD.

Posted on:

November 13, 2023

in

Performance testing

category.

Is there a project You'd like to discuss?

related insights

HTML, CSS and ARIA in Website Accessibility

Explaining DevSecOps

Artificial Intelligence (AI) and Machine Learning (ML) in Performance Testing

The Differences between Usability and Accessibility Testing

Why Incorporate Non-Functional Testing Early in the Software Development Cycle ?

Benefits / Drawbacks of Production Performance Testing in Test / Scaled Down Environments

How to Obtain Stakeholder Buy-In for Non-Functional Testing

Troubleshooting Performance Issues in Test Environments: A Real-World Scenario

‍Functional Test Automation: Why companies often feel let down by the outcome of their investment

The OWASP Top Ten - The Top 10 Web Application Security Risks

Avoiding Artificial Bottlenecks / Performance Issues in Performance Testing

Accessibility Guidelines - Testing for Accessibility and Understanding WCAG 2.1, the Upcoming WCAG 2.2 and Future WCAG 3.0 Updates

What is Volumetric Analysis ?

The Performance Testing Cycle / Process Explained

Service Level Agreements vs. Non-Functional Requirements for Performance Testing

Applying Automated Test Solutions

Combining Performance Testing and Chaos Engineering

Non-Functional Testing Strategy for Performance

Explaining Penetration Testing

Explaining Performance Testing

Explaining Accessibility Testing

Silk Central Upgrade - A simple upgrade ?

Virtual Machine LoadRunner Load Generators on Azure Setup

How Selenium WebDriver can be used for Performance Testing and its Pros and Cons

Performance Testing with SSO, OAuth

16 Tips Before You Automate

What is Automated Software Testing?

Load Testing and Performance Testing Tools

10 Top Tips for Creating Automated Performance Test Scripts