a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of...

17
a LEAPWORK whitepaper AGILE TESTING

Transcript of a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of...

Page 1: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

a LEAPWORK whitepaper

AGILE TESTING

Page 2: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

INTRODUCTION

AGILITY IN I.T. PROCESSES

AGILE DEVELOPMENT

AUTOMATED REGRESSION TESTING

HOW TO ACHIEVE AGILE TESTING WITH TEST AUTOMATION

AN AGILE AUTOMATION STRATEGY

COLLABORATION IN AGILE TEAMS: CODELESS AUTOMATION FOR ALL

THE BENEFITS OF AGILE COLLABORATION

CONCLUSION

34567

1211

1315

Page 3: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

In a world where new business models are disrupting established revenue

streams and expectations to the customer experience are constantly increasing,

businesses everywhere are struggling to stay relevant.

Staying competitive requires efficiency: fast market adaptation, well-organized

change management, and the ability to secure emerging opportunities. One

of the ways to get there is through agile transformation.

Agile transformation helps businesses manage change and pursue emerging

opportunities in any market situation. A key ingredient of this approach is to

implement agile testing.

IntroductionHow Test Automation Supports Agile Transformation

Page 4: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

4

a LEAPWORK whitepaper: Agile testing

AGILITY IN I.T. PROCESSES The aim of agile transformation is for businesses to reach a state of change readiness

that lets them embrace the unknown. Internally, this means establishing a smooth

and predictive path for converting ideas into practice. The actual implementation

of agile principles is usually done by introducing new ways of managing projects

and development processes in a company, i.e. Scrum and/or SAFe (Scaled Agile

Framework).

Although agile transformation is relevant for every business, companies whose value

chain is largely based on IT processes tend to be the first to embrace the concept of

agility. Not surprisingly, Scrum, SAFe, or the like, are first and foremost applied to the

IT processes in enterprises, especially in software development.

Before the introduction of agile development, projects were often managed using

the “waterfall model”. With this approach, each discipline had a dedicated focus and

place in the project timeline. A project would begin with an outline of all requirements

for the software to be developed. Then developers would begin building the software

– this could take months or even years – and then testers would take over the final

product and begin testing it. Not surprisingly, the waterfall model has proven to be

too rigid of an approach for modern software development.

FIGURE 1: The waterfall model.

Requirements Planning

Development

Testing

Maintenance

Page 5: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

5

a LEAPWORK whitepaper: Agile testing

AGILE DEVELOPMENTIn an agile project model, there is no dedicated, focused time for each discipline.

Instead, the project timeline is broken into iterations – called sprints – that involve

all disciplines: scoping, development, testing, and more. Typically, the duration of

a sprint is two to four weeks depending on the number of people involved, the

maturity of the department, etc.

Working in short, focused iterations combined with the lack of a dedicated testing

phase presents a challenge to testers: How and when to verify the quality of the

software in its entirety?

As shown in the figure below, the number of features in a software will accumulate as

sprints are completed. Assuming that the project is not supplied with additional test

resources along the way, the accumulation of features means that during each sprint,

testers will only have time to test the recently developed features and will not be able

to do regression testing, i.e. testing how the new features affect existing features.

The regression testing issue is a well-known problem in software development. Agile

development has just accentuated the problem; with iterative sprints, it has become

increasingly difficult to answer questions such as “How is the quality?” and “When

can we do a release?”.

FIGURE 2: The regression issue. As features to be tested accumulate, and with a fixed amount of testing resources available, testers are forced to make compromises.

SPRINT 1 SPRINT 2 SPRINT 3

Test resources Features to test

New

New

New

Page 6: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

6

a LEAPWORK whitepaper: Agile testing

AUTOMATED REGRESSION TESTINGAgile sprints result in a regression testing problem. Of course, one way to solve this

would be to hire more testers. However, this would increase project costs significantly

and is not a scalable solution. Another approach could be to go back to doing end-

to-end testing from time to time, but this would defeat the purpose of agility.

This leaves us with just one option: Automation.

With test automation – in this case, automated functional UI testing – robots are

instructed to execute the repetitive, predictable test scripts allowing testers to focus

on testing the new features of the latest sprint. The figure below illustrates how test

automation supplements the testing efforts during sprints.

With test automation implemented, it would still be the testers themselves designing

test cases and monitoring the results, but the main regression efforts are carried out

by robots. To sum up, automation reduces risk by ensuring that any uncertainties are

limited to the recently developed features.

FIGURE 3: Automated regression testing. Robots take care of regression testing, while testers continue to focus on testing new features.

SPRINT 1 SPRINT 2 SPRINT 3

Test resources Features to test Test automation

New

New

New

Page 7: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

7

a LEAPWORK whitepaper: Agile testing

HOW TO ACHIEVE AGILE TESTING WITH TEST AUTOMATIONIt’s important to realize that the agile approach contains some contradictory elements

that testers must deal with. For example:

Testers should focus on testing the new features of the current sprint and use

automation to take care of regression testing.

At the same time, test automation cases should not, and cannot, be built for software

that is not stable, and features are usually not stable before close to the end of a

sprint.

This creates a problem: At which point during a sprint should testers focus on new

features, and when should they build the automation cases for these features? In

other words, how can testers best allocate their time during sprints? The figure below

illustrates the issue.

FIGURE 4: The processes of a sprint.

It is unrealistic to build test automation cases for features of the current sprint because:

1. features are not stable enough to be tested before the end of a sprint, and;

2. requirements and the implementation of them can change during a sprint.

Instead, testers should focus on how individual features can be tested and rely on

manual functional testing of the current sprint features. This ensures flexibility, and

testers avoid wasting time building automation cases for features that might change

during the sprint.

SPRINT 1

Stable features

Testing

Development

Requirementsplanning

Page 8: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

8

a LEAPWORK whitepaper: Agile testing

Then, in the following sprint, test cases for features from previous sprints (i.e.

regression testing) should be automated. At this point, existing features are stable

enough to be tested and, by automating the testing of them, testers can keep their

focus on new features. The figure below illustrates how to organize sprints to include

test automation.

A common method for structuring testing is to begin each sprint by outlining the

manual tests needed for specific features. This can be done with a simple mind map

like the one on the next page.

FIGURE 5: Integrating test automation in a sprint.

SPRINT 2

SPRINT 1

Stable features

Stable features

Manual testing

Manual testing

Development

Development

Test Automation:Sprint 1 features

Requirementsplanning

Requirementsplanning

Page 9: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

9

a LEAPWORK whitepaper: Agile testing

Then in the following sprint, testers should select which cases should be promoted to

automated tests. Usually, it doesn’t make sense to automate all manual tests, so you

would typically automate a subset or a combination of test cases.

The important part here is to minimize the risk of regression errors, so the testers’

knowledge and insight about the product are crucial at this point. In other words, this

process of selecting which test cases should be automated and which should not is

an important part of a tester’s profession.

FIGURE 7: Promoting specific test cases for automation.

FIGURE 6: Mapping how to test a feature.

FEATURE

FEATURE

Page 10: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

10

Implementing test automation as part of agile testing is dependent on several factors;

organization, the velocity of a Scrum team, the ease of automation, etc.

Ideally, all members of a test team should be able to participate in the creation and

maintenance of automated test cases. This ensures a homogeneous, scalable, and

fast-working team – in line with the agile philosophy.

Page 11: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

11

a LEAPWORK whitepaper: Agile testing

AN AGILE AUTOMATION STRATEGYLEAPWORK’s approach to test automation is that all testers in a team should have

ownership of the automation effort; each tester should be enabled to build automated

test cases and to monitor and analyze the results. If an entire team can take part in

utilizing automation, then each team member will also reap the benefits and have

time freed up for testing new features.

In other words, for test automation to truly support the objective of being agile, the

underlying automation strategy should not be dependent on only a few technical

specialists. Instead, the strategy should be based on making automation a natural

part of each tester’s profession. This will make test automation much more efficient

and scalable.

It’s important to spend a little time developing a test automation strategy. Having

a clear strategy will help you save valuable time during sprints, making your testing

efforts even more agile. There are 8 key aspects you should take into consideration

when drafting your test automation strategy:

Scope

Test automation approach

Risk analysis

Test automation environment

Execution plan

Release control

Failure analysis

You can download the full guided checklist

DOWNLOAD TEST AUTOMATION CHECKLIST HERE >

Page 12: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

12

a LEAPWORK whitepaper: Agile testing

COLLABORATION IN AGILE TEAMS: CODELESS AUTOMATION FOR ALLThe rising adoption of agile frameworks is slowly shrinking the gap between IT

and business, allowing for more collaboration and continuous delivery. In order to

facilitate this collaboration, automation has been brought into play.

However, when we look at software automation, most tools still depend on code.

This means that only a selected few can take part in the automation process. So

even though software automation was introduced to facilitate collaboration, it has

suddenly become a burden due to complex and code-based automation tools.

Due to these obstacles, codeless automation tools have been brought into the

picture. Instead of having humans adapt to machines, codeless tools have forced

machines to adapt to us by using our very own language and thought process.

An example is LEAPWORK, which allows users to design and run automated test

cases in a language that everyone understands – visual flowcharts. This visual

language hides all unnecessary complexity by using real-world examples that foster

a better shared understanding of how the application behaves. The team’s ability to

communicate and collaborate in the software development process accelerates as a

result.

Page 13: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

13

a LEAPWORK whitepaper: Agile testing

THE BENEFITS OF AGILE COLLABORATIONAgile processes cannot be achieved without collaboration. When people are brought

together in a work setting, they can offer various perspectives on problem solving

and innovation. Therefore, by bringing different talents together, you create a pool

of people with different skills and knowledge that will bring new and alternative

solutions to test automation.

So, what is the key enabler of collaboration? Communication.

Codeless test automation narrows the communication gap between team members

by allowing everyone to create, use and share automated processes. The benefits of

codeless collaboration in agile test automation are:

1. Faster Time to Market

Fostering collaboration through codeless test automation enables faster

time-to-market. Teamwork and communication speed up the entire process by

allowing everyone to create and share valuable test automation flows. By breaking

down functional silos, the team’s ability to create and deliver value

accelerates as a result.

2. Improved Flexibility Within the Organization

Collaboration and teamwork are the foundations of agile, which allow teams to

be more flexible and responsive. The more collaboration within an organization,

the higher the ability to handle sudden change. This improved flexibility helps

the team respond to quick and frequent changes in requirements during the

overall development of the application.

3. Better Alignment With Stakeholders

Using a common language that everyone can use allows key stakeholders to be

actively involved in the QA process. This means that you’ll be able to leverage

their input into your product development process and, therefore, make sure

that there’s an optimum alignment between the customer’s needs and the

product’s features.

Page 14: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

14

a LEAPWORK whitepaper: Agile testing

4. Increased Profitability

Empowering everyone to build and understand each other’s test cases will give

your team independence and allow them to work in generating innovative ideas

that will propel QA forward. No more time wasted in deciphering other person’s

test cases.

An effective collaborative culture is synonymous with accelerated results. Teamwork

and communication speed up the entire process and make it easier to produce

anything, meaning that you can bring products to market faster. This synergy equals

reduced costs, more flexibility in adapting changes, and increased capabilities.

Page 15: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

15

a LEAPWORK whitepaper: Agile testing

CONCLUSIONBusinesses are now operating at a faster pace and, therefore, software development

needs to keep up with business demands. In order to guarantee software quality at

this development rhythm, the traditional software development process has shifted

towards more agile methodologies.

This agile transformation is an attempt of reaching a state of readiness, including fast

market adaptation, well-organized change management, and the ability to secure

emerging opportunities.

With the agile approach, software features are developed and released in frequent

iterations, called sprints. From a testing perspective, these short and frequent

iterations significantly restrict the time available to do regression testing, i.e. ensuring

that new features are not generating unforeseen issues in the existing software.

Therefore, applying the agile approach to software development presents a challenge

to testers; how and when to verify the quality of the software in its entirety?

To achieve agility, both developers and testers need to be able to work agile – and

test automation is part of the solution.

Key takeaways

• The agile approach contains some contradictory elements challenging testers on

how they should allocate their time during sprints.

• Automated functional UI testing can take over regression testing during sprints,

but test automation cases should not be built for the software before features to

test are stable.

• Test automation reduces risk by ensuring that any uncertainties are limited to the

recently developed features.

• We recommend building an automated regression suite gradually: Select test

cases from the previous sprint you want to promote for automation, build them,

and then run these as automated tests in sprints moving forward.

• The process of selecting which test cases should be automated and which should

not is an important part of a tester’s profession.

Page 16: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

• All testers should be empowered to utilize automation in their daily

work, and a test automation strategy should not be dependent on only

a few technical specialists.

• Codeless tools allow everyone in your team, as well as internal and

external stakeholders, to collaborate and work towards the highest

standard of QA.

• They provide all relevant teams with a shared process to collaborate

on test automation.

ww

w.leap

work.com

FREE TRIAL

To experience an automation tool that allows just that, try

LEAPWORK for free - the only all-in-one automation platform for

non-developers, technical specialists, and business users alike.

Page 17: a LEAPWORK whitepaper AGILE TESTING...Agile sprints result in a regression testing problem. Of course, one way to solve this would be to hire more testers. However, this would increase

a LEAPWORK whitepaper