Introduction to ATDD and SpecFlow

ATDD, which stands for "Acceptance Test Driven Development" (also known as BDD -- "Behavior Driven Development" or SbE -- "Specification by Example"), is a pretty simple development methodology that utilizes automated acceptance tests for improving the collaboration between developers, testers and the domain experts. In addition to the immediate benefit of enhancing the customer satisfaction, it also ensures that the software is in delivery quality at any moment, provides an always-up-to-date product documentation (in the form of executable examples), and shortens the delivery cycle! In this talk I will explain the basic concepts of this method and its benefits, and provide some general guidelines on how to start adopting it. In addition, I will demonstrate how SpecFlow, which is a free, open-source, and the most popular tool for this purpose, can be used to facilitate the implementation of ATDD when working in .NET.

12 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist

Outline/structure of the Session

* My quest for the most successful way for writing software

* Chronicle of most software lifecycles

* The problems of Waterfall

* The problems with Agile without ATDD

* The challenges with automated tests that are not developed as part of ATDD

* The "medium priority bug" problem

* What is ATDD

* How ATDD solves the vast majority of the above problems

* What is SpecFlow and how it helps with ATDD

* Short SpecFlow demo

* Challenges and remedies in adopting ATDD

Learning Outcome

The audience will understand the benefits of doing ATDD and its key elements.


Target Audience

Anyone that cares about *Quality* rather than *Testing*

schedule Submitted 2 years ago

Comments Subscribe to Comments

comment Comment on this Submission

  • Liked Arnon Axelrod

    Arnon Axelrod - Writing great test automation

    480 Mins

    Writing automated tests is pretty easy. Writing Great automated tests is pretty hard. By "Great" I mainly mean:

    1. Easy to maintain

    2. Readable

    3. Reliable

    4. Reusable

    In this hands-on workshop I'll give very clear guidelines for writing such tests and their required infrastructure

  • Liked Arnon Axelrod

    Arnon Axelrod - Introducing Test Automation Essentials

    90 Mins

    As a test automation consultant who builds the infrastructure for many test automation projects, I found myself writing some common code over and over again. At some point I decided to collect all of this common code into one open-source project called “Test Automation Essentials”, so both others and I can use it in more projects. The project is composed of few small C# libraries, so you can use only the parts you really need. These libraries range from very generic utilities (that may be useful even in non-test projects) to more specific CodedUI and Selenium utilities. In this session, I will show the main utilities in these libraries and talk about the process of creating it. Even if you are not developing your test code in C#, I am sure you will get some ideas that you can use in other languages and tools too! (For more information see Test Automation Essentials)

    Among the features of these libraries are:

    • A straight-forward API to handle frames/iframes and multiple browser windows, avoiding unneccesary StaleElementExceptions and the combersome need for SwitchTo().
    • A WaitForElement method that simpilfies the usage of explicit wait (i.e. WebDriverWait), and avoiding the the time-wasting implicit wait when using FindElements.
    • An automatic logging of every Click and SendKeys actions
    • A simple way to write reliable and reusable cleanup code
    • Many syntactic sugars (mainly in the form of Extension Methods) that makes the code more readable