Transcript
Page 1: Agile Test Automation Anti-patterns and Rescue Strategies

World Conference – Next Generation Testing

08 – 12 July, Le-Meridien, Bangalore

Agile Test Automation Anti-patterns & Rescue Strategies

www.unicomlearning.com

Speaker:Karthik SirasanagandlaAgile/Lean CoachIndustrial Logic

1

Page 2: Agile Test Automation Anti-patterns and Rescue Strategies

What do you expect out of this session?

Is anyone having a painful story to share?

2

Page 3: Agile Test Automation Anti-patterns and Rescue Strategies

The Big Things That Go Wrong..

The Details That Go Awry...

The Rescue Strategies..

3

Page 4: Agile Test Automation Anti-patterns and Rescue Strategies

www.unicomlearning.com

The Big Things That Go Wrong!

4

Page 5: Agile Test Automation Anti-patterns and Rescue Strategies

It’s So SCARY!!!

www.unicomlearning.com

5

Page 6: Agile Test Automation Anti-patterns and Rescue Strategies

• 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

6

Page 7: Agile Test Automation Anti-patterns and Rescue Strategies

Silos

www.unicomlearning.com

Scrum MasterManager DeveloperQA

...

7

Page 8: Agile Test Automation Anti-patterns and Rescue Strategies

Results Over Reasoning

www.unicomlearning.com

8

Page 9: Agile Test Automation Anti-patterns and Rescue Strategies

• Cost: Manual Versus Automation• Business Value of Deliverable• Automate Everything That Is Repeatable

9

Page 10: Agile Test Automation Anti-patterns and Rescue Strategies

Discontinuous Integration

10

Page 11: Agile Test Automation Anti-patterns and Rescue Strategies

CI in Progress

11

Page 12: Agile Test Automation Anti-patterns and Rescue Strategies

What’s Your Test Architecture?

www.unicomlearning.com

12

Page 13: Agile Test Automation Anti-patterns and Rescue Strategies

Skewed Test Architecture

www.unicomlearning.com

13

Page 14: Agile Test Automation Anti-patterns and Rescue Strategies

14

Page 15: Agile Test Automation Anti-patterns and Rescue Strategies

15

Page 16: Agile Test Automation Anti-patterns and Rescue Strategies

16

Page 17: Agile Test Automation Anti-patterns and Rescue Strategies

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???

17

Page 18: Agile Test Automation Anti-patterns and Rescue Strategies

Old Is Gold

www.unicomlearning.com

18

Page 19: Agile Test Automation Anti-patterns and Rescue Strategies

One Huge Monolithic Test Suite

19

Page 20: Agile Test Automation Anti-patterns and Rescue Strategies

The Details That Go Awry!

www.unicomlearning.com

20

Page 21: Agile Test Automation Anti-patterns and Rescue Strategies

I Love Se IDE

www.unicomlearning.com

21

Page 22: Agile Test Automation Anti-patterns and Rescue Strategies

X-Path Rocks

www.unicomlearning.com

22

Page 23: Agile Test Automation Anti-patterns and Rescue Strategies

Where’re The Page Objects?

www.unicomlearning.com

23

Page 24: Agile Test Automation Anti-patterns and Rescue Strategies

Page-Object Littered With Assertions

www.unicomlearning.com

24

Page 25: Agile Test Automation Anti-patterns and Rescue Strategies

Bad Code#my_target_page.rbdef verify_edit_link_presence //BAD: Assertion in Page-Object has_link?("Edit").should be_true end

#my_target_specit "blah blah blah" @my_target_page.do_some_action @my_target_page.verify_edit_link_presenceend

25

Page 26: Agile Test Automation Anti-patterns and Rescue Strategies

Good Code#my_target_page.rbdef has_edit_link? has_link?("Edit")end

 #my_target_specit "blah blah blah" @my_target_page.do_some_action @my_target_page.has_edit_link?.should be_trueend

26

Page 27: Agile Test Automation Anti-patterns and Rescue Strategies

I love to sleep

www.unicomlearning.com

27

Page 28: Agile Test Automation Anti-patterns and Rescue Strategies

Scenario To Code: Good Versus BadAs a userI should be able to add notes to the tableso 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 resultsend

28

Page 29: Agile Test Automation Anti-patterns and Rescue Strategies

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 endend

Why measure exactness???

29

Page 30: Agile Test Automation Anti-patterns and Rescue Strategies

Duplication makes life easy

30

Page 31: Agile Test Automation Anti-patterns and Rescue Strategies

Long live dead code!!!

31

Page 32: Agile Test Automation Anti-patterns and Rescue Strategies

Rescue Strategies

www.unicomlearning.com

32

Page 33: Agile Test Automation Anti-patterns and Rescue Strategies

Didn’t we discuss about it all the way?...Do you want to know anything more?

33

Page 34: Agile Test Automation Anti-patterns and Rescue Strategies

References Resources

• Agile Testing by Lisa Crispin and Janet Gregory– Driving Selenium Safely from http://

elearning.industriallogic.com• http://patrickwilsonwelsh.com/• http://kartzontech.blogspot.in/• Everyday scripting with Ruby for Teams, Testers and

You.

34

Page 35: Agile Test Automation Anti-patterns and Rescue Strategies

Thank You

World Conference – Next Generation Testing

UNICOM Trainings & Seminars Pvt. Ltd.

[email protected]

Images Source:http://www.geograph.org.uk/photo/122440http://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-Businesshttp://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-skyhttp://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.pnghttp://commons.wikimedia.org/wiki/File:XPath_example.svghttp://www.flickr.com/photos/betobaibich/266557188/http://commons.wikimedia.org/wiki/File:Littering_in_Stockholm.jpghttp://commons.wikimedia.org/wiki/File:Gray_paper_bag_with_sad_smiley_over_head.jpghttp://www.flickr.com/photos/byronpeebles/3337412761/in/photostream/http://www.fotopedia.com/items/flickr-24930799http://www.flickr.com/photos/asterix611/5120445522/in/photostream/http://philby.deviantart.com/art/Threatening-Behaviour-lines-72724012http://martinfowler.com/bliki/TestPyramid.html

35


Top Related