High Performance Agile testing in Software Development

Post on 12-Aug-2015

168 views 3 download

Tags:

Transcript of High Performance Agile testing in Software Development

@sammykolluru #cdnISTQB

High Performance Agile Testing in Software

Development

by Sammy

Kolluru

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

Executive Board Member, CSTB

Agile WG Member, ISTQB®

@sammykolluru #cdnISTQB

/cdnistqb

/Canadian-Software-Testing-

Board (CSTB)

cstb.ca

istqb.org

cstb@cstb.ca

@sammykolluru #cdnISTQB

@sammykolluru #cdnISTQB

• /in/sammykolluru

• @sammykolluru

• comms@cstb.ca

@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

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: comms@cstb.ca@sammykolluru #cdnISTQB

@sammykolluru #cdnISTQB

@sammykolluru #cdnISTQB

Software Testing Certifications issued worldwide

400,000+

@sammykolluru #cdnISTQB

Software Testing Certifications issued in Canada

3,000+

Why ISTQB® Certification?

• Benefits to professionals

• Benefits to Companies

• Benefits to Training Providers

@sammykolluru #cdnISTQB

@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

@sammykolluru #cdnISTQB

Benefits to Companies

• Competitive advantage for

companies

• Cost optimization of test activities

• High-level services to customers,

increasing revenues and brand

value.

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

@sammykolluru #cdnISTQB

ISTQB® Certification levels

@sammykolluru #cdnISTQB

ISTQB® Agile Tester

@sammykolluru #cdnISTQB

@sammykolluru #cdnISTQB

Traditional SDLCRequiremen

ts

Specifications

Coding

Testing

Release

@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

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

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

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

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

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

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

@sammykolluru #cdnISTQB

Agile Principles

1) Customer Satisfaction

2) Changing Requirements

3) Frequent Software Delivery

4) Work Together

5) Motivated Individuals

6) Face – Face Conversation

@sammykolluru #cdnISTQB

Agile Principles

7) Measure of Progress

8) Sustainable Development

9) Technical Excellence

10) Simplicity

11) Self Organizing Teams

12) Regular Adaptation

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

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

@sammykolluru #cdnISTQB

Agile Approach

Common Agile Approaches in use:

• Extreme Programming (XP)

• Scrum

• Kanban

@sammykolluru #cdnISTQB

Agile Approach

Common Agile Approaches in use:

Scrum

@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

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

@sammykolluru #cdnISTQB

Sprint Cycle

Sprint 0

Sprint 1

Epic A

Sprint 2

Epic A

Epic B

Sprint 3

Epic A+B

Epic C

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.

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

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

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

@sammykolluru #cdnISTQB

Collaborative User Story Creation

Brainstorming user stories may use:

• I

• N

• V

• E

• S

• T

@sammykolluru #cdnISTQB

Collaborative User Story Creation

Brainstorming user stories may use:

• Independent

• Negotiable

• Valuable

• Estimable

• Small

• Testable

@sammykolluru #cdnISTQB

Retrospectives• Meeting held at end of each

iteration:−Successful−Improvements

• Retain success

• Incorporate improvements−Regular followups

@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

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

@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

@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

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

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

@sammykolluru #cdnISTQB

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