Autify provides a way to automate your end-to-end testing and run it reliably without manual intervention. It can also make your CI/CD pipeline safer. This document describes what CI/CD is and how Autify can improve your CI/CD process.
What is CI/CD?
CI (Continuous Integration) and CD (Continuous Delivery/Deployment) have become popular in the current software release cycle. There are several definitions of CI/CD but the key concept of CI/CD is "Continuous". Without CI/CD, your software release process needs a lot of manual steps and it is not fluid i.e. not "Continuous." Examples of problems you could experience without CI/CD include needing to build and upload artifacts such as Docker images or JAR files manually after a code merge or when you need to deploy software to your staging/production servers by following a deployment procedure. In such cases, the processes require human intervention and also human operations e.g. running shell scripts and/or manual testing. By automating these processes, the time from code merge to production release will be reduced and you can deliver features and value to your customer faster. This is why people are interested in CI/CD to make their release cycle faster.
What prevents people from using CI/CD fully?
Manual processes are still used widely. Why? People rely on humans for testing/QA. Even though they can automate the build and deployment process, they typically don't have a good way to test their release phases holistically. Therefore, there is a gap between build and deployment that prevents them from making their CI/CD process fully “Continuous” because people don’t think it’s safe to deploy without enough testing/QA.
To gain confidence before production release, people typically have staging environment(s) that persist and are very similar to their production environment. The only difference is there are no customers using the staging environment. Once the artifacts are built after code merge, they deploy those artifacts to the staging environment automatically or manually. Then, they verify whether the changes are working well in near-production environments so that they can decide to deploy in production or not. Some people also run the same test scenarios in production after deployment as well and rollback to the previous revision if something goes bad in production.
These testing/QA processes are mostly manual today and therefore don’t feel their CI/CD automation is fully continuous.
Autify can provide a reliable solution here. You can create a test scenario to verify your website's functionality end-to-end e.g. login, create a resource, run some job from real browsers with various assertions like text, enabled/disabled, etc. This can cover the majority of your QA process in a repeatable manner without human resources and verify your staging and/or production deployment automatically.
What does it mean to integrate CI/CD with Autify?
The main hook points for Autify CI/CD integrations are after deployments to your persistent environments such as staging or production. It enables you to verify the end-to-end user experience right after deployment and notice if the new deployment has any regression issues immediately before continuing on to the next step.
For example, you can inject an Autify validation step right after your staging deployment in your current CI/CD pipeline. In this case, your code merge will be deployed to staging automatically and then Autify will run pre-recorded test scenarios against the staging endpoint right away to ensure the new deployment doesn't break these test scenarios. You can also connect a production deployment step after the Autify validation step for staging and start production deployment automatically if Autify tests pass in staging. You might need additional manual validations before production release, but Autify can cover the majority of hygiene checks and reduce your manual validations significantly.
You can also add the same Autify validation step after your production deployment to ensure the production passes regression testing. This can also be expanded to a more advanced solution - running Autify validation to production continuously every hour. Just like synthetic testing, this scheduled end-to-end testing can verify your production environment proactively and notice an issue before your customers do. These issues could be caused by dependency issues, internal performance issues, or others without your deployment. Thus, it is a good practice to proactively monitor your production environment periodically.
Another advanced use case of CI/CD integration is running Autify against your ephemeral environments (environments that last for a short period of time) such as a preview endpoint for each pull request so that you can run the same validation even before code merge. See the other document for more details.
How to integrate CI/CD with Autify?
You probably use a CI/CD solution to automate your release pipeline. We provide our official integration documentation for some of platforms like GitHub Actions, CircleCI, Jenkins and GitLab CI/CD. Even if your solution isn't included in the list, you can still hook it up by using Autify Command Line Interface (CLI) easily. In either way, by adding a few lines of configuration (or setting up a plugin), you can run your Autify test scenario or test plan automatically and optionally wait for the result.
Find our official CI/CD documentation below and try it out!