Agile Test Toolsan introductionLTB Talk, 2011-05-23
Speaker23 May 2011LTB – Agile Testing Tools2Agile Practitioner& Software tester
IndexIntentionIdea/ Background of "agile test tools"Definitions & ExplanationsTools(Dis)advantagesEssenceLinks & Books Questions / Discussions23 May 2011LTB – Agile Testing Tools3
IntentionThe 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 2011LTB – Agile Testing Tools4
The classic approachone phase happens after the othertesting (test execution) by QA-people is mainly done in only one phase23 May 2011LTB – Agile Testing Tools5
Agile/ ScrumRoles in Scrum: Product Owner, Team, Scrum MasterTesting supports during the whole process, therefore test tools need to handle this23 May 2011LTB – Agile Testing Tools6
Agile/ ScrumSpecial 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 everybodymore people work with the same tooltools need to support more aspects then "just" testing23 May 2011LTB – Agile Testing Tools7
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 2011LTB – Agile Testing Tools8
Classic vs. AgileNot a contradiction to "classical approach“ test early insoftwarelifecycle reduces cost23 May 2011LTB – Agile Testing Tools9
Characteristics of Agile Test ToolsHaving tests documented as manual tests and scripted tests is double workWaste!     Use one tool forrequirements,tests, automated tests &test results23 May 2011LTB – Agile Testing Tools10
DefinitionsTDD - Test Driven Development write a (failing) testwrite code to make the test passrefactormostly on unit test level Acceptance TestTest to determine if the requirements of a specification are met. ATDD - Acceptance TDDImplementation of a requirement is driven by a set of automated, executable acceptance tests. 23 May 2011LTB – Agile Testing Tools11
TDD & ATDD23 May 2011LTB – Agile Testing Tools12
DefinitionsBDD - 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 behaviourbased,andpositions 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 2011LTB – Agile Testing Tools13
ToolsTwo groups (borders are blurred)Requirements are described in DSL/ special syntax/ natural language and executed as tests through fixture code.Tools for executing tests23 May 2011LTB – Agile Testing Tools14
RSpecTDD        RSpecsupports in doing the TDD part of BDD, focusing on the documentation and design aspects of TDD. http://relishapp.com/rspec23 May 2011LTB – Agile Testing Tools15
RSpec23 May 2011LTB – Agile Testing Tools16
FITFIT 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/fitnesse23 May 2011LTB – Agile Testing Tools17
FitNesseAutomated 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.info23 May 2011LTB – Agile Testing Tools18
FitNesse23 May 2011LTB – Agile Testing Tools19
CucumberBDD        "Cucumberis a toolthatexecutes plain-textfunctional descriptions as automated tests." (https://github.com/aslakhellesoy/cucumber/wiki/)Uses a business-readable DSLSUTs in Ruby, Java, .NET, Python, multiple webtestingframeworks... integrates in CI-environments          http://cukes.info/23 May 2011LTB – Agile Testing Tools20
CucumberDescribe behaviour in plain textWrite a step definition in RubyRun and watch it failWrite code to make the step passRun again and see the step passRepeat 2-5 until green like a cuke23 May 2011LTB – Agile Testing Tools21
Cucumber23 May 2011LTB – Agile Testing Tools22
Robot FrameworkAcceptance 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 2011LTB – Agile Testing Tools23
Robot Framework23 May 2011LTB – Agile Testing Tools24
Robot Framework23 May 2011LTB – Agile Testing Tools25
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 2011LTB – Agile Testing Tools26
Selenium23 May 2011LTB – Agile Testing Tools27
Selenium23 May 2011LTB – Agile Testing Tools28
OthersWatir (and others)xUnit... 23 May 2011LTB – Agile Testing Tools29
AdvantagesInvolving tests early in the software lifecycle process No wasted efforts for documenting requirements, test cases & automated tests Creating (automated) regression tests along the wayEasy to collaborate/ integrate customers Business Experts, POs/PMs ...23 May 2011LTB – Agile Testing Tools30
Hurdles to takeNew 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 needed23 May 2011LTB – Agile Testing Tools31
Links & Bookshttp://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 2011LTB – Agile Testing Tools32
Ressources	Agile PartnerCorporate: www.agilepartner.netTeam Blog: blog.agilepartner.netPersonal Blog: agile-and-testing.chriss-baumann.deAgile Interest Group Luxembourgwww.aiglu.org23 May 2011LTB – Agile Testing Tools33
CONTACTSThank You23 May 2011LTB – Agile Testing Tools34

Agile test tools

  • 1.
    Agile Test ToolsanintroductionLTB Talk, 2011-05-23
  • 2.
    Speaker23 May 2011LTB– Agile Testing Tools2Agile Practitioner& Software tester
  • 3.
    IndexIntentionIdea/ Background of"agile test tools"Definitions & ExplanationsTools(Dis)advantagesEssenceLinks & Books Questions / Discussions23 May 2011LTB – Agile Testing Tools3
  • 4.
    IntentionThe intention ofthis 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 2011LTB – Agile Testing Tools4
  • 5.
    The classic approachonephase happens after the othertesting (test execution) by QA-people is mainly done in only one phase23 May 2011LTB – Agile Testing Tools5
  • 6.
    Agile/ ScrumRoles inScrum: Product Owner, Team, Scrum MasterTesting supports during the whole process, therefore test tools need to handle this23 May 2011LTB – Agile Testing Tools6
  • 7.
    Agile/ ScrumSpecial 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 everybodymore people work with the same tooltools need to support more aspects then "just" testing23 May 2011LTB – Agile Testing Tools7
  • 8.
    Classic vs. Agile“Agileteams 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 2011LTB – Agile Testing Tools8
  • 9.
    Classic vs. AgileNota contradiction to "classical approach“ test early insoftwarelifecycle reduces cost23 May 2011LTB – Agile Testing Tools9
  • 10.
    Characteristics of AgileTest ToolsHaving tests documented as manual tests and scripted tests is double workWaste!     Use one tool forrequirements,tests, automated tests &test results23 May 2011LTB – Agile Testing Tools10
  • 11.
    DefinitionsTDD - TestDriven Development write a (failing) testwrite code to make the test passrefactormostly on unit test level Acceptance TestTest to determine if the requirements of a specification are met. ATDD - Acceptance TDDImplementation of a requirement is driven by a set of automated, executable acceptance tests. 23 May 2011LTB – Agile Testing Tools11
  • 12.
    TDD & ATDD23May 2011LTB – Agile Testing Tools12
  • 13.
    DefinitionsBDD - BehaviourDriven 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 behaviourbased,andpositions 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 2011LTB – Agile Testing Tools13
  • 14.
    ToolsTwo groups (bordersare blurred)Requirements are described in DSL/ special syntax/ natural language and executed as tests through fixture code.Tools for executing tests23 May 2011LTB – Agile Testing Tools14
  • 15.
    RSpecTDD        RSpecsupports indoing the TDD part of BDD, focusing on the documentation and design aspects of TDD. http://relishapp.com/rspec23 May 2011LTB – Agile Testing Tools15
  • 16.
    RSpec23 May 2011LTB– Agile Testing Tools16
  • 17.
    FITFIT is anacceptance 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/fitnesse23 May 2011LTB – Agile Testing Tools17
  • 18.
    FitNesseAutomated Acceptance Testing "web-basedcollaboration 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.info23 May 2011LTB – Agile Testing Tools18
  • 19.
    FitNesse23 May 2011LTB– Agile Testing Tools19
  • 20.
    CucumberBDD        "Cucumberis atoolthatexecutes plain-textfunctional descriptions as automated tests." (https://github.com/aslakhellesoy/cucumber/wiki/)Uses a business-readable DSLSUTs in Ruby, Java, .NET, Python, multiple webtestingframeworks... integrates in CI-environments          http://cukes.info/23 May 2011LTB – Agile Testing Tools20
  • 21.
    CucumberDescribe behaviour inplain textWrite a step definition in RubyRun and watch it failWrite code to make the step passRun again and see the step passRepeat 2-5 until green like a cuke23 May 2011LTB – Agile Testing Tools21
  • 22.
    Cucumber23 May 2011LTB– Agile Testing Tools22
  • 23.
    Robot FrameworkAcceptance testingand 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 2011LTB – Agile Testing Tools23
  • 24.
    Robot Framework23 May2011LTB – Agile Testing Tools24
  • 25.
    Robot Framework23 May2011LTB – Agile Testing Tools25
  • 26.
    Selenium"Selenium is asuite 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 2011LTB – Agile Testing Tools26
  • 27.
    Selenium23 May 2011LTB– Agile Testing Tools27
  • 28.
    Selenium23 May 2011LTB– Agile Testing Tools28
  • 29.
    OthersWatir (and others)xUnit...23 May 2011LTB – Agile Testing Tools29
  • 30.
    AdvantagesInvolving tests earlyin the software lifecycle process No wasted efforts for documenting requirements, test cases & automated tests Creating (automated) regression tests along the wayEasy to collaborate/ integrate customers Business Experts, POs/PMs ...23 May 2011LTB – Agile Testing Tools30
  • 31.
    Hurdles to takeNewtool 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 needed23 May 2011LTB – Agile Testing Tools31
  • 32.
  • 33.
    Ressources Agile PartnerCorporate: www.agilepartner.netTeamBlog: blog.agilepartner.netPersonal Blog: agile-and-testing.chriss-baumann.deAgile Interest Group Luxembourgwww.aiglu.org23 May 2011LTB – Agile Testing Tools33
  • 34.
    CONTACTSThank You23 May2011LTB – Agile Testing Tools34