testingcontinuous-integrationdevopsmanual

Manual Testing in Devops Pipeline


We are currently doing traditional waterfall model where we have manual and automation tests in SIT and UAT environments. We are moving to Agile/Devops and I am working on POC on Devops. Based on my research, Devops is suited for CI and CD meaning the testing is automated and pipeline is automated from Dev to Production. However when we implement, we want to do automatic code deployments in different environments but stop the pipeline to conduct manual QA testing and Manual UAT before the code is signed off for PROD deployment. If I use Jenkins for Devops, is it recommended to stop the pipeline for few days until manual QA is completed and manual approval is done? How is manual testing accounted in Devops implementations? Any insights would be helpful.


Solution

  • CI and CD are engineering practices that enable teams to improve productivity. And these should be implemented step by step - first implement CI and then CD. So, build pipelines as you mature in the DevOps processes.

    For example, leverage Jenkins pipeline to first orchestrate CI pipeline wherein the following is automated-

    1. application build,
    2. unit testing,
    3. code coverage,

    The output of this stage are binaries that are deployed in a binary repository like Nexus.

    The next step after successful implementation of CI, is CD - the process to auto-deploy artifacts from one environment to another. Consider we need to deploy artifacts (binaries) in QA for testing. You can extend your CI pipeline to perform CD by moving artifacts from DEV to QA systems. And then stop here, since movement to next environment will be done only when manual testing records are approved. This means progressing to next environment will be manually triggered. Hence, while planning to build a CD pipeline, chalk out the essential steps that should be automated and then progress step by step.

    Once you are ready with automated tests and tools, you then complete your CD pipeline and automated the movement to artifacts from DEV-QA-NONPROD, etc.