CI/CD for Test Engineers: How Deep Should We Go?
Galen Yang
Senior Test Engineer - Selenium | Playwright | Cypress | Appium | BDD | DevOps | Kubernetes | Azure x 4
The Growing Importance of CI/CD Pipeline in Automated Tests
A few years ago, CI/CD was considered a nice-to-have skill for test engineers. Many relied on DevOps teams to set up and maintain pipelines, and it was common to hear statements like:
However, the industry has evolved. Just as test engineers are now expected to have strong coding skills, they are also expected to design and maintain their own CI/CD workflows. CI/CD is no longer just an operational concern—it’s a core part of modern test automation. To stay competitive, test engineers may go beyond using CI/CD and learn how to architect it effectively.
Evolution of CI/CD Platforms
Previously, CI and CD were usually managed on separate platforms. For instance, Jenkins was used for CI to build and publish artifacts, while tools like Octopus Deploy handled CD workflows. This required additional effort to integrate multiple platforms for seamless deployment. Today, many companies have consolidated CI/CD into a single platform, such as Azure DevOps, simplifying management and reducing integration overhead. The decision to use a unified platform or separate tools depends on team standards and legacy infrastructure.
Where to Integrate Automation Tests in the CI/CD Pipeline?
Automation tests can be placed in either the CI pipeline or the CD release, depending on the testing needs:
While this is a recommended approach, the actual implementation should align with project requirements. Here's what I've been using in different projects so far in recent years, hopefully it'll give some inspiration.
CI/CD Implementation for Automated Testing
Before diving into specific implementations, it's essential to understand the fundamental differences between VM-based and container-based deployments:
VM Deployment (ADO) – .NET-Based (SpecFlow/Reqnroll, Selenium, RestSharp, Appium, C#)
CI Pipeline
CD Release
dotnet test "$(System.DefaultWorkingDirectory)/{}.AutomatedTests.API.dll" --logger:{Reporter} --filter:TestCategory={tag}
VM Deployment (ADO) – .Node.js-Based (Cucumber, Playwright, TypeScript)
CI Pipeline
CD Release
Container Deployment (Docker, Kubernetes, ADO, ACR, AKS) – .Node.js-Based (Cucumber, Playwright, TypeScript)
As containerization gains traction, many teams adopt Docker to build images and Kubernetes to manage deployments. Test engineers need to align with these architectures to ensure automation tests integrate smoothly.
Benefits of Container Deployment
However, container deployment requires additional expertise compared to VM deployment.
If you are not very interested in the DevOps domain, the fact is that for automated testing CI/CD, VM deployment is sufficient for most projects.
As for how to implement container deployment, we need to configure a few things:
Key Considerations for Container-Based CI/CD
Container-based deployment introduces additional complexities compared to VM-based deployment. Several key areas require careful planning:
Container Registry Management
Kubernetes Cluster Management (AKS or Equivalent)
Secret Management with Key Vault
CI Pipeline
CD Release
But deploying test containers is not the end of the process. We need to ensure the tests execute as expected and retrieve relevant logs. There are two ways to monitor the logs.
One approach is to add an additional task in the release to fetch logs from the AKS cluster; Another approach is to check logs directly from AKS by examining the pods created by the job, attaching a Sidecar to capture output or using tools, such as Lens/OpenLens, offering an intuitive UI to view logs and troubleshoot issues efficiently.
The last option is to implement health checks (livenessProbe, readinessProbe) and automatic rollback policies to handle failures.
Conclusion
For most automation projects, VM-based CI/CD deployment is sufficient. However, as teams migrate to containerized architectures, test engineers must adapt to ensure automated testing integrates seamlessly. Mastering CI/CD enhances a tester’s ability to contribute beyond traditional testing roles, making them valuable assets in DevOps-driven environments.