Agile test tools

34
LTB Talk, 2011-05-23 Agile Test Tools an introduction

description

Presentation made for the Luxembourg Testing Board on 2011-05-23

Transcript of Agile test tools

Page 1: Agile test tools

LTB Talk, 2011-05-23

Agile Test Toolsan introduction

Page 2: Agile test tools

LTB – Agile Testing Tools 2

Speaker

23 May 2011

Agile Practitioner& Software tester

Christian BaumannConsultant

Page 3: Agile test tools

LTB – Agile Testing Tools 3

Index

IntentionIdea/ Background of "agile test tools"

Definitions & ExplanationsTools(Dis)advantagesEssence

Links & Books Questions / Discussions

23 May 2011

Page 4: Agile test tools

LTB – Agile Testing Tools 4

Intention

The intention of this talk is toPresent & explain (a selection of) agile test tools to the LU tester´s communityShow how test tools support the agile tester

 The intention is not to 

give a complete overview of agile testing methodologies and tools.

23 May 2011

Page 5: Agile test tools

LTB – Agile Testing Tools 5

The classic approach

one phase happens after the other

testing (test execution) by QA-people is mainly done in only one phase

23 May 2011

Requirements

Design

Implementation

Verification

Maintenance

Page 6: Agile test tools

LTB – Agile Testing Tools 6

Agile/ Scrum

Roles in Scrum: Product Owner, Team, Scrum Master

Testing supports during the whole process, therefore test tools need to handle this

23 May 2011

Page 7: Agile test tools

LTB – Agile Testing Tools 7

Agile/ Scrum

Special roles (developer, tester, architect, DB admin) aren´t bound to specific people, different people are sharing roles, therefor also testing is a role, that can be filled by everybody

more people work with the same tooltools need to support more aspects then "just" testing

23 May 2011

Page 8: Agile test tools

LTB – Agile Testing Tools 8

Classic vs. Agile

“Agile teams have particular needs for automated tools that are not well served by traditional record-and-playback GUI drivers.  As requirements specifications, functional tests must be readable: clear, succinct, and expressed in the language of the business domain. As an automated safety net, the tests must be maintainable: built with reusable domain specific testing language components, easy to change as the requirements change.”

http://tech.groups.yahoo.com/group/aa-ftt23 May 2011

Page 9: Agile test tools

LTB – Agile Testing Tools 9

Classic vs. Agile

Not a contradiction to "classical approach“ 

test early insoftwarelifecycle 

reduces cost

23 May 2011

Page 10: Agile test tools

LTB – Agile Testing Tools 10

Characteristics of Agile Test Tools

Having tests documented as manual tests and scripted tests is double work

Waste!     Use one tool for

requirements,tests, automated tests &test results

23 May 2011

Page 11: Agile test tools

LTB – Agile Testing Tools 11

Definitions

TDD - Test Driven Development write a (failing) testwrite code to make the test passrefactormostly on unit test level

 Acceptance Test

Test to determine if the requirements of a specification are met.

 ATDD - Acceptance TDD

Implementation of a requirement is driven by a set of automated, executable acceptance tests.

23 May 2011

Page 12: Agile test tools

LTB – Agile Testing Tools 12

TDD & ATDD

23 May 2011

Page 13: Agile test tools

LTB – Agile Testing Tools 13

Definitions

BDD - Behaviour Driven Development Behaviour-driven development (BDD) is an evolution of test-driven development (TDD) and acceptance-test driven development, and is intended to make these practices more accessible and intuitive to newcomers and experts alike.

It shifts the vocabulary from being test-based to behaviour

based,and positions itself as a design philosophy.

BDD "describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software."

23 May 2011

Page 14: Agile test tools

LTB – Agile Testing Tools 14

Tools

Two groups (borders are blurred)

Requirements are described in DSL/ special syntax/ natural language and executed as tests through fixture code.

Tools for executing tests

23 May 2011

Page 15: Agile test tools

LTB – Agile Testing Tools 15

RSpec

TDD        RSpec supports in doing the TDD part of BDD, focusing on the documentation and design aspects of TDD. http://relishapp.com/rspec

23 May 2011

Page 16: Agile test tools

LTB – Agile Testing Tools 16

RSpec

23 May 2011

Page 17: Agile test tools

LTB – Agile Testing Tools 17

FIT

FIT is an acceptance testing framework originally developed for Java by Ward Cunningham. One of the central ideas of FIT was to promote collaboration and allow customers and business analysts to write and verify tests. FIT makes it easy to run tests, but does not provide a way to create them. The original idea was to write tests in Word, Excel, or any tool that can output HTML. 

http://www.fitnesse.info/fitnesse

23 May 2011

Page 18: Agile test tools

LTB – Agile Testing Tools 18

FitNesse

Automated Acceptance Testing "web-based collaboration tool for software acceptance testing" (http://www.fitnesse.info/fitnesse) "is a web wiki front-end to FIT" Tests are described as tables in a wiki http://fitnesse.org/, http://www.fitnesse.info

23 May 2011

Page 19: Agile test tools

LTB – Agile Testing Tools 19

FitNesse

23 May 2011

Page 20: Agile test tools

LTB – Agile Testing Tools 20

Cucumber

BDD        "Cucumber is a tool that executes plain-text functional descriptions as automated tests." (https://github.com/aslakhellesoy/cucumber/wiki/)Uses a business-readable DSL

SUTs in Ruby, Java, .NET, Python, multiple webtesting frameworks ... integrates in CI-environments          http://cukes.info/

23 May 2011

Page 21: Agile test tools

LTB – Agile Testing Tools 21

Cucumber

1.Describe behaviour in plain text2.Write a step definition in Ruby3.Run and watch it fail4.Write code to make the step pass5.Run again and see the step pass6.Repeat 2-5 until green like a cuke

23 May 2011

Page 22: Agile test tools

LTB – Agile Testing Tools 22

Cucumber

23 May 2011

Page 23: Agile test tools

LTB – Agile Testing Tools 23

Robot Framework

Acceptance testing and ATDD        Keyword-/data-/BDD-driven "Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development." 

https://code.google.com/p/robotframework/

23 May 2011

Page 24: Agile test tools

LTB – Agile Testing Tools 24

Robot Framework

23 May 2011

Page 25: Agile test tools

LTB – Agile Testing Tools 25

Robot Framework

23 May 2011

Page 26: Agile test tools

LTB – Agile Testing Tools 26

Selenium

"Selenium is a suite of tools to automate web app testing across many platforms.“

 "Selenium...

runs in many browsers and operating systemscan be controlled by many programming languages and testing frameworks." 

http://seleniumhq.org/

23 May 2011

Page 27: Agile test tools

LTB – Agile Testing Tools 27

Selenium

23 May 2011

Page 28: Agile test tools

LTB – Agile Testing Tools 28

Selenium

23 May 2011

Page 29: Agile test tools

LTB – Agile Testing Tools 29

Others

Watir (and others)

xUnit

...

23 May 2011

Page 30: Agile test tools

LTB – Agile Testing Tools 30

Advantages

Involving tests early in the software lifecycle process No wasted efforts for documenting requirements, test cases & automated tests Creating (automated) regression tests along the way

Easy to collaborate/ integrate customers Business Experts, POs/PMs

...

23 May 2011

Page 31: Agile test tools

LTB – Agile Testing Tools 31

Hurdles to take

New tool to learnAlso non technical people need to learn a tool language/ syntaxTester need technical skillsAll of the discussed tools should be integrated into the CI systemNot everything can be tested automaticallyManual testing is still needed

23 May 2011

Page 32: Agile test tools

LTB – Agile Testing Tools 32

Links & Books

http://code.google.com/p/robotframework/http://www.concordion.org/http://cukes.info/http://en.wikipedia.org/wiki/Behavior_Driven_Developmenthttp://www.fitnesse.info/fitnessehttp://fitnesse.org/http://relishapp.com/rspechttp://seleniumhq.org/http://skillsmatter.com/podcast/java-jee/how-to-sell-bdd-to-the-businesshttp://www.slideshare.net/tcmak/atdd-in-practicehttp://tech.groups.yahoo.com/group/aa-ftt/http://testobsessed.com/2008/12/08/acceptance-test-driven-development-atdd-an-overview/

23 May 2011

Page 33: Agile test tools

LTB – Agile Testing Tools 33

Ressources

Agile PartnerCorporate: www.agilepartner.net Team Blog: blog.agilepartner.net Personal Blog: agile-and-testing.chriss-baumann.de

Agile Interest Group Luxembourgwww.aiglu.org

23 May 2011

Page 34: Agile test tools

LTB – Agile Testing Tools 34

CONTACTS

Thank You

23 May 2011

Christian BAUMANN

Consultant

[email protected] +352 691 666 306