Test Automation Strategy For Beginners Ebook
Test Automation Strategy For Beginners Ebook
For Beginners:
How to Achieve Continuous
Testing in DevOps
And within DevOps is testing – including manual and automated test plans, test cases of all types, automation scripts, test
environments and their definitions, test data, test results, execution logs, and reporting output.
Testing no longer belongs at the end of the process. With the move from waterfall to agile, testing is now central to the entire
software delivery lifecycle — or at least it should be.
As teams strive toward continuous testing in DevOps, the role of automation becomes all the more essential. Automation in
DevOps is critical for orchestrating the what, when, and why of end-to-end test processes. Because of this, teams need a
sophisticated test automation strategy that will allow them to achieve continuous testing in DevOps.
See how you can get started. Keep reading to learn how you can overcome continuous testing challenges with the help of a
strong test automation strategy.
However, most tech professionals work inside of large, established, diverse organizations. In this “real world,” we need to pick battles,
work within compliance guidelines, and interact across organizations, geographies, and time zones.
Here are a few tips to consider while working towards continuous testing in DevOps.
As with most big things, it’s best to begin with what you have control over and start planning from there. In this instance, that’s the
DevOps pipeline.
Pipelines are the fundamental pathways that delivery orchestration follows. They consist of all tasks and deliverables that software
delivery teams execute on to bring ideas into production via software. The “continuous” aspect of the DevOps pipeline considers the
iterative and repeatable nature of software delivery. One methodology, SAFe, considers cyclical segments often owned by different
teams interacting constantly along a pipeline (Figure 1.)
AGI LE R E LE A S E T R A IN
D E V E LO P M E N T PRODUCTI ON
RE SULT S RE PORT
Regardless of your choice of implementation, a critical first step is to identify and document your pipeline.
If you are delivering software, then you have a pipeline. It may be partially or poorly automated. It may be broken by organizational
delays. It may be blocked completely for months at a time — perhaps by testing itself. However, it is still a basic pipeline and a good
way to begin is to map it out.
Start with any flowcharting technique and lay out the steps of a basic flow that you already do. Or, lay out a way that could be benefi-
cial to implement and automate. This simple model is a quick exercise any team can do.
CREATE
DOWNLOAD CREATE
TROUBLE- ADD TO CONNECT CONTINUOUS
BUILD FUNCTIONAL EXECUTE
SHOOT TEST TO CD JOB TO
FROM TEST TEST
SCRIPT SUITE SERVER EXECUTE &
DEV SCRIPT
REPORT
TI ME
WA ST E D WAS TED WAS TED WAS TED WASTED SAVI NG
TIME? TIME? TIM E? TIM E? TIM E? O PP
Once you have even a small set of these pipeline blueprints vetted, with the areas of most time savings identified, it’s time to begin
pulling in test automation strategy and other techniques to drive your DevOps orchestration pipeline, piece by piece.
COMPATIBILITY TESTING
Quickly spin up multiple operating system types or versions, simultaneously, with a command. Containers make this even easier as
you can deploy to different clouds. Functional tests, for instance, could be run against many operating systems. Similarly, you can
perform multiple simultaneous browser tests, database types, etc.
LOAD TESTING
Using load generators to drive simulated traffic from multiple regions and up to large scale was one of the first use cases for cloud
computing. Load tests can be triggered by a build job and results can be passed in an automated fashion as part of a performance
regression suite.
A never-ending saga in the testing industry revolves around automation in DevOps. It doesn’t matter how you feel about what is pos-
sible to automate, when you should start, how to manage test fragility, or who should create or execute tests. What does matter it that
you plan to utilize a test automation strategy with your CI/CD orchestration.
Functional test automation has always been a great place to start with automation. For web, recording technology is mature and stable,
so even junior-level test engineers can reliably capture basic tests to replay. Once sets of automated functional tests are proven, repeat-
able, and combined into regression suites, it is a simple matter of ensuring the test environment is available — perhaps in a cloud — and
running the suites as part of the build process.
However, mobile testing has matured and recording or scripting tests to run on emulators or real devices can be highly automated. In
turn, this automation can be triggered as a CI/ CD orchestration job, to be run “hands free.”
The earlier teams start testing for scale and performance, the fewer problems they will encounter at the “Ops” end of the DevOps cycle.
When the overall test orchestration runs at scale upon each code commit, the developers have much more time to focus on new
features and to maintain high code quality that, overall, leads to faster release cycles. DevOps leadership ought to enforce test
orchestration processes as a standard working flow and enable their direct reports to be successful in authoring, maintaining,
and executing test automation strategy.
START SMALL
As with every complex challenge, start small and go from there. The key to successful continuous testing in DevOps lies in building
trust between the dev and test practitioners. To build trust, there needs to be a small and proven smoke or sanity test suite that runs
automatically within CI (Jenkins) upon each code commit.
Once trust is built for a small test suite, the next step is to scale the number of platforms that undergo these tests to “certify” said
tests and make them an integral part of the DevOps pipeline.
Next is scaling the test suite to cover more essential test scenarios and platforms. The import- ant thing in scaling up a “trustable” running
suite within the CI is to continuously maintain the coding practices and test certification processes to maintain trust between team members.
Whether you’re just getting started with automation or you’re well on your way, Perfecto’s expertise can take you to the next level. Soon
you’ll be well on your way to automated, accelerated testing with fewer defects and faster deliveries.