3. Index Intention Idea/ Background of "agile test tools" Definitions & Explanations Tools (Dis)advantages Essence Links & Books Questions / Discussions 23 May 2011 LTB – Agile Testing Tools 3
4. Intention The intention of this talk is to Present & explain (a selection of) agile test tools to the LU tester´s community Show 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 LTB – Agile Testing Tools 4
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 LTB – Agile Testing Tools 5
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 LTB – Agile Testing Tools 6
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 tool tools need to support more aspects then "just" testing 23 May 2011 LTB – Agile Testing Tools 7
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-ftt 23 May 2011 LTB – Agile Testing Tools 8
9. Classic vs. Agile Not a contradiction to "classical approach“ test early insoftwarelifecycle reduces cost 23 May 2011 LTB – Agile Testing Tools 9
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 LTB – Agile Testing Tools 10
11. Definitions TDD - Test Driven Development write a (failing) test write code to make the test pass refactor mostly 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 LTB – Agile Testing Tools 11
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 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 2011 LTB – Agile Testing Tools 13
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 LTB – Agile Testing Tools 14
15. RSpec TDD RSpecsupports in doing the TDD part of BDD, focusing on the documentation and design aspects of TDD. http://relishapp.com/rspec 23 May 2011 LTB – Agile Testing Tools 15
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 LTB – Agile Testing Tools 17
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 LTB – Agile Testing Tools 18
20. Cucumber BDD "Cucumberis a toolthatexecutes plain-textfunctional descriptions as automated tests." (https://github.com/aslakhellesoy/cucumber/wiki/) Uses a business-readable DSL SUTs in Ruby, Java, .NET, Python, multiple webtestingframeworks... integrates in CI-environments http://cukes.info/ 23 May 2011 LTB – Agile Testing Tools 20
21. Cucumber Describe behaviour in plain text Write a step definition in Ruby Run and watch it fail Write code to make the step pass Run again and see the step pass Repeat 2-5 until green like a cuke 23 May 2011 LTB – Agile Testing Tools 21
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 LTB – Agile Testing Tools 23
26. Selenium "Selenium is a suite of tools to automate web app testing across many platforms.“ "Selenium... runs in many browsers and operating systems can be controlled by many programming languages and testing frameworks." http://seleniumhq.org/ 23 May 2011 LTB – Agile Testing Tools 26
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 LTB – Agile Testing Tools 30
31. Hurdles to take New tool to learn Also non technical people need to learn a tool language/ syntax Tester need technical skills All of the discussed tools should be integrated into the CI system Not everything can be tested automatically Manual testing is still needed 23 May 2011 LTB – Agile Testing Tools 31