Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


ATDD @ Prezi - lessons of a year

No description

Vera Gergely

on 23 January 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of ATDD @ Prezi - lessons of a year

enforces and helps communication maintainability ATDD @ Prezi - lessons of a year by Vera Gergely end of 2011 no acceptance tests functional tests on the same level as unit tests devs write all tests end of 2012 1000 functional tests in Twist - majority of them acceptance tests devs write unit tests,
QA/dev/UX writes acceptance tests,
QA/devs implement them non-engineers can write it too! non-engineers can read it using fixtures - modularity lazy assertions title completely describes the feature under test only test one thing in one scenario Given-When-Then structure easier to spot what failed technical improvements more reusable methods faster running time can serve as living documentation align to business language as much as possible test the what, not the how process challenges evolution of the acceptance tests QA meetup January 2013 design implementation test writing design test writing implementation more issues discovered in design phase less double work less replanning less implementation time use APIs to set up the Given part
e.g. don't draw frames using the UI, just add them to the canvas test only key examples, not edge cases test features, not technical issues acceptance tests should Undo Transformation After Grouping
There are labels "tufa, brownie"
I multiselect the objects "tufa, brownie"
I drag the multiselection
I group the objects
I undo the last "2" action
The group should not be moved Change One Of The Background Images
I change the second background image to "Koala.jpg"
The second background image should be "Koala.jpg" Can Not Draw With Pencil By Clicking
I select the pencil tool
I click on the canvas
There should be no pencil drawing
The "pencil" tool should not be active Draw With Pencil By Dragging
Using the pencil tool I drag on the canvas first right then up
There should be a pencil drawing
The pencil drawing should be where I dragged less running time Principle of symmetric change (by Gojko Adzic) ATDD tests are implemented at the same time as the feature what happens if a behavior changes with a new feature? duplicate the affected scenarios:
- before the new feature X should happen
- after the new feature Y should happen only duplicate those where the behavior under test is affected (the Then part from Given-When-Then) cross testing on platforms UI class 1 UI class 2 UI class 3 UI class 4 Action class 1 Action class 2 Action class 3 Scenario 1 Scenario 2 Scenario 3 Dispatcher class 1 Dispatcher class 2 Dispatcher class 3 DSL Java ActionScript mixed up functional and acceptance tests can't serve effectively as living documentation one class for all methods explicit waits not-so-reusable methods less flaky e.g. The arrow should not move "arrow1" should not move much more easier to maintain Twist One small change in a business model should require one small change to executable specifications. plans easier to change the scenarios only if the feature changes Test class Scenario 1 Scenario 2 Scenario 3 Dispatcher class 1 Dispatcher class 2 Dispatcher class 3 DSL Java ActionScript Twist
Full transcript