Your SlideShare is downloading. ×
0
Agile testing<br />Agile Mëtteg – 15 July 2010<br />
Agile Mëtteg in 2010<br />Complete Agile Mëtteg calendar on<br />www.agilepartner.net/agility_seminars.html<br />15 July 2...
OBJECTIVES & AGENDA<br />Objectives<br />This session will focus on a Agile Testing and provide you with practical example...
AGILE PARTNER SERVICES<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />4<br />IS users Services<br />1<br />Custo...
NEXT TRAININGS & CERTIFICATIONS<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />5<br />-15%<br />Complete calenda...
Let’s get acquainted<br />July 15th, 2010<br />Agile Mëtteg – Agile Testing<br />6<br />
PRESENTATION OF THE ATTENDEES<br />Who are you ?<br />What is your role ?<br />What do you know about agility ?<br />What ...
AGENDA<br />Agenda<br />What is agile testing? And why? And how?<br />Unit testing<br />Test Driven Development<br />Accep...
WHAT IS SOFTWARE TESTING?<br />Definition:<br />Software testing is an investigation conducted to provide stakeholders wit...
WHAT IS SOFTWARE TESTING?<br />Definition:<br />Software testing is a way to measure the quality of the product using test...
MEASURING QUALITY<br />Measuring quality using tests:<br />tests to find defects<br />functional / non-functional testing<...
15 July 2010<br />Agile Mëtteg - Agile testing<br />12<br />SO WHAT IS AGILE TESTING ?… AND WHY?… AND HOW?<br />
Traditional / Waterfall approach<br />Testing is done after the development<br />WHAT IS AGILE TESTING?<br />15 July 2010<...
Agile approach<br />Testing is part of the development process<br />WHAT IS AGILE TESTING?<br />15 July 2010<br />Agile Më...
WHAT IS AGILE TESTING?<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />15<br />Programmer<br />Traditional / Wate...
Agile approach<br />Testing is part of the development process<br />A whole team<br />WHAT IS AGILE TESTING?<br />15 July ...
Agile testing places an increased portion of the testing in the hands of the developers<br />Wait… WHAT?!?!<br />I’m a pro...
WHY AGILE TESTING?<br />WHY should developers write tests?<br />Fear / Confidence<br />Do you dare to change the code?<br ...
WHY AGILE TESTING?<br />A better design<br />“How good the design is doesn't matter near as much as whether the design is ...
AGILE TESTING… HOW?<br />Agile testing… HOW?<br />Unit testing<br />Test Driven Development<br />Acceptance testing<br />B...
BUT FIRST…<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />21<br />
LET US INTRODUCE YOU TO…<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />22<br />TIME MASTER TIM!<br />
AGILE TESTING… HOW?<br />DINO LEGS<br />A real project<br />A new feature: <br />„The Crystal Quest“<br />15 July 2010<br ...
UNIT TESTING<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />24<br />
UNIT TESTING<br />Definitions<br />Unit : <br />	Smallest testable part of an application<br />Unit test : <br />	A method...
UNIT TESTING<br />Some bad things about unit tests:<br />Expensive to write and expensive to maintain<br />You can test to...
UNIT TESTING<br />Why write unit tests?<br />More confidence in the code<br />Avoid regression<br />Tests themselves are d...
UNIT TESTING<br />The „3A“ pattern<br />Arrange<br />Act<br />Assert<br />15 July 2010<br />Agile Mëtteg - Agile testing<b...
UNIT TESTING<br />F.I.R.S.T.<br />Fast<br />Independent<br />Repeatable<br />Self-Validating<br />Timely<br />[Clean Code ...
UNIT TESTING<br />„The act of writing a unit test is more an act of design than of verification“<br />(Robert C. Martin)<b...
UNIT TESTING<br />A lot of existing unit testing…<br />	xUnit (NUnit, Junit, csUnit, …), MSTest, Pex, Visual Studio UTF, e...
TEST DRIVEN DEVELOPMENT (TDD)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />32<br />
TEST DRIVEN DEVELOPMENT (TDD)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />33<br />Unit Test<br />What is TDD?...
TEST DRIVEN DEVELOPMENT (TDD)<br />What is TDD? <br />Difference to unit testing<br />Write the unit test FIRST!<br />« R...
TEST DRIVEN DEVELOPMENT (TDD)<br />Red – Green – Refactor<br />Make it failwrite the test first<br />Make it workwrite the...
TEST DRIVEN DESIGN (TDD)<br />TDD is not only about testing<br />Also called Test Driven Design<br />TDD is a methodology ...
TEST DRIVEN DESIGN (TDD)<br />TDD is not only about testing<br />Also called Test Driven Design<br />TDD consequences<br /...
TEST DRIVEN DEVELOPMENT (TDD)<br />DEMO<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />38<br />
ACCEPTANCE TESTING<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />39<br />
ACCEPTANCE TESTING<br />Unit testing tells us that the code is meeting the programmer‘s expectations<br />Unit testing is ...
ACCEPTANCE TESTING<br />Implementing acceptance tests<br /> means automation<br />Examples of automation tools:<br />Fram...
ACCEPTANCE TESTING<br />DEMO<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />42<br />
BEHAVIOUR DRIVEN DEVELOPMENT (BDD)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />43<br />
BEHAVIOUR DRIVEN DEVELOPMENT<br />Behaviour Driven Development (BDD)<br />Evolution of TDD introduced by Dan North<br />Us...
BEHAVIOUR DRIVEN DEVELOPMENT<br />Outside-in methodology<br />	 from the known to the unknown<br />Helps the developer to...
BEHAVIOUR DRIVEN DEVELOPMENT<br />Programmer<br />Ubiquitous language<br />based on the business domain<br />Common vocabu...
BEHAVIOUR DRIVEN DEVELOPMENT<br />Story framework<br />Each feature is captured in a „story“, which defines the scope of t...
BEHAVIOUR DRIVEN DEVELOPMENT<br />Scenario / Acceptance criteria<br />Scenario:Title<br />Given some initial context,<br /...
BEHAVIOUR DRIVEN DEVELOPMENT<br />Several existing tools for automation<br />JBehave, NBehave, JSpec, NSpec, CppSpec, PHPS...
BEHAVIOUR DRIVEN DEVELOPMENT<br />DEMO<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />50<br />
SUMMARY<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />51<br />
SUMMARY<br />Some things to remember about Agile Testing:<br />Testing is part of the development process<br />Whole-team ...
Upcoming SlideShare
Loading in...5
×

Agile Mëtteg series - Session 5

2,948

Published on

Agile Testing
15 July 2010

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,948
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
43
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • GFA
  • GFA
  • ERF/SZ
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF(+SZ)
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • SZ
  • SZThe goal of unit testing is to isolate each part of the program and show that the individual parts are correct.Unit tests find problems early in the development cycle.A unit test provides a strict, written contract that the piece of code must satisfy. As a result, it affords several benefits.
  • SZ
  • SZMore confidence in the codeAvoid regression: If tests are run frequently the developer can see when new code breaks old code.The tests themselves are documentationEncourages better software design: simpler, smaller methods; less coupling instead of strongly coupled code[Compare introduction, maybe too similar?]
  • SZPrinciples for unit testsIt’s much easier to see:What is being set up and initialized in the arrange section What method is being executed in the act section What determines the outcome of the test in the assert section
  • SZ
  • SZOriginated in XP.Unit tests are essential parts of XP and other agile methods.
  • SZ
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • ERF
  • SZ
  • SZAcceptance tests are specifications for the desired behavior and functionality of a system. WHY?Although acceptance testing traditionally takes place at the end of development or major milestones, in agile software development acceptance testing needs to be performed at the user story level. There are several reasons for why this is important:A passed test case becomes a measure of completeness of a user story; that is, a user story cannot be considered complete till it has passed all acceptance tests associated with it. Even though there is thorough unit testing performed, this is not enough. Unit tests, by their nature, test for a localized used case and are not concerned about the overall system. When we have iterations longer than a couple of weeks, it becomes easy to loose focus on initial agreements; acceptance test cases made for each story at the beginning of each iteration help the developers to keep things within the expectations. Acceptance test cases can serve as an excellent guide to developers to better interpret the requirements from a user story
  • SZFit – the engineThe customers&apos; examples are formatted in tables and saved as HTML using ordinary business tools such as Microsoft Excel. When Fit checks the document, it creates a copy and colors the tables green, red, and yellow according to whether the software behaved as expected. Fitnesse – Also the wiki on topFitNesse allows users of a developed system to enter specially formatted input (its format is accessible to non-programmers). This input is interpreted and tests are created automatically. These tests are then executed by the system and output is returned back to the user. The advantage of this approach is very fast feedback from users. The developer of the system to be tested needs to provide some support (classes named &quot;fixtures&quot;, conforming to certain conventions). fast user feedbackERF demo -&gt; score computation dino legs
  • ERF
  • SZI
  • SZBehavior-driven developmentBDD aims to help focus on the delivery of prioritised, verifiable business value by providing a common vocabularyBy using terminology focused on the behavioural aspects of the system rather than testing, BDD attempts to help direct developers towards a focus on the real value to be found in TDD at its most successful. &quot;Behavior-driven development is what you are doing already, if you are doing Test-driven development well.&quot; (Dave Astels)Behavior Driven Development is more about interactions with the application than just unit testing. It forces the developer to understand the responsibility of the method he is about to write. Using good tools, the specs written to test the application can be used as specifications. Doing what comes naturallyBDD isn&apos;t anything new or revolutionary. It&apos;s just an evolutionary offshoot of TDD in which the word &quot;test&quot; is replaced by the word &quot;should.&quot; Semantics aside, many people find the concept of should a much more natural development driver than the concept of testing. Thinking in terms of behavior (shoulds) somehow paves the way into writing specification classes first, which, in turn, can be a very efficient implementation driver.For many developers, the shift from test-driven development to BDD is a smart move. With BDD, you don&apos;t have to think about tests, you can just pay attention to the requirements of your application and ensure that the application behavior does what it should to meet those requirements. Using BDD to drive development Behavior driven development (BDD) is an evolutionary result of test driven development (TDD) in the sense that rather than thinking in terms of tests (which have the tendency to make you think after the fact) you can more easily think in terms of a specification. By thinking about an application’s specification or behavior, it becomes easier to validate things early– in fact, when thinking in terms of a specification, it becomes quite easy to write things upfront.
  • SZ
  • SZBDD relies on the use of a very specific (and small) vocabulary to minimize miscommunication and to ensure that everyone – the business, developers, testers, analysts and managers – are not only on the same page but using the same words. BDD provides a “ubiquitous language” for analysis Around this time, Eric Evans published his bestselling book Domain-Driven Design. In it, he describes the concept of modeling a system using a ubiquitous language based on the business domain, so that the business vocabulary permeates right into the codebase.
  • SZIStructural templatesFeature:As a [X]I want [Y]so that [Z] (In order)The template had to be loose enough that it wouldn’t feel artificial or constraining to analysts but structured enough that we could break the story into its constituent fragments and automate them. We started describing the acceptance criteria in terms of scenarios, which took the following form:Scenarios:Given some initial context (the givens),When an event occurs,then ensure some outcomes.
  • SZIStructural templatesFeature:As a [X]I want [Y]so that [Z] (In order)The template had to be loose enough that it wouldn’t feel artificial or constraining to analysts but structured enough that we could break the story into its constituent fragments and automate them. We started describing the acceptance criteria in terms of scenarios, which took the following form:Scenarios:Given some initial context (the givens),When an event occurs,then ensure some outcomes.
  • SZI
  • ERF
  • SZI
  • SZI
  • Transcript of " Agile Mëtteg series - Session 5"

    1. 1. Agile testing<br />Agile Mëtteg – 15 July 2010<br />
    2. 2. Agile Mëtteg in 2010<br />Complete Agile Mëtteg calendar on<br />www.agilepartner.net/agility_seminars.html<br />15 July 2010<br />Agile Mëtteg - Agile Testing<br />2<br />
    3. 3. OBJECTIVES & AGENDA<br />Objectives<br />This session will focus on a Agile Testing and provide you with practical examples and techniques to help your team understand what is behind this approach.<br />Agenda<br />Introduction of Agile Partner<br />The attendees<br />What is agile testing? And why? And how? <br />Unit testing <br />Behaviour Driven Development <br />Test Driven Development <br />Acceptance testing <br />Q&A <br />15 July 2010<br />Agile Mëtteg - Agile Testing<br />3<br />
    4. 4. AGILE PARTNER SERVICES<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />4<br />IS users Services<br />1<br />Custom Software Development & Maintenance<br />Our core business to answer customer needs<br />IS services<br />Thanks to our expertise we can support IT team to reach their productivity & quality objectives (Assessment, Coaching, Support, Training, Resource delegation…)<br />IS Solutions<br />Take benefit from commercial or Open Source platform to answer as quick as possible to specific needs<br />IS users services<br />We can support Product & Services owners to work closely with the IT team (Assessment, Coaching, Support, Training, Resource delegation…)<br />4<br />Software Development & SoftwareMaintenance<br />2<br />ISSolutions<br />IS Services<br />Agility<br />Agility<br />3<br />1<br />2<br />3<br />4<br />Agility<br />
    5. 5. NEXT TRAININGS & CERTIFICATIONS<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />5<br />-15%<br />Complete calendar on: http://www.agilepartner.net/training/training_calendar.html<br />
    6. 6. Let’s get acquainted<br />July 15th, 2010<br />Agile Mëtteg – Agile Testing<br />6<br />
    7. 7. PRESENTATION OF THE ATTENDEES<br />Who are you ?<br />What is your role ?<br />What do you know about agility ?<br />What are your expectations ?<br />July 15th, 2010<br />Agile Mëtteg – Agile Testing<br />7<br />
    8. 8. AGENDA<br />Agenda<br />What is agile testing? And why? And how?<br />Unit testing<br />Test Driven Development<br />Acceptance testing<br />Behaviour Driven Development<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />8<br />
    9. 9. WHAT IS SOFTWARE TESTING?<br />Definition:<br />Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.<br />(Wikipedia)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />9<br />
    10. 10. WHAT IS SOFTWARE TESTING?<br />Definition:<br />Software testing is a way to measure the quality of the product using tests.<br />(Stephan Zimmer & Eric Ferrot)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />10<br />
    11. 11. MEASURING QUALITY<br />Measuring quality using tests:<br />tests to find defects<br />functional / non-functional testing<br />a LOT of kinds of tests<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />11<br />
    12. 12. 15 July 2010<br />Agile Mëtteg - Agile testing<br />12<br />SO WHAT IS AGILE TESTING ?… AND WHY?… AND HOW?<br />
    13. 13. Traditional / Waterfall approach<br />Testing is done after the development<br />WHAT IS AGILE TESTING?<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />13<br />
    14. 14. Agile approach<br />Testing is part of the development process<br />WHAT IS AGILE TESTING?<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />14<br />Iteration 1<br />Iteration 2<br />Iteration n<br />No specific order<br />
    15. 15. WHAT IS AGILE TESTING?<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />15<br />Programmer<br />Traditional / Waterfall approach<br />Testing is done after the development<br />Clear separation of roles<br />Domain Expert<br />Tester<br />
    16. 16. Agile approach<br />Testing is part of the development process<br />A whole team<br />WHAT IS AGILE TESTING?<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />16<br />Programmer<br />Programmer<br />Domain Expert<br />Tester<br />Tester<br />
    17. 17. Agile testing places an increased portion of the testing in the hands of the developers<br />Wait… WHAT?!?!<br />I’m a programmer not a tester<br />It’s trivial I don’tneed a test<br />I don’t have time for testing<br />My code isverydifficult to test<br />WHAT IS AGILE TESTING?<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />17<br />
    18. 18. WHY AGILE TESTING?<br />WHY should developers write tests?<br />Fear / Confidence<br />Do you dare to change the code?<br />  Tests = safety net<br />It places developers as users<br />  Better usability<br />It makes the code testable<br />  Better design<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />18<br />
    19. 19. WHY AGILE TESTING?<br />A better design<br />“How good the design is doesn't matter near as much as whether the design is getting better or worse. <br />If it is getting better, day by day, I can live with it forever. <br />If it is getting worse, I will die.”<br />(Kent Beck )<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />19<br />
    20. 20. AGILE TESTING… HOW?<br />Agile testing… HOW?<br />Unit testing<br />Test Driven Development<br />Acceptance testing<br />Behaviour Driven Development<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />20<br />
    21. 21. BUT FIRST…<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />21<br />
    22. 22. LET US INTRODUCE YOU TO…<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />22<br />TIME MASTER TIM!<br />
    23. 23. AGILE TESTING… HOW?<br />DINO LEGS<br />A real project<br />A new feature: <br />„The Crystal Quest“<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />23<br />http://dinolegs.blogspot.com/<br />
    24. 24. UNIT TESTING<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />24<br />
    25. 25. UNIT TESTING<br />Definitions<br />Unit : <br /> Smallest testable part of an application<br />Unit test : <br /> A method to test a unit<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />25<br />
    26. 26. UNIT TESTING<br />Some bad things about unit tests:<br />Expensive to write and expensive to maintain<br />You can test too much<br />You can test the wrong things<br />Possibility to get false sense of security when all tests pass<br />No integration tests<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />26<br />
    27. 27. UNIT TESTING<br />Why write unit tests?<br />More confidence in the code<br />Avoid regression<br />Tests themselves are documentation<br />Encourages better software design: minimal interfaces and modularity <br />15 July 2010<br />Agile Mëtteg - Agile testing<br />27<br />
    28. 28. UNIT TESTING<br />The „3A“ pattern<br />Arrange<br />Act<br />Assert<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />28<br />
    29. 29. UNIT TESTING<br />F.I.R.S.T.<br />Fast<br />Independent<br />Repeatable<br />Self-Validating<br />Timely<br />[Clean Code – Robert C. Martin]<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />29<br />
    30. 30. UNIT TESTING<br />„The act of writing a unit test is more an act of design than of verification“<br />(Robert C. Martin)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />30<br />
    31. 31. UNIT TESTING<br />A lot of existing unit testing…<br /> xUnit (NUnit, Junit, csUnit, …), MSTest, Pex, Visual Studio UTF, etc.<br />…and mocking frameworks<br /> Moq, Rhino Mocks, Moles, TypeMock, JMock, etc.<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />31<br />
    32. 32. TEST DRIVEN DEVELOPMENT (TDD)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />32<br />
    33. 33. TEST DRIVEN DEVELOPMENT (TDD)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />33<br />Unit Test<br />What is TDD? <br />Difference to unit testing<br />Write the unit test<br />Code<br />FIRST!<br />
    34. 34. TEST DRIVEN DEVELOPMENT (TDD)<br />What is TDD? <br />Difference to unit testing<br />Write the unit test FIRST!<br />« Red – Green – Refactor » pattern<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />34<br />
    35. 35. TEST DRIVEN DEVELOPMENT (TDD)<br />Red – Green – Refactor<br />Make it failwrite the test first<br />Make it workwrite the simplest implementation<br />Make it betterrefactor without changing the behavior<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />35<br />
    36. 36. TEST DRIVEN DESIGN (TDD)<br />TDD is not only about testing<br />Also called Test Driven Design<br />TDD is a methodology that helps creating a good design when developing code. <br />15 July 2010<br />Agile Mëtteg - Agile testing<br />36<br />
    37. 37. TEST DRIVEN DESIGN (TDD)<br />TDD is not only about testing<br />Also called Test Driven Design<br />TDD consequences<br />YAGNI<br />DRY<br />Law of Demeter<br />Single responsibility principle<br />Interface segregation principle<br />Inversion of control<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />37<br />GOOD DESIGN !<br />
    38. 38. TEST DRIVEN DEVELOPMENT (TDD)<br />DEMO<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />38<br />
    39. 39. ACCEPTANCE TESTING<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />39<br />
    40. 40. ACCEPTANCE TESTING<br />Unit testing tells us that the code is meeting the programmer‘s expectations<br />Unit testing is essential but not sufficient<br />Acceptance tests are specifications for the<br />desired behaviour and functionality of a system.<br />Customer oriented<br />About the what and not the how<br />Usually black box system tests<br />Integration tests character<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />40<br />
    41. 41. ACCEPTANCE TESTING<br />Implementing acceptance tests<br /> means automation<br />Examples of automation tools:<br />Framework for Integrated Test (Fit) is an open-source tool for automated acceptance test<br />Fitnesse is a webserver, a wiki and an automated testing tool based on Fit<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />41<br />
    42. 42. ACCEPTANCE TESTING<br />DEMO<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />42<br />
    43. 43. BEHAVIOUR DRIVEN DEVELOPMENT (BDD)<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />43<br />
    44. 44. BEHAVIOUR DRIVEN DEVELOPMENT<br />Behaviour Driven Development (BDD)<br />Evolution of TDD introduced by Dan North<br />Using terminology focused on the behavioural aspects of the system rather than testing<br /> Unit ≠ behaviour<br />  Focus on why the code should be created<br /> Business value > Code<br /> Specification > Test<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />44<br />
    45. 45. BEHAVIOUR DRIVEN DEVELOPMENT<br />Outside-in methodology<br />  from the known to the unknown<br />Helps the developer to think YAGNI<br />  Leads to better design<br />  BDD = Behaviour Driven Design<br />Don‘t forget about the roots (TDD)<br />  Red – Green – Refactor<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />45<br />
    46. 46. BEHAVIOUR DRIVEN DEVELOPMENT<br />Programmer<br />Ubiquitous language<br />based on the business domain<br />Common vocabulary between participants<br />Minimizes translation<br />Avoids miscommunication<br />Makes it easier to validate early<br />Domain Expert<br />Tester<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />46<br />
    47. 47. BEHAVIOUR DRIVEN DEVELOPMENT<br />Story framework<br />Each feature is captured in a „story“, which defines the scope of the feature along with its acceptance criteria<br />Feature<br />Feature: Title<br />As a [role]<br />I want [feature]<br />so that [benefit]<br />Feature: Crystal quest<br />As a player<br />I want to collect time crystals<br />so that I am able to complete the crystal quest<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />47<br />
    48. 48. BEHAVIOUR DRIVEN DEVELOPMENT<br />Scenario / Acceptance criteria<br />Scenario:Title<br />Given some initial context,<br />And some additional context,<br />When an event occurs,<br />Then ensure some outcomes<br />Scenario 1:Tim loses a crystal<br />Given a Tim is on screen<br />And a crystal is on screen,<br />When Tim dies,<br />Then the crystal disappears<br />And Tim‘s player score is decreased by 20<br />Scenario 2:Tim collects a crystal<br />Given Tim is on screen<br />And a crystal is on screen,<br />When Tim touches the crystal,<br />Then the crystal disappears<br />And a nice music is played<br />And Tim‘s player score is increased by 100<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />48<br />
    49. 49. BEHAVIOUR DRIVEN DEVELOPMENT<br />Several existing tools for automation<br />JBehave, NBehave, JSpec, NSpec, CppSpec, PHPSpec, SpecFlow, RSpec, Cucumber, …<br />  Executable specification<br />  Quick feedback and regression testing<br />  Requirements are tests<br />  Tests are documentation<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />49<br />
    50. 50. BEHAVIOUR DRIVEN DEVELOPMENT<br />DEMO<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />50<br />
    51. 51. SUMMARY<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />51<br />
    52. 52. SUMMARY<br />Some things to remember about Agile Testing:<br />Testing is part of the development process<br />Whole-team approach: roles not that strictly separated as in traditional approach<br />Building a testable architecture leads to a better design<br />... and don‘t forget!<br />Setup a working environment<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />52<br />
    53. 53. QUESTIONS<br />53<br />Agile Mëtteg - Agile testing<br />15 July 2010<br />
    54. 54. NEXT TRAININGS & CERTIFICATIONS<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />54<br />Complete calendar on: http://www.agilepartner.net/training/training_calendar.html<br />
    55. 55. RESOURCES<br />Agile Partner: www.agilepartner.net<br />Agile Interest Group Luxembourg:www.aiglu.org<br />Agile Alliance: www.agilealliance.org<br />Scrum alliance: www.scrumalliance.org<br />Scrum.org<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />55<br />
    56. 56. CONTACTS<br />Thank You<br />15 July 2010<br />Agile Mëtteg - Agile testing<br />56<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×