Shift Gears With Shift Left Whitepaper
Shift Gears With Shift Left Whitepaper
Table of contents
Summary 8
In the “age of the customer”, customer experience is what makes or breaks organizations and digital
experiences are at the forefront of customer experience. Web and mobile applications are used to provide
consistent customer experiences across all channels, at any time and everywhere.
Development organizations are under pressure to constantly ship new web and mobile applications, within
shorter timeframes but without compromising quality.
1960 Mainframe
Delivery cycle time
1980 Client/server
Source: Forrester
Time
Several new development methodologies and processes were introduced, all with the purpose of speeding up
the development cycle: continuous integration, agile, DevOps, and continuous delivery are the most notable.
There is a common thread to these new practices: developing in small increments, committing code often, and
fostering communication — all designed to allow change and achieve early validation of software.
Agile Continuous
Manifesto delivery
Fast
release
Continuous DevOps
integration
25x
20x
15x
10x
5x
0
Requirements/ Coding Integration/ System Production/
architecture component acceptance post-release
testing testing
Paradoxically, the shorter the release cycles, the more testing slows down the cycle, especially if it is not
automated.
The reason for that is simple — the number of tests is only partly related to the amount of new functionality in
a release. The vast majority of tests are regression tests, designed to ensure that nothing was “broken”.
Another issue with the separation of the development and testing phases is the misalignment of ownership
and goals — the person in charge of writing code is not measured on its quality and has no incentive to ensure
it is “automation friendly”.
Many developers naturally consider these aspects, but it is not part of their responsibility — and when
deadlines loom on the horizon, quality takes a back seat. That is exactly where shift left comes in.
Requirements
Design
Development
Testing
Shift left Production
Shift left is more than a simple change in timing; shift left implies a shift in mindset, a shift in responsibility, as
well as a shift in organizational processes and structure.
• More collaboration and resource sharing between dev and test teams
• Quality focus throughout the development lifecycle including test focused design methodologies such as
testing driven design (TDD)
No testing Separate
org; no QA Developers On adwords — testing group
responsible for dedicated team
testing — there of test
are no testers engineers
• Skill sets
• Processes
The following table shows the effect shift left has on different roles and what they can do to get ready
for the change:
Developer Your focus is now a product, not • Learn automation principles — writing code
code. You are required to factor that can be easily automated.
quality into your design and
• Learn about QA methodologies.
automate your unit testing.
Tester There will be fewer testers who • Decide your direction — domain expert or
focus on exploratory testing and automation engineer.
provide the user perspective rather
• To be a domain expert, become familiar with
than mass use case testing. You are
the product business drivers, communicate with
a domain expert and a customer
developers, and develop your soft skills.
champion.
• If you would like to become an automation
engineer, start learning a coding language,
though you do not need to become an expert
programmer. See checklist in appendix.
Automation Your role is expanding from simply • Improve your knowledge of coding languages
engineer writing tests to enabling wide-scale and your ability to read code, so you can write
automation and rapid feedback. stable and efficient tests.
An integrated toolchain
One of the things that the paradigm shift in software development helped change is the dependence on
monolithic systems that perform a process end to end. In today’s fast paced DevOps/agile/CI culture, different
tools may be used by different teams to perform a specific function in a way that best suits their need.
For example, select a test execution environment that can run tests developed in various languages and in
any framework. That way your developers can use XCode or Espresso to develop tests, while your automation
engineers may prefer Appium.
A well-integrated toolchain prevents manual intervention, reducing errors and speeding up the development
cycle. Choose open tools that can adapt and integrate easily to streamline handovers and avoid disconnects.
Summary
The need to release digital applications often leads to paradigm shifts in application development.
While methodologies such as Agile, DevOps, and CI/CD are speeding up development, quality has often been
left behind. In order to ensure that speed does not come at the expense of quality, organizations are bringing
in quality much earlier in the development cycle — or “shifting left” the timing of when quality is introduced on
the development timeline.
Shift left requires a change in organizational structure, in tools, and in methodologies, but every organization
can find its own shift left sweet spot on the shift left continuum, and the rewards are substantial.
About Digital.ai
Digital.ai enables enterprises to focus on outcomes instead of outputs, create greater business value faster, and deliver secure digital
experiences their customers trust. The Digital.ai Value Stream Platform seamlessly integrates all the disparate tools and processes across the
various value streams, uses data and AI/ML to create connective tissue between them, and provides the real-time, contextual insights required
to drive and sustain successful digital transformation. With Digital.ai, enterprises have the visibility they’ve been seeking to deliver value, drive
growth, increase profitability, reduce security risk, and improve customer experience.
Digital.ai | Shift gears with shift left ©2021 Digital.ai is a trademark of Digital.ai Software, Inc. | 8
Whitepaper
Appendix 1:
A tester’s checklist on the path to automation
To become an automation engineer, you will need to learn how to code. Having said that, you do not need to
become an application developer — you need to learn how to develop tests, which includes understanding
application code.
Learn to code in
the most common
Install Jenkins and
language in your
create a script
organization. We
that downloads
find that Java is
Git projects and
the most common
runs them Build a basic
Download Appium language for
Java project
studio and record a testing.
with IntelliJ (or
test. Edit the test using other IDE such as
Object Spy and XPath Eclipse)
Open an account
Record a test in in GitHub
Espresso
Use Gradle or
Maven script to Install Android
create a Selenium SDK and create a
project in Eclipse demo application;
or InteliJ, build run on device and
Take a tutorial on
a basic Google emulator
Gradle and Maven
search test
Prerequisites:
• Mobile application
• Mobile application test development tool (Appium Studio, Appium, XCTest, Espresso)
• Grid execution
• Test cases
This cheat sheet uses Appium Studio, Eclipse, GIT, Jenkins, Jira, and Digital.ai Continuous Testing, formerly,
Experitest SeeTest, Digital assurance lab.
Add Grid configuration to project — URL and access code (or check in Appium Studio to
automatically include)
Paste your tests in the project; define target platforms and devices
Check your triggering works and that reports are gathered, presented, and analyzed