0% found this document useful (0 votes)
102 views11 pages

Shift Gears With Shift Left Whitepaper

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views11 pages

Shift Gears With Shift Left Whitepaper

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Shift gears with shift left

How to speed up digital app development cycles without compromising quality


Whitepaper

Table of contents

What is shift left? 3

The evolution of software development 3

The testing bottle neck 4

Enter shift left 5

The shift left continuum 6

Shift left in practice 6

Organizational impact of shift left 6

Tools and enablers for shift left 7

Summary 8

A tester’s checklist on the path to automation 9

Digital.ai | Shift gears with shift left 2


Whitepaper

What is shift left?


Shift left is one of the biggest buzzwords in digital application development. Why?

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.

The demand for


speed and quality
are unprecedented

1960 Mainframe
Delivery cycle time

1980 Client/server

1990 The web

2010 The age of


the customer

Source: Forrester
Time

The evolution of software development


As software delivery cycles grew shorter, software development underwent a paradigm shift. Sometime during
the last decade of the 20th century, as the internet started to gain a foothold and reliance on technology
became ubiquitous, a paradigm shift started to brew.

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

Digital.ai | Shift gears with shift left 3


Whitepaper

The cost of error


The underlying logic behind the new development practices is to allow business agility and adaptability; not
less important is the ability to catch problems early. Research has shown that the earlier bugs and issues are
detected, the easier and cheaper they are to fix.

Relative cost to fix,


based on time of detection
30x

25x

20x

15x

10x

5x

0
Requirements/ Coding Integration/ System Production/
architecture component acceptance post-release
testing testing

Source: National Institute of Standards and Technology

The testing bottle neck


While greatly improving speed of development, there is one thing that agile and DevOps do not fix: testing
is a still a phase of its own conducted by dedicated testers. The result of this separation is that testing has
remained, and even grown, as a bottle neck.

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”.

Over the past decade we have witnessed a paradigm shift in software


development, focused on speed.

Digital.ai | Shift gears with shift left 4


Whitepaper

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.

SImply put: Shorter time x same number of tests = growing backlog

Enter shift left


Shift left means conducting quality and testing activities much earlier in the development cycle. It means
testing starts as soon as development — or even design — begin. Furthermore, it places responsibility for
quality in the hands of developers as well as test engineers.

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.

Digital.ai | Shift gears with shift left 5


Whitepaper

The shift left continuum


While companies differ in how far left they progress on the shift left scale, they do share several common
aspects:

• Focus on test automation — even in the early unit testing stage

• 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

Amazon Facebook Spotify Google Microsoft


No testing — rely A combined High number
on developers model with of testers —
and easy rollback matrix software
responsibilities development
engineers in test

Shift left in practice


Whatever your flavor of shift left, introducing quality and automation early to the development process
requires some changes. These include:

• Roles and responsibilities

• Skill sets

• Processes

• Infrastructure and tools

Organizational impact of shift left


From an organizational perspective, the growing focus on early automation implies a resource shift from
manual testing to test automation.

Performance and volume Performance and volume


10% 5%

Environment and data Environment and data


20% 10%

Automation testers Exploratory testers


25% Domain expertise, business rules
10% Regression automation,
services vizualization skills testing, acceptance testing

Software engineers — testers


Manual testers Automation roadmap, continuous
60% Manual system testing, manual
integration testing, acceptance testing
60% testing, user story thinning, in
spirit progression automation,
service vizualization skills,
engineering mindset

Digital.ai | Shift gears with shift left 6


Whitepaper

The following table shows the effect shift left has on different roles and what they can do to get ready
for the change:

Role Key change What you need to do

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.

• Learn about CI and parallel execution.

• Learn to automate across platforms — web,


mobile.

• Provide your team members with your


automation and testing expertise.

Tools and enablers for shift left


A shared digital quality lab
A shared testing environment — comprised of browsers, mobile devices, simulators, and emulators — that
allows large scale parallel execution is critical. Such a shared environment helps:

• Achieve scale and speed

• Uniform testing processes across digital platforms

• Share resources, promoting efficiency

• Share and reuse test cases between developers and testers

• Drive quick and valuable feedback

• Consolidate test results, enabling analytics and actionable insights

Digital.ai | Shift gears with shift left 7


Whitepaper

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.

Learn more at Digital.ai

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.

Following is checklist of activities that will help you achieve this:

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)

Install XCode on your


Learn how to
computer; build an
use Git
iOS demo app and
record an XCUITest

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

Digital.ai | Shift gears with shift left 9


Whitepaper

Your continuous testing


cheat sheet
Here is a list of everything you need to do in order to build a mobile app test automation project that runs
hands free as part of your CI.

Prerequisites:
• Mobile application

• Mobile devices — local or remote

• Mobile application test development tool (Appium Studio, Appium, XCTest, Espresso)

• Repository (Maven, Gradle...)

• Continuous integration tool

• Grid execution

• Test cases

• Device and OS coverage requirements

This cheat sheet uses Appium Studio, Eclipse, GIT, Jenkins, Jira, and Digital.ai Continuous Testing, formerly,
Experitest SeeTest, Digital assurance lab.

1. Develop tests using a test development environment (Appium Studio)


Connect to a real device or an emulator

Record your tests or use a test editor

Run your tests to validate them

Export your code for use in an IDE

2. Create an automation project using your IDE (Eclipse/InteliJ)


Create a new Java class

Create a GIT repository

Clone your GIT and create Java Gradle project

Add automation framework dependencies

Build a basic framework

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

Set up your automation (which tests to run; parallelization)

Add build ID key to your tests

Execute in your IDE Eclipse to validate

Digital.ai | Shift gears with shift left 10


Whitepaper

3. Set up your continuous integration tools to trigger automation (Jenkins)


Configure GIT repository

Create a Jenkins job

Configure environment variables (ENV VARS)

Configure parameterized build

Execute from Jenkins and check reports

4. Run your continuous testing


Set up job execution trigger (commit new code/procedural cron/web-hook execution)

Check your triggering works and that reports are gathered, presented, and analyzed

5. Watch how your feedback time and quality KPIs improve!

Digital.ai | Shift gears with shift left 11

You might also like