Ollikainen 20082013

551 views

Published on

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. Presentation Project Management Day at TUT on August 20, 2013

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
551
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ollikainen 20082013

  1. 1. BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. Pekka Ollikainen Open Source Microsoft CodePlex
  2. 2. bio • Verkkosivustovastaava Suomen Sarjakuvaseura ry alk. 08/2013 • Web-ohjelmoinnin erikoistumisopinnot Arcada AMK 2009-2010 • HUK Tampereen yliopisto
  3. 3. Scripts for all Reasons 1 • Elokuvan tekemisen ja ohjelmistokehityksen samanalaisuuksia: • Käsikirjoitus(script) vs. vaatimusmäärittely(requirments) • Storyboards vs. Mockups • Digital film distribution vs. Distrobution via app stores
  4. 4. Scripts for all Reasons 2 • Käsikirjoitus/vaatimusmäärittely dokumentit kertovat millainen elokuva/ohjelmisto halutaan tehdä ja miten • Käsikirjoitus koostuu kohtauksista, vaatimusmäärittelyt featureista(feature) ja skenaarioista(scenarios) • Käsikirjoituksella on muoto ja funktio • Vaatimusmäärittelyllä muoto ja ohjelmistolla on funktio
  5. 5. Behaviour Driven Developement • behavior-driven development (BDD) is a software development process based on testdriven development • how software development should be managed by both business interests and technical insight • use of specialized software tools to support the development process
  6. 6. Cucumber • Gherkin language • Documenting examples way that it can be easily understood both by stakeholders and by Cucumber • Gherkin can be call a programming language but its primary goal is human readibility • Write automate tests that can be read like documentation
  7. 7. Gherkin syntax • Structure and meaning using set of special keywords • Feature • Background • Scenario • Given • When • Then
  8. 8. Cucumber:Living documentation • Living: Cucumber testaa kehitettävää järjestelmää jatkuvasti automaattisesti, että se toimisi kunnolla kun otetaan lopulta käyttöön.. • Documentation: Cucumber fasiloi hyvän keskustelun/kommunikaation siitä, miten sovellus toimii nyt ja miten se pitäisi toimia jatkossa..
  9. 9. Esimerkkikoodia Feature: Write blog As a blog owner I can write new blog post Scenario: Write blog Given I am on the blog homepage When I click "New Post" link And I fill "My first blog" as Title And I fill "Test content" as content And I click "Post" button Then I should see the blog I just posted
  10. 10. Esimerkkikoodia Feature: Credit card payment As a online shopper I want to pay through my Credit card So that I can buy stuff online instead of visiting the super market Scenario: transaction completed successfully Given ... When ... Then ... Scenario: Credit card is invalid Given ... When ... Then ...
  11. 11. How Cucumber executes a scenario
  12. 12. Write scenario at Gherkin
  13. 13. Add SpecFlow Library
  14. 14. GenerateStepDefinition
  15. 15. Does the Step definitions have matching C# code?
  16. 16. FAIL!!Test Execution Report
  17. 17. Calling for Matching C#Code..
  18. 18. How to apply MVC to Mobile • Applying MVC to mobile projects http://senchaproject.codeplex.com/wikipage? title=How%20to%20apply%20MVC%20to%20 mobile%20project&referringTitle=Home
  19. 19. Our scenarios Scenario:Android device Given Android access the application And OS configuration N When Switcher is On Then UI will be rendered with UI library X Scenario:iPhone device Given iPhone access the application And OS configuration N When Switcher is On Then UI will be rendered with UI library Y Scenario:Windows phone device Given Windows phone access the application And OS configuration N When Switcher is On Then UI will be rendered with UI library Z
  20. 20. Project statistics
  21. 21. History
  22. 22. lähteet: • CODEMagazine, May/June 2013 • Instant Cucumber BDD How-to, Packt 2013 • The Cucumber Book, The Pragmatic Programmers,2012 • Cucumber Recipes, The Pragmatic Programmers,2013 • Projektiyhdistys/PRY/Projektitoiminta 1/2013
  23. 23. Johtopäätöksiä Cucumber • Luonnollinen kieli ja keskustelun rakenteet ohjelmistosuunnittelun lähtökohtana • ”demokraatinen”suunnittelukieli • +Vaihteittainen työskentelymalli • -käyttöönotto ohjelmistohankkessa ei yksinkertaista

×