battle: bdd vs notbdd

18
1 CONFIDENTIAL BDD to Do or not to Do Roman Iovlev Anton Shapin

Upload: comaqaby

Post on 22-Jan-2018

43 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Battle: BDD vs notBDD

1CONFIDENTIAL

BDD to Do or not to Do

Roman Iovlev Anton Shapin

Page 2: Battle: BDD vs notBDD

2CONFIDENTIAL

ROMAN IOVLEV

Chief QA Automation

In Testing more than 12 years

In Testing Automation 10 years

Page 3: Battle: BDD vs notBDD

3CONFIDENTIAL

Let’s bdd it

Page 4: Battle: BDD vs notBDD

4CONFIDENTIAL

EXPERT

Page 5: Battle: BDD vs notBDD

5CONFIDENTIAL

EXPERT

Page 6: Battle: BDD vs notBDD

6CONFIDENTIAL

• Layer, Regex steps

• Scripted poor language

• DDT, step to step

• No classes

• Debug

• Navigation…

PAIN

Page 7: Battle: BDD vs notBDD

7CONFIDENTIAL

• Time:• BDD layer support

• Workarounds with before and in data flow

• Tests support (debug, navigation…)

• …

• Stability

• Complexity

• …

• No profit (((

LOOSES

Page 8: Battle: BDD vs notBDD

8CONFIDENTIAL

WHY?

Page 9: Battle: BDD vs notBDD

9CONFIDENTIAL

WHAT IS BDD?

Page 10: Battle: BDD vs notBDD

10CONFIDENTIAL

Scenario: Sum two numbers

• Given I Have Calculator

• When I calculate sum of ‘2’ and ‘3’

• Then I get result ‘5’

TESTS IN GHERKIN

Page 11: Battle: BDD vs notBDD

11CONFIDENTIAL

public void sumTwoNumbers() {

Calculator calc = new Calculator();

int sum = calc.sum(2,3);

areEquals(sum, 5);

}

TESTS IN GHERKIN

Scenario: Sum two numbers

• Given I Have Calculator

• When I calculate sum of ‘2’ and ‘3’

• Then I get result ‘5’

public void sumTwoNumbers() {

I.HaveCalculator();

I.CalculateSum(2,3);

I.GetResult(5);

}

STEPS

PATTERN

Page 12: Battle: BDD vs notBDD

13CONFIDENTIAL

We write 200 tests per year…

We write 300 tests per year!

Really? And what about thousands of tests?

PROFIT?

Page 13: Battle: BDD vs notBDD

14CONFIDENTIAL

In 90% or even 95%

cases we don’t need

BDD on projects

NO REASONS TO USE BDD

Page 14: Battle: BDD vs notBDD

15CONFIDENTIAL

• homePage.open();

• loginForm.loginAs(admin)

• mainMenu.select(Search);

• products.filterBy(“MacBook”)

• Assert.eachOf(SearchResults)

.contains(“MacBook”);

CODE LIKE BDD

Page 15: Battle: BDD vs notBDD

16CONFIDENTIAL

• Write tests faster

• More stable

• More obvious, clear and simple...

WRITE NO BDD

Page 16: Battle: BDD vs notBDD

17CONFIDENTIAL

WHEN IT IS GOOD TO USE BDD?

Page 17: Battle: BDD vs notBDD

18CONFIDENTIAL

HOW IT IS GOOD TO USE BDD?

Page 18: Battle: BDD vs notBDD

19CONFIDENTIAL

CONTACTS

roman.Iovlev

[email protected]