Agile Testing Using Agile Tools Dmitry Lebedev NB Crew Agile Tour, Vilnius, 6 of october, 2011
Dmitry Lebedev www.agile-latvia.org www.jug.lv www.agiletestingdays.com NB Crew Consulting & Development
Meaning of methodology?
Meaning of methodology!
Methodology Avoid a Failure Hit the Target
Story of Two Islands (Sad One)
Two Tribes
Two Mindsets (I)
Two Mindsets (II)
Two Complexities Internal Complexity External Complexity
Two Islands (Reconsidered)
Traditional Testing Tools Expensive software Custom scripts Customized OS tools Hands & Brain
Agile Testing Tools?
Approach to Quality
Agile Tools You Really Need Whiteboard, markers Pairing stations Index cards Toys, food Stickies,sharpies
Typical Case Web Frontend Java Application 3 rd party web-service DB Log File
Tested Points (Often) Web Frontend Java Application 3 rd party web-service DB Log File
Tested Points (Less Often) Web Frontend Java Application 3 rd party web-service DB Log File
Tested Points (Sweet Dreams) Web Frontend Java Application 3 rd party web-service DB Log File
Enterprise Tesing Is Boring
How to Make It Fun Again?!
Recipes 1. Become a software craftsman
Recipes 1. Become a software craftsman 2. Create rather than buy
Recipies 1. Become a software craftsman 2. Create rather than buy 3. Don’t come un-armed
Recipies 1. Become a software craftsman 2. Create rather than buy 3. Don’t come un-armed 4. Automate as much as can
Why Ruby?! 1. Free 2. Flexible but Powerful 3. Great Community
Let's automate! - Watir - Selenium - Cucumber - RSpecs
When It's Not Possible... - Legacy - 3 rd Party Systems - Propietary Software
Code Examples Log parsing
Code Examples File.open("tesfile.log", "r") do |infile| while (line = infile.gets) if line =~ /.*Id:\d+ session (start|finish)/ puts "#{line}" end end end
Code Examples Testing web services
Code Examples require 'rubygems' require 'httpclient' clnt = HttpClient.new params = {"user_id"=>"123", "action"=>"credit", "currency"=>"EUR", "amount" => "10"} puts clnt.get("http://somehost/service", params)
Code Examples Gathering the pack
Code Example require 'test/unit' class MyFirstTest < Test::Unit::TestCase def test_logs_output .... end def test_web_service .... end end
Questions?! 1. Twitter – lebedev_dmitry 2. www.agile-latvia.org 3. www.jug.lv
Copyrights All images were taken from en.wikipedia.org and are used under wikimedia creative, creative commons, GPL licenses

Dmitry Lebedev: Agile Testing Using Agile Tools