Software Testing

Simplifying BDD through FAQ’s

This article is designed to learn about BDD – Business Driven Development by answering few simple questions.

1) Before getting into BDD, what is TDD?

 BDD1

 

 1) What is BDD? 

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD). BDD is the synthesis and refinement of practices from Test Driven Development (TDD) and Acceptance Test Driven Development (ATDD).

  BDD2

3) What are the strategies of BDD?

 

The following are the strategies of BDD.

    1. Think from the Outside In
    2. Use the Five Whys on User Stories
    3. Single Notation

IV.  Consistent Usage 

4) Example for 5 Why’s in BDD?

 An Example for 5 Why’s in BDD.

 Mobile will not boot up. (the problem)

 1.   Why? – The battery is dead. (First why)

 2.   Why? – The memory card is defective. (Second why)

 3.   Why? – There is a software bug or a glitch. (Third why)

 4.   Why? – There is a bad or troublesome application. (Fourth why)

5.   Why? – The mobile is stuck after a OS upgrade. (Fifth why, a root cause)

5) What is Behavior Specification?

BDD specifies that business analysts and developers should collaborate in this area and should specify behavior in terms of user stories, which are each explicitly written down in a dedicated document. Each user story should, in some way, follow the following structure:

 Title: Narrative of the story along with clear title

 Acceptance Criteria: Description of each specific case of the narrative/Title. This list the initial conditions that is assumed to be true and list the final expected outcome.

 6) What is in sprint automation?

 Automation of Behavior Specification within the sprint.

 

 7) What is the language used for In-Sprint automation?

 Gherkin is plain-text English with a little extra structure. Gherkin is designed to be easy to learn by non-programmers yet structured enough to allow concise description of examples to illustrate business rules in most real-world domains.

 8) What are the various In-sprint Automation tools?

 In-Sprint automation is achieved by combination of various tools and techniques. Some of the popular combinations are Cucumber, Gherkin, Jenkins

 9) What are the major Challenges for In-sprint Automation?

 ·         Lack of Transparency early in the sprint

 ·         Automation framework not suitable for In-sprint testing

 ·         Not having consistent QA resources