Dmitry Lebedev: Agile Testing Using Agile Tools
-
Upload
agile-lietuva -
Category
Technology
-
view
999 -
download
2
Embed Size (px)
Transcript of Dmitry Lebedev: Agile Testing Using Agile Tools

Agile Testing Using Agile Tools
Dmitry LebedevNB 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 FailureHit 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 Application3rd party web-service
DB
Log File

Tested Points (Often)
Web Frontend
Java Application3rd party web-service
DB
Log File

Tested Points (Less Often)
Web Frontend
Java Application3rd party web-service
DB
Log File

Tested Points (Sweet Dreams)
Web Frontend
Java Application3rd 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
- 3rd 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
endend

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