dmitry lebedev: agile testing using agile tools

36
Agile Testing Using Agile Tools Dmitry Lebedev NB Crew Agile Tour, Vilnius, 6 of october, 2011

Upload: agile-lietuva

Post on 16-May-2015

1.000 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Dmitry Lebedev: Agile Testing Using Agile Tools

Agile Testing Using Agile Tools

Dmitry LebedevNB Crew

Agile Tour, Vilnius, 6 of october, 2011

Page 2: Dmitry Lebedev: Agile Testing Using Agile Tools

Dmitry Lebedev

www.agile-latvia.org

www.jug.lv

www.agiletestingdays.com

NB Crew

Consulting & Development

Page 3: Dmitry Lebedev: Agile Testing Using Agile Tools

Meaning of methodology?

Page 4: Dmitry Lebedev: Agile Testing Using Agile Tools

Meaning of methodology!

Page 5: Dmitry Lebedev: Agile Testing Using Agile Tools

Methodology

Avoid a FailureHit the Target

Page 6: Dmitry Lebedev: Agile Testing Using Agile Tools

Story of Two Islands (Sad One)

Page 7: Dmitry Lebedev: Agile Testing Using Agile Tools

Two Tribes

Page 8: Dmitry Lebedev: Agile Testing Using Agile Tools

Two Mindsets (I)

Page 9: Dmitry Lebedev: Agile Testing Using Agile Tools

Two Mindsets (II)

Page 10: Dmitry Lebedev: Agile Testing Using Agile Tools

Two Complexities

Internal Complexity External Complexity

Page 11: Dmitry Lebedev: Agile Testing Using Agile Tools

Two Islands (Reconsidered)

Page 12: Dmitry Lebedev: Agile Testing Using Agile Tools

Traditional Testing Tools

Expensive software

Custom scripts

Customized OS tools

Hands & Brain

Page 13: Dmitry Lebedev: Agile Testing Using Agile Tools

Agile Testing Tools?

Page 14: Dmitry Lebedev: Agile Testing Using Agile Tools

Approach to Quality

Page 15: Dmitry Lebedev: Agile Testing Using Agile Tools

Agile Tools You Really Need

• Whiteboard, markers

• Pairing stations

• Index cards

• Toys, food

• Stickies,sharpies

Page 16: Dmitry Lebedev: Agile Testing Using Agile Tools

Typical Case

Web Frontend

Java Application3rd party web-service

DB

Log File

Page 17: Dmitry Lebedev: Agile Testing Using Agile Tools

Tested Points (Often)

Web Frontend

Java Application3rd party web-service

DB

Log File

Page 18: Dmitry Lebedev: Agile Testing Using Agile Tools

Tested Points (Less Often)

Web Frontend

Java Application3rd party web-service

DB

Log File

Page 19: Dmitry Lebedev: Agile Testing Using Agile Tools

Tested Points (Sweet Dreams)

Web Frontend

Java Application3rd party web-service

DB

Log File

Page 20: Dmitry Lebedev: Agile Testing Using Agile Tools

Enterprise Tesing Is Boring

Page 21: Dmitry Lebedev: Agile Testing Using Agile Tools

How to Make It Fun Again?!

Page 22: Dmitry Lebedev: Agile Testing Using Agile Tools

Recipes

1. Become a software craftsman

Page 23: Dmitry Lebedev: Agile Testing Using Agile Tools

Recipes

1. Become a software craftsman

2. Create rather than buy

Page 24: Dmitry Lebedev: Agile Testing Using Agile Tools

Recipies

1. Become a software craftsman

2. Create rather than buy

3. Don’t come un-armed

Page 25: Dmitry Lebedev: Agile Testing Using Agile Tools

Recipies

1. Become a software craftsman

2. Create rather than buy

3. Don’t come un-armed

4. Automate as much as can

Page 26: Dmitry Lebedev: Agile Testing Using Agile Tools

Why Ruby?!

1. Free

2. Flexible but Powerful

3. Great Community

Page 27: Dmitry Lebedev: Agile Testing Using Agile Tools

Let's automate!

- Watir

- Selenium

- Cucumber

- RSpecs

Page 28: Dmitry Lebedev: Agile Testing Using Agile Tools

When It's Not Possible...

- Legacy

- 3rd Party Systems

- Propietary Software

Page 29: Dmitry Lebedev: Agile Testing Using Agile Tools

Code Examples

Log parsing

Page 30: Dmitry Lebedev: Agile Testing Using Agile Tools

Code Examples

File.open("tesfile.log", "r") do |infile|while (line = infile.gets) if line =~ /.*Id:\d+ session (start|finish)/

puts "#{line}" end

endend

Page 31: Dmitry Lebedev: Agile Testing Using Agile Tools

Code Examples

Testing web services

Page 32: Dmitry Lebedev: Agile Testing Using Agile Tools

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)

Page 33: Dmitry Lebedev: Agile Testing Using Agile Tools

Code Examples

Gathering the pack

Page 34: Dmitry Lebedev: Agile Testing Using Agile Tools

Code Example

require 'test/unit'

class MyFirstTest < Test::Unit::TestCase

def test_logs_output

....

end

def test_web_service

....

end

end

Page 35: Dmitry Lebedev: Agile Testing Using Agile Tools

Questions?!

1. Twitter – lebedev_dmitry

2. www.agile-latvia.org

3. www.jug.lv

Page 36: Dmitry Lebedev: Agile Testing Using Agile Tools

Copyrights

All images were taken from en.wikipedia.org and are used under wikimedia creative, creative commons,

GPL licenses