Moving to tdd bdd

1,002 views

Published on

Technical stream: Moving to test- and behaviour-driven development
In this session Kim will be going over the benefits of introducing TDD and BDD: How to introduce them, their differences, how to deal with push back from team members and upper management.
The benefits of driving our development with tests, how it helps the quality and maintainability of our software, how it helps the business and the client. The types of tests that best serve us for the different layers of our application development and how business people can get benefit from TDD and especially BDD.
When Kim’s not working at his day job as a senior software engineer, consultant, Scrum Master, you can find him indulging his passions of software architecture, creating and exploiting software and networks. In order to develop and release software faster, it's Kim’s aim to increase the awareness for the need of higher quality incremental software releases.

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
1,002
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Moving to tdd bdd

  1. 1. Acceptance Test Driven Development (ATDD) Automated Acceptance Testing (AAT) Behaviour Driven Development (BDD) Pioneered by Dan North 2006
  2. 2. What are the goals?Whats in it for The Development Team?What is it going to cost The Development Team?Whats in it for the business?What is it going to cost the business?What does it mean to be doing BDD or ATDDTooling options?How to deal with push back from management or team members.
  3. 3. Goals● Communication bridge● Measurability● Ultimate visibility● Assistance in being able to deliver every Sprint● Provide confirmation that we have implemented specification● Code that is testable, of high quality, maintainable, extensible● RoI● Write less code
  4. 4. Beware!Higher level tests = more expensive to create and maintainSlower to run, not run in CI, usually run in nightly build● Potential for latency in the development cycle● Developers less likely to run them manually● Faults take longer to locate and fix
  5. 5. Whats in it for the Devs?Clear, concise and often terse automatable specificationsLiving (always up to date) documentationConfidence were only writing whats neededClarification of assumptionsProduct qualityUnit tests tell us our software works...BDD tells us it does what the customer wantsInstant feedbackAssists in tight iterations
  6. 6. Cost to the Development Team?Paradigm shiftForced into active engagementFinding unit test and mocking frameworksLearning curveMocking frameworks Ive evaluated recently:● NMock2, 3● Rhino Mocks● TypeMock● Moq
  7. 7. Cost of not doing BDD● Product quality● Predictability● Accountability● Rework... Ultimately costing the business.
  8. 8. Whats in it for the Business?● Executable, living specifications providing assurance that the business functionality is “Done”● Confidence in The Scrum Team● Solid development KPI● Visibility of what to expect from a Done increment● Visibility into how much business value is being delivered● Predictability. Empowerment● Higher product quality = less money spent on rework and maintenance● Confidence that not only is the product being built correctly... but also that the correct product is being built
  9. 9. Cost to the Business?● A little team planning and a spike on tools● PO and stakeholders to understand what they are asking for.
  10. 10. Cost of not doing BDD● Visibility● Forecast-ability● Ability to make informed decisions● Software that does what it should do.● Speed to market. Software is a liability until its released.
  11. 11. How do we do it? → Once tools are chosen → At the beginning of the Sprint → Test condition workshop...Search BinaryMist on how-to-optimise-your-testing-effort
  12. 12. Resources:Youll find everything you need here:https://github.com/techtalk/SpecFlow/wiki/Documentation
  13. 13. Resources:Best Intro Video:http://www.watchmecode.net/jasmine-standalone#previewStandalone Runner:https://github.com/pivotal/jasmine/downloadsBest Intro Doc:http://pivotal.github.com/jasmine/Serenity Runner with .NET:http://lostechies.com/josharnold/2012/02/25/running-jasmine-specs-in-d
  14. 14. FitNesseResources:Two Minute Example:http://fitnesse.org/FitNesse.UserGuide.TwoMinuteExampleTest Driven .NET Development with FitNesse by Gojko AdzicStart here with Installation:http://fitnesse.org/FitNesse.UserGuide.DownloadingAndInstallingFitNesFitSharp:https://github.com/jediwhale/fitsharp/downloadsSource:https://github.com/unclebob/fitnesse
  15. 15. Dealing with push backThis is never going to be easy.Books Ive found helpful:● Fearless Change: Patterns for Introducing New Ideas by Mary Lynn Manns and Linda Rising● Change Agent: Engaging your passion to be the one who makes a difference by Os Hillman
  16. 16. Resources● If not already TDDing http://blog.binarymist.net/2012/12/01/moving-to-tdd/● Guidance on prioritising areas to test that give biggest bang for your buck http://blog.binarymist.net/2012/03/24/how-to-optimise-your-testing-ef● Book: Specification By Example by Gojko Adzic

×