Role Of Qa And Testing In Agile 1225221397167302 8

23
© Copyright GlobalLogic 2008 Role of QA and Testing in Agile Mayank Gupta

Transcript of Role Of Qa And Testing In Agile 1225221397167302 8

© Copyright GlobalLogic 2008

Role of QA and Testing in Agile

Mayank Gupta

© Copyright GlobalLogic 2008 2

Time for Introduction

• Working with GlobalLogic India

• Practicing Agile for last 3 years

• Certified Scrum Master (CSM), OCP, ISTQB

• Published Articles in Scrum Alliance & CM Journal

• Blog - http://thought-reader.blogspot.com/

© Copyright GlobalLogic 2008 3

Agenda

• Agile Testing – An Overview

– Traditional vs. Agile Approach

– Agile Values

• Agile Testing practices

– Test Driven Development

– Continuous Integration

– Regression Testing

– Exploratory Testing

• Role of a Tester in an Agile Project

• A Case Study

© Copyright GlobalLogic 2008 4

Let us brainstorm

• Does agile help QA?

• What is the difference between testing in traditional environment and agile environment?

• Do testers and QA people have a role in agile software development environment? If yes, what?

• Why QA is so much neglected in agile?

• Do developers and testers remain at opposite poles as it happens in traditional testing model (though not always)?

© Copyright GlobalLogic 2008 5

Traditional software development

© Copyright GlobalLogic 2008 6

Agile testing -Why?

© Copyright GlobalLogic 2008 7

Traditional vs. Agile Approach

Criteria Traditional Agile

Understanding Requirements Upfront Constant interaction within the

team and with the Product Owner

Planning Plan one time delivery which has to happen way later

Continuous sprint by sprint planning, deliver important

features first

Designing of Test Cases All Upfront Evolving and Iteration Wise

Manage Change Prohibit Change Adapt and adjust at every release and iteration boundary

Progress review Milestone document review See working software every iteration and every release

Quality Responsibility Quality Engineer Entire team

© Copyright GlobalLogic 2008 8

Agile Values

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

© Copyright GlobalLogic 2008 9

Agile synthesized

• Reference – “Agile QA Testing by Elisabeth Hendrickson

© Copyright GlobalLogic 2008 10

Agile Testing - Definition

Agile testing is all about applying agile values and principles to testing. The value of agile testing lies in effective

communication between developers, testers and the product owner

Testers write acceptance test cases and get them approved by the product owner. At the same time, coding is driven by the

customer facing tests which is more likely to deliver better software

In the end a story is not complete until testing is finished.

© Copyright GlobalLogic 2008 11

Focus of Agile Testing

• High Value features first

• Continuous Integration with pre/post release build automation

• Test Driven development

• Automation of unit & regression testing

• Automated acceptance testing

• Exploratory testing

© Copyright GlobalLogic 2008 12

Agile Testing Practices

• Within an Iteration

Automated Acceptance tests

Manual Exploratory

testing

Automated Unit Tests

• Define “Done”• Represent requirements

• Derive “Design”• Represent Specifications

• Provide additional feedback

© Copyright GlobalLogic 2008 13

Test Driven Development (TDD)

A software development technique which ensures that the software being developed is 100%

covered by unit test cases

• Write the unit test case• Execute the build Test

fails• Write just enough code to

cover the test• Execute the build Test

passes• Refactor

Write the Test

Refactor

Execute the build

Coding

Execute the build

Fail

Pass

Pass

Fail

© Copyright GlobalLogic 2008 14

Continuous Integration

Continuous Integration is a software development practice where members of a team integrate their work frequently; usually each person integrates at least daily - leading to

multiple integrations per day.

Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible

– Martin Fowler

Pre-release builds (hourly/nightly) help developers to  improve the quality of the source code and release builds

help in automating the release process.

© Copyright GlobalLogic 2008 15

Continuous Integration

It is essential that code repository is centralized and unified tools are used

© Copyright GlobalLogic 2008 16

Regression Testing

© Copyright GlobalLogic 2008 17

Exploratory Testing

• Exploratory testing is concurrent test design, test execution, test logging and learning, based on a test charter containing test objectives, and carried out within time-boxes.

• Used in higher test levels to complement systematic (automated) testing

• Exploratory testing is like the chess game with the application

© Copyright GlobalLogic 2008 18

Role of a Tester in an Agile Project

• Testers are integral part of the team

• Participate in Release/Iteration planning

• Start Testing activities from the day 1

• Collaborates with the customer to define the acceptance test criteria Validates that the system is doing exactly what it is supposed to do

• Tests Stories once they are complete

• Focuses on test automation

• Focuses more on exploratory testing

• Practices pair testing (similar to pair programming)

• Collaborates with Development team

• Provides continuous feedback to the team

© Copyright GlobalLogic 2008 19

A Day in Life of a Tester

• Starts by looking at prioritized personal work queue

• Identifying the work items for the day

• Attending the standup meeting

• Collaboration with Dev Team (seeking and offering support)

• Depending on the type of work item

– Writing acceptance Criteria

– Writing the test case

– Automating a test case

– Executing a test case (manually)

© Copyright GlobalLogic 2008 20

Why does it fail?

• Hard!

• Agile does not fix everything

• Are we ready for a change?

• Practicing TDD is not easy

• A move from Manual testing to Automated testing

• Agile Testing needs a coder-tester profile

• It makes products to be delivered faster

• Partial adoption?

© Copyright GlobalLogic 2008 21

How GlobalLogic does it?

• GlobalLogic applies a unique method and platform for distributed software development, “GlobalLogic Velocity™”

• “GlobalLogic Velocity™ is an Agile product engineering method supported by an innovative collaboration platform, software frameworks and reusable software objects that together help bring high quality software products to market faster and with less risk.“

• Velocity Method is the GlobalLogic framework of processes, templates, and behaviors which optimizes communication and provides just enough structure to effectively manage distributed product engineering teams.

• Velocity Platform is an integrated suite of tools and systems that aids Distributed Product Development by facilitating end-to-end collaboration and tracking of issues through Requirements Engineering, Iteration Planning and Release, Test Engineering, and Release Engineering.

© Copyright GlobalLogic 2008 22

Velocity – A case study

www.globallogic.com

Thank You!

© Copyright GlobalLogic 2008

[email protected]