High Performance Agile testing in Software Development

47
High Performance Agile Testing in Software Development by Sammy Kolluru @sammykolluru #cdnISTQB

Transcript of High Performance Agile testing in Software Development

Page 1: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

High Performance Agile Testing in Software

Development

by Sammy

Kolluru

Page 2: High Performance Agile testing in Software Development

Sammy KolluruB.Eng., PGDBM, CTFL, CTFL-AT

Executive Board Member, CSTB

Agile WG Member, ISTQB®

@sammykolluru #cdnISTQB

Page 3: High Performance Agile testing in Software Development

/cdnistqb

/Canadian-Software-Testing-

Board (CSTB)

cstb.ca

istqb.org

[email protected]

@sammykolluru #cdnISTQB

Page 4: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

• /in/sammykolluru

• @sammykolluru

[email protected]

Page 5: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

To continually improve and advance the software testing profession in Canada.

• Created in January, 2007 as a not-for-profit organization

• Creates and administers exams

• Issues certificates

• Accredits training providers

• Participates in ISTQB® GA and Working Groups

Page 6: High Performance Agile testing in Software Development

Volunteering with CSTB• The CSTB is creating a network of

dedicated people who are committed to

improving the software testing

community in Canada. −Improve job prospects & employability−Training−Experience diversity−Rewarding−Builds professional network −Have fun!

• Email us: [email protected]@sammykolluru #cdnISTQB

Page 7: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Page 8: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Software Testing Certifications issued worldwide

400,000+

Page 9: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Software Testing Certifications issued in Canada

3,000+

Page 10: High Performance Agile testing in Software Development

Why ISTQB® Certification?

• Benefits to professionals

• Benefits to Companies

• Benefits to Training Providers

@sammykolluru #cdnISTQB

Page 11: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Benefits to Professionals• International recognition of acquired

competencies and skills

• Possibility to use the logo “Certified

Tester”

• Support to the tester’s career path

from foundation level to expert level

Page 12: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Benefits to Companies

• Competitive advantage for

companies

• Cost optimization of test activities

• High-level services to customers,

increasing revenues and brand

value.

Page 13: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Benefits to Training Providers

• Training material; contents, quality and syllabi are accredited by ISTQB®

• Early access to information and evolution of ISTQB® Glossary and Syllabi

• Accredited Training Providers logo and listed on the ISTQB® Website.

Page 14: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

ISTQB® Certification levels

Page 15: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

ISTQB® Agile Tester

Page 16: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Page 17: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Traditional SDLCRequiremen

ts

Specifications

Coding

Testing

Release

Page 18: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Traditional SDLC contd…

• Testing is mostly passive during

development.

• Testing happens at the end, before the

release.

• There is not much time for testing.

Testing gets squished.• Typically, coding may take longer than expected

Page 19: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

What is Agile team?

• Agile team are highly cross

functional, whole-team thinking

approach and works in shorter sprint

to build, test and integrate

continuously.

• ALWAYS keep Customer and Quality

in mind.

Page 20: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Team contd…

• The core principle of the Agile team

is to build quality in to the product.

• On other hand, to develop with test

based approach.

Page 21: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

What is Agile Testing, anyway?• Agile Testing does not mean testing

in Agile projects.

• A tester in Agile project will work

differently than traditional projects.

Page 22: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Testing contd…

• Testing an application, with a plan to

learn and using that information to

guide your testing.

• Positively responding to changes.

• Highly cross-functional.

• Working in a team to deliver quality

product in shorter sprint cycle.

Page 23: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Testing recap…• Iterative and Incremental.

• Testers tests each increment of finished

code.• Iteration may be shorter, easier.

• Team builds and test a small piece of

code, ensuring it works before moving to

next piece.• and so on….

• Developers are never ahead of testers as

they are in-sync.

• Story is never complete until it is

TESTED.

Page 24: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Manifesto• Individuals and interactions over

process and tools.

• Working software over comprehensive

documentation.

• Customer collaboration over contract

negotiation.

• Responding to change over following a

plan.

Page 25: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Principles

1) Customer Satisfaction

2) Changing Requirements

3) Frequent Software Delivery

4) Work Together

5) Motivated Individuals

6) Face – Face Conversation

Page 26: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Principles

7) Measure of Progress

8) Sustainable Development

9) Technical Excellence

10) Simplicity

11) Self Organizing Teams

12) Regular Adaptation

Page 27: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Whole-Team Approach

Main benefits of Agile is the Whole

Team Approach:• Enhance communications and

collaboration.

• Leverage various skill sets.

• Quality is everyone’s responsibility.

Page 28: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Early and Frequent feedbackAnother benefits of Agile is the

feedbacks:• Avoids requirement misunderstanding.

• Making features available early.

• Detecting and resolving problems

early.

• Providing information to the team.

• Promoting project momentum.

Page 29: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Approach

Common Agile Approaches in use:

• Extreme Programming (XP)

• Scrum

• Kanban

Page 30: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Approach

Common Agile Approaches in use:

Scrum

Page 31: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Agile Approach: ScrumScrum is Agile Management

framework• Sprint- iterations, usually 2 – 4 weeks

• Product Increments- Releasable product

• Product Backlog- Planned product items

• Sprint Backlog- High priority items

• Definition of Done- Criteria for completion

• Timeboxing- Unfinished feature moved to

backlog

• Transparency- Reports and updates sprint

status

Page 32: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Sprint Cycle

• During each sprint, Epics are

identified.

• Each story is reviewed and

groomed, acceptance criteria are

defined.

• Each story is expanded, coded,

tested.

• There may be a release after each

sprint.

Page 33: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Sprint Cycle

Sprint 0

Sprint 1

Epic A

Sprint 2

Epic A

Epic B

Sprint 3

Epic A+B

Epic C

Page 34: High Performance Agile testing in Software Development

What are tester’s role in Agile?• Passive during Agile planning-

important sprint activities will be

missed.

• Testing late- diminish the

advantages of the agile and

becomes bottle neck.

Page 35: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Testing role in Agile approach• Should contribute to estimation, task

definition, requirement clarification,

scoping of work.

• Should advocate for customer’s

concerns.

• Understand what user needs, collect

live examples and scenarios.

Page 36: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Testing role contd…• Should break down stories into test

related tasks:• Infrastructure, data, non-functional, privacy,

security, robustness, business rules…

• Should transform from passive

participant to active advocate.• Address team concerns and risks, leverage

resources.

Page 37: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Collaborative User Story Creation• User stories must address functional

and non-functional characteristics.

• Collaborate between product

owners, developers and testers.

• Each story includes acceptance

criteria.

• Tasks in a story are finished when

acceptance criteria have been

satisfied.

Page 38: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Collaborative User Story Creation

Brainstorming user stories may use:

• I

• N

• V

• E

• S

• T

Page 39: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Collaborative User Story Creation

Brainstorming user stories may use:

• Independent

• Negotiable

• Valuable

• Estimable

• Small

• Testable

Page 40: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Retrospectives• Meeting held at end of each

iteration:−Successful−Improvements

• Retain success

• Incorporate improvements−Regular followups

Page 41: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Continuous Integration• Delivery of product increment

requires reliable, working, integrated

software.

• Automated activities, involves:−Static code analysis−Compile, generate executable files−Unit test, code coverage−Deploy to test environment−Integration test−Reporting status

Page 42: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Benefits of Continuous Integration• Early detection and root cause

analysis.

• Keeps software version up-to-date.

• Reduces regression risks.

• Provides confidence- built on solid

foundation.

• Reduces repetitive manual activities.

• Provides regular feedback.

Page 43: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Release Planning

• Looks ahead to the release of a

product.

• Testers are involved and add value:−Define user stories and acceptance

criteria−Participate in risk analysis−Estimating testing efforts−Defining test levels−Planning the testing for release

Page 44: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Iteration Planning• Iteration planning is concerned with

iteration backlogs.

• Testers are involved and add value:−Participating in detailed risk analysis−Determining testability of stories−Breaking down stories into testing tasks−Estimating testing efforts−Identifying functional and non-

functional aspects

Page 45: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Burn Down Charts• Graphical representation of Stories left to do

versus time.

• It is useful for predicting when all of the Stories

will be completed.

Page 46: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

Q & A

Disclaimers:

Logos, images, photos, terminologies, examples etc used in this presentations are properties of their

respective organizations. There were freely available during the creation of these presentations.

Written permission from the author is required to reuse the contents of the presentation.

Page 47: High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

https://www.surveymonkey.com/r/SXYTT7Z