AGILE TESTING
YOU’LL LEARN….
Traditional vs Agile approach
Testing Principles
Agile Practices
Agile Testing
Story Lifecycle
2
TRADITIONAL VS AGILE
3
TRADITIONAL…..
4
Analysis
Design
Code
Test
Deploy
CONS
5
Changing requirements
No place for customer feedback
Software taking long time to market
Projects not delivered
High cost to fix things
AGILE….
6
Analysis
Design
Code
Test
Deploy
Each slice is working
product piece
LET’S BE AGILE….
7
QUALITY
“Quality is a perceptual, conditional and somewhat subjective
attribute and may be understood differently by different people.”
8
AGILE MANIFESTO
“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.”
9
TRADITIONAL VS AGILE
10
© ThoughtWorks 2015
$
Code
Requirements Gathering
Project Plan/Estimation
Use Cases /
Functional Specs
Design
Specifications
Test
Fix / Integrate
Level Stories
Vision & High
Release 1
Release 2
Release 3
Release 4
$
$
$
$
End-User Feedback:
• Validates business benefits
• Makes execution more successful
• Reduces “false features”
• Drives high IT value
Project Estimates:
• Agile gives more accurate estimates
earlier in the project
• Progress measured by tested software
Architecture:
• Agile proves out architecture
sooner – significant reduction of
technical risk
Risk:
• Virtually eliminates late surprises
Development Productivity:
• Agile teams work with their
tools for longer and become
more proficient
• Seasoned Agile teams
produce software very rapidly
Software in production:
• Agile approach reduces time
to market
• Business decides when to go
live
• Reduces risk of failure due to
early exit/reduction of project
scope
Agile
Development
Traditional
Development
10
AGILE PRACTICES
11
Unit Testing
Pairing
Iterative Development
Daily Stand Ups
Automated Functional testing
Continous Integration
TESTING PRINCIPLES
12
#1 BUILD QUALITY WITHIN
13
“You can not inspect quality into the product; it is already there.”
– W. Edwards Deming
Preventing Defects
Finding Defects Preventing Defects
Finding Defects
#2 FAST FEEDBACK
14
Get feedback to the people who need it as soon as possible.
Work with up to date information and make informed decisions.
Regression suites should be run in hours not weeks.
#3 TESTS ARE ASSETS
15
Reuse tests across projects, don’t create new tests all of the time.
Better understanding of test coverage.
Treat the test cases and the application code as the product – don’t
separate them.
Code
Product+
Test
#4 FASTER DELIVERY TO PRODUCTION
16
Do not have months of testing after development is complete.
Return on investment early – start earning revenue as soon as you can.
Testers should stop focusing on preventing a product going live and
instead focus on how to get it live.
#5 OPTIMIZE BUSINESS VALUE
17
Testing is not just insurance.
Target testing to features that are changing not a scatter gun test
everything approach.
Help drive new features and functionality.
Allow business to try new ideas in a safe environment providing
quick feedback
AGILE TESTING
18
SHIFT IN ROLE
• Traditional Tester Role
– Separate team
– Testing happens at the end of
development
– Testers work in isolation
– Testers act as gatekeepers
– No or little contact with business
– Automation created after
development
19
• Agile Tester Role
– Part of one disciplined team
– Testing happens throughout
development
– Testers drive quality discussions and
highlight risks
– Automation is created alongside with
development
– Direct contact with business
– Testers act as advocate of quality
QA ROLE
20
QA
CUSTOMER
Better domain understanding
Better acceptance tests
Better end-to-end tests
DEV BA
Better Test Automation code
Better Unit Tests
Better domain understanding
Better acceptance tests
TESTERS RESPONSIBLE FOR QUALITY….?
21
TEAM
ITERATIONS (RELEASE LIFE-CYCLE)
22
QA ACTIVITIES
23
n+1n-1 n
Pair with Dev to automate
iteration n stories
Exploratory test the
current stories
Pair with BA to analyze iteration n+1
stories and write Acceptance tests
STORY LIFECYCLE
24
STORY ANALYSIS
25
Ask questions/clarifications
Team gets involved identifying various tasks w.r.t story
Estimations in terms of points
Tech approaches/Functional expectations
Defining acceptance criteria
STORY PLANNING (KICK-OFF)
26
BA/QA/Dev discuss/ the acceptance criteria
Identifying scope changes
Test scenario’s identification
Identify Unit/Integration tests for the story
DEVELOPMENT
27
Define Unit/Integration tests i.e. strictly TDD
Code development
Pair rotation (i.e Pragmatic pairing)
Writing tests and executing them to ensure coverage
BA/QA SIGN OFF (DEV BOX)
28
QA/BA performs sanity on the acceptance criteria
Quick Feedback on the story
Validating Unit/Integration tests passes with coverage
Merging the code to master branch
EXPLORATORY TESTING (STORY TESTING)
29
System/Integration testing
Validating test scenarios while performing exploratory testing
Writing Automated tests, based on Test Pyramid
Raise/Track/Close story defects
STORY SHOWCASE
30
Prepare for UAT env
Story showcase to customer
Client Feedback
Q&A
31
THANK YOU
Dharmender Srivastav
LinkedIn: https://in.linkedin.com/in/dharmendersrivastav

Introduction to Agile Testing

  • 1.
  • 2.
    YOU’LL LEARN…. Traditional vsAgile approach Testing Principles Agile Practices Agile Testing Story Lifecycle 2
  • 3.
  • 4.
  • 5.
    CONS 5 Changing requirements No placefor customer feedback Software taking long time to market Projects not delivered High cost to fix things
  • 6.
  • 7.
  • 8.
    QUALITY “Quality is aperceptual, conditional and somewhat subjective attribute and may be understood differently by different people.” 8
  • 9.
    AGILE MANIFESTO “We areuncovering 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.” 9
  • 10.
    TRADITIONAL VS AGILE 10 ©ThoughtWorks 2015 $ Code Requirements Gathering Project Plan/Estimation Use Cases / Functional Specs Design Specifications Test Fix / Integrate Level Stories Vision & High Release 1 Release 2 Release 3 Release 4 $ $ $ $ End-User Feedback: • Validates business benefits • Makes execution more successful • Reduces “false features” • Drives high IT value Project Estimates: • Agile gives more accurate estimates earlier in the project • Progress measured by tested software Architecture: • Agile proves out architecture sooner – significant reduction of technical risk Risk: • Virtually eliminates late surprises Development Productivity: • Agile teams work with their tools for longer and become more proficient • Seasoned Agile teams produce software very rapidly Software in production: • Agile approach reduces time to market • Business decides when to go live • Reduces risk of failure due to early exit/reduction of project scope Agile Development Traditional Development 10
  • 11.
    AGILE PRACTICES 11 Unit Testing Pairing IterativeDevelopment Daily Stand Ups Automated Functional testing Continous Integration
  • 12.
  • 13.
    #1 BUILD QUALITYWITHIN 13 “You can not inspect quality into the product; it is already there.” – W. Edwards Deming Preventing Defects Finding Defects Preventing Defects Finding Defects
  • 14.
    #2 FAST FEEDBACK 14 Getfeedback to the people who need it as soon as possible. Work with up to date information and make informed decisions. Regression suites should be run in hours not weeks.
  • 15.
    #3 TESTS AREASSETS 15 Reuse tests across projects, don’t create new tests all of the time. Better understanding of test coverage. Treat the test cases and the application code as the product – don’t separate them. Code Product+ Test
  • 16.
    #4 FASTER DELIVERYTO PRODUCTION 16 Do not have months of testing after development is complete. Return on investment early – start earning revenue as soon as you can. Testers should stop focusing on preventing a product going live and instead focus on how to get it live.
  • 17.
    #5 OPTIMIZE BUSINESSVALUE 17 Testing is not just insurance. Target testing to features that are changing not a scatter gun test everything approach. Help drive new features and functionality. Allow business to try new ideas in a safe environment providing quick feedback
  • 18.
  • 19.
    SHIFT IN ROLE •Traditional Tester Role – Separate team – Testing happens at the end of development – Testers work in isolation – Testers act as gatekeepers – No or little contact with business – Automation created after development 19 • Agile Tester Role – Part of one disciplined team – Testing happens throughout development – Testers drive quality discussions and highlight risks – Automation is created alongside with development – Direct contact with business – Testers act as advocate of quality
  • 20.
    QA ROLE 20 QA CUSTOMER Better domainunderstanding Better acceptance tests Better end-to-end tests DEV BA Better Test Automation code Better Unit Tests Better domain understanding Better acceptance tests
  • 21.
    TESTERS RESPONSIBLE FORQUALITY….? 21 TEAM
  • 22.
  • 23.
    QA ACTIVITIES 23 n+1n-1 n Pairwith Dev to automate iteration n stories Exploratory test the current stories Pair with BA to analyze iteration n+1 stories and write Acceptance tests
  • 24.
  • 25.
    STORY ANALYSIS 25 Ask questions/clarifications Teamgets involved identifying various tasks w.r.t story Estimations in terms of points Tech approaches/Functional expectations Defining acceptance criteria
  • 26.
    STORY PLANNING (KICK-OFF) 26 BA/QA/Devdiscuss/ the acceptance criteria Identifying scope changes Test scenario’s identification Identify Unit/Integration tests for the story
  • 27.
    DEVELOPMENT 27 Define Unit/Integration testsi.e. strictly TDD Code development Pair rotation (i.e Pragmatic pairing) Writing tests and executing them to ensure coverage
  • 28.
    BA/QA SIGN OFF(DEV BOX) 28 QA/BA performs sanity on the acceptance criteria Quick Feedback on the story Validating Unit/Integration tests passes with coverage Merging the code to master branch
  • 29.
    EXPLORATORY TESTING (STORYTESTING) 29 System/Integration testing Validating test scenarios while performing exploratory testing Writing Automated tests, based on Test Pyramid Raise/Track/Close story defects
  • 30.
    STORY SHOWCASE 30 Prepare forUAT env Story showcase to customer Client Feedback
  • 31.
  • 32.
    THANK YOU Dharmender Srivastav LinkedIn:https://in.linkedin.com/in/dharmendersrivastav