SlideShare a Scribd company logo
Again	
  on	
  21st	
  October	
  2013	
  |	
  Hotel	
  Savera,	
  Chennai

Agile	
  Tes)ng
An)-­‐Pa.erns	
  &	
  Rescue	
  Strategies
by

Karthik	
  Sirasanagandla
Agile	
  Coach
Independent	
  Consultant	
  |	
  Industrial	
  Logic
Next	
  Genera*on	
  Tes*ng	
  Conference	
  (c)
What do you expect out of this
session?
Is anyone having a painful story to
share?
The Rescue Strategies..
The Details That Go Awry...

The Big Things That Go Wrong..
The Big Things That Go Wrong!
It’s So SCARY!!!
• Nothing in life is to be feared, it is only to be
understood. -- Marie Curie
– You’re not afraid to try again, you’re just afraid of
getting hurt.

• In Everyday Scripting with Ruby, Brian Marick
advises to learn to program by writing one.
#FailProof
• Learn By Doing
Quiz: Guess the reason for this!
Silos

QA

Manager

...

Scrum Master

Developer
Results Over Reasoning
• Cost: Manual Versus Automation
• Business Value of Deliverable
• Automate Everything That Is Repeatable
Discontinuous Integration
CI in Progress
What’s Your Test Architecture?
Agile Testing Anti-Patterns and Rescue Strategies (Version2)
Agile Testing Anti-Patterns and Rescue Strategies (Version2)
Agile Testing Anti-Patterns and Rescue Strategies (Version2)
Quiz Time
• What is the wolf that can huff and puff your hay stack in
your test pyramid?
• What is the wolf that can break your wooden stack in
your test pyramid?
• Who is the wolf that can break you brick stack in your
test pyramid?
• What is the moral of the story? Just build unit
tests???
Old Is Gold
One Huge Monolithic Test Suite
The Details That Go Awry!

www.unicomlearning.com
I Love Se IDE
X-Path Rocks
Where’re The Page Objects?
Page-Object Littered With Assertions
Bad Code
#my_target_page.rb
def verify_edit_link_presence
//BAD: Assertion in Page-Object
has_link?("Edit").should be_true
end

#my_target_spec
it "blah blah blah"
@my_target_page.do_some_action
@my_target_page.verify_edit_link_presence
end
Good Code
#my_target_page.rb
def has_edit_link?
has_link?("Edit")
end

 
#my_target_spec
it "blah blah blah"
@my_target_page.do_some_action
@my_target_page.has_edit_link?.should
be_true
end
I love to sleep
Scenario To Code: Good Versus Bad
As a user
I should be able to add notes to the table
so that the information is recorded for future reference.
def add_and_save_notes notes
fill_in("my_target_text_box", :with => notes)
click_button "Save" # This makes an AJAX request and
adds new row to the table upon successfully saving
sleep(3) #<-- This is BAD code.
end
def add_and_save_notes notes
...
wait_until { has_text?(notes) } #<-- This is GOOD
practice that enables test stability and hence faith in
test results
end
Asserting message for exactness
• #my_target_spec.rb
 
describe "save notes" do
it "should add notes as new row to table upon successful save" do
notes = "sample notes"
expected_update_message = "Your note is added successfully!"
@my_target_page. add_and_save_notes notes
@my_target_page.update_message.should == expected_update_message
end
end

Why measure
exactness???
Duplication makes life easy
Long live dead code!!!
Rescue Strategies
Didn’t we discuss about it all the way?
...Do you want to know anything more?
References Resources
• Agile Testing by Lisa Crispin and Janet
Gregory
• http://patrickwilsonwelsh.com/
• http://kartzontech.blogspot.in/
• http://blogs.agilefaqs.com/2011/02/01/
inverting-the-testing-pyramid/
• Everyday scripting with Ruby for Teams,
Testers and You.
Images Sources:
http://www.geograph.org.uk/photo/122440
http://www.flickr.com/photos/philipbitnar/3194364095/
http://www.flickr.com/photos/un_photo/3331240051/in/photostream/
http://www.synnovatia.com/business-coaching-blog/bid/132417/Getting-Past-Your-Fears-and-Growing-a-Successful-Business
http://www.global-integration.com/cartoons/silos/
http://www.kent.ac.uk/secl/philosophy/jw/reasoning/club/
http://www.freefoto.com/preview/904-22-3505/White-clouds-and-blue-sky
http://www.flickr.com/photos/nagesh_kamath/4714936714/
http://blogs.agilefaqs.com/2011/02/01/inverting-the-testing-pyramid/
http://www.flickr.com/photos/w9ned/3958782404/
http://commons.wikimedia.org/wiki/File:Selenium_IDE.png
http://commons.wikimedia.org/wiki/File:XPath_example.svg
http://www.flickr.com/photos/betobaibich/266557188/
http://commons.wikimedia.org/wiki/File:Littering_in_Stockholm.jpg
http://commons.wikimedia.org/wiki/File:Gray_paper_bag_with_sad_smiley_over_head.jpg
http://www.flickr.com/photos/byronpeebles/3337412761/in/photostream/
http://www.fotopedia.com/items/flickr-24930799
http://www.flickr.com/photos/asterix611/5120445522/in/photostream/
http://philby.deviantart.com/art/Threatening-Behaviour-lines-72724012
http://martinfowler.com/bliki/TestPyramid.html

Karthik Sirasanagandla
Agile | Lean Coach
@kartzontech

More Related Content

PDF
Agile Test Automation Anti-patterns and Rescue Strategies
PPTX
Testing con selenium
PPTX
Selenium
PDF
Selenium Antipatterns
PPT
Agile Testing
PDF
Agile process
PDF
Tester Challenges in Agile ?
PPT
! Testing for agile teams
Agile Test Automation Anti-patterns and Rescue Strategies
Testing con selenium
Selenium
Selenium Antipatterns
Agile Testing
Agile process
Tester Challenges in Agile ?
! Testing for agile teams

Similar to Agile Testing Anti-Patterns and Rescue Strategies (Version2) (20)

PDF
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
KEY
Testing smells
PDF
FutureOfTesting2008
PPTX
Bug debug keynote - Present problems and future solutions
PPTX
Testing Sap: Modern Methodology
PPTX
Agile testing for mere mortals
PPTX
Automated testers agile evangelist
PDF
Engaging IV&V Testing Services for Agile Projects
PDF
Enhancing Developer Productivity with Code Forensics
PDF
Gate of Agile Web Development
PPTX
Agile testingandautomation
PDF
Quality assurance tests
PDF
Software Quality and Test Strategies for Ruby and Rails Applications
PDF
The agile tester
PPTX
Testing, a pragmatic approach
PDF
AgileTesting_Ver1.0
PDF
Software testing with examples in Angular (and AngularJS)
PDF
Pragmatic notdogmatictdd agile2012
PDF
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
PDF
Effective Unit Testing
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Testing smells
FutureOfTesting2008
Bug debug keynote - Present problems and future solutions
Testing Sap: Modern Methodology
Agile testing for mere mortals
Automated testers agile evangelist
Engaging IV&V Testing Services for Agile Projects
Enhancing Developer Productivity with Code Forensics
Gate of Agile Web Development
Agile testingandautomation
Quality assurance tests
Software Quality and Test Strategies for Ruby and Rails Applications
The agile tester
Testing, a pragmatic approach
AgileTesting_Ver1.0
Software testing with examples in Angular (and AngularJS)
Pragmatic notdogmatictdd agile2012
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Effective Unit Testing
Ad

More from Karthik Sirasanagandla (8)

PPTX
Snaplogic Academy Launch - Chennai
PDF
When agile-becomes-fragile
PDF
PDF
When Agile becomes fragile
PDF
Git for-fun-and-productivity
PPT
Why I hated the daily stand-up and how I started enjoying it?
PPTX
Why I hated the daily stand-up and how I started enjoying it?
PPTX
Deciphering the Ruby Object Model
Snaplogic Academy Launch - Chennai
When agile-becomes-fragile
When Agile becomes fragile
Git for-fun-and-productivity
Why I hated the daily stand-up and how I started enjoying it?
Why I hated the daily stand-up and how I started enjoying it?
Deciphering the Ruby Object Model
Ad

Recently uploaded (20)

PDF
STKI Israel Market Study 2025 version august
PPTX
1. Introduction to Computer Programming.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPT
What is a Computer? Input Devices /output devices
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Hybrid model detection and classification of lung cancer
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PPTX
The various Industrial Revolutions .pptx
STKI Israel Market Study 2025 version august
1. Introduction to Computer Programming.pptx
WOOl fibre morphology and structure.pdf for textiles
Developing a website for English-speaking practice to English as a foreign la...
NewMind AI Weekly Chronicles – August ’25 Week III
DP Operators-handbook-extract for the Mautical Institute
Enhancing emotion recognition model for a student engagement use case through...
Univ-Connecticut-ChatGPT-Presentaion.pdf
What is a Computer? Input Devices /output devices
OMC Textile Division Presentation 2021.pptx
1 - Historical Antecedents, Social Consideration.pdf
Module 1.ppt Iot fundamentals and Architecture
TLE Review Electricity (Electricity).pptx
Hybrid model detection and classification of lung cancer
O2C Customer Invoices to Receipt V15A.pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Getting started with AI Agents and Multi-Agent Systems
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
The various Industrial Revolutions .pptx

Agile Testing Anti-Patterns and Rescue Strategies (Version2)