Философия и построение тестового фреймворка на основе...

31
atdays.com BDD Test Framework on PHP ... develop you features philosophically Oleksii Zozulenko 1 Saturday, February 9, 13

Upload: automated-testinginfo

Post on 10-May-2015

1.437 views

Category:

Technology


2 download

DESCRIPTION

Философия и построение тестового фреймворка на основе BDD в PHP проектах, Зозуленко Алексей Доклад содержит реальный опыт реального проекта, написанного на PHP с использованием подхода BDD (Behavior Driven Development). Будут рассмотрены практические стороны архитектуры тестового фреймворка с разных сторон: патернов (PageObject), уровня абстракций, функциональной декомпозиции тестов. Также Вы познакомитесь с инструментом Behat, который играет далеко не последнюю роль для фреймворка.

TRANSCRIPT

Page 1: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com

BDD Test Framework on PHP

... develop you features philosophically

Oleksii Zozulenko

1

Saturday, February 9, 13

Page 2: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

My name is Oleksii

I like automation (for last 7 years)

2

Saturday, February 9, 13

Page 3: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

Context. Project

3

Engine for Internet stores

Saturday, February 9, 13

Page 4: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays4

Test cases & Stories

Context. Docs

Saturday, February 9, 13

Page 5: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays4

Test cases & Stories

Context. Docs

Saturday, February 9, 13

Page 6: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays5

Context. Tests

Takes too long time

Can not involve developers

Auto tests

Hard to support

Saturday, February 9, 13

Page 7: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays6

Saturday, February 9, 13

Page 8: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

BEHAVIOR DRIVEN DEVELOPMENT

7

Saturday, February 9, 13

Page 9: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

Brief overview

8

Behavior, not test/should

Re-translation your user stories into code

http://dannorth.net/introducing-bdd/

Dan north

Saturday, February 9, 13

Page 10: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays9

We need documented tests

But

Tests should run!

Saturday, February 9, 13

Page 11: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

TOOLS

10

Saturday, February 9, 13

Page 12: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

Different

11

Codeception

RSpec

Cucumber

JSpec

JBehave

Fabulous

Behat

Saturday, February 9, 13

Page 13: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays12

Behat&

Cucumber&

Symfony&

Mink&(WebDriver)&

Tags,&Events&

Snippets&

Saturday, February 9, 13

Page 14: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

FRAMEWORK

13

Saturday, February 9, 13

Page 15: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays14

Saturday, February 9, 13

Page 16: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

ARCHITECTURE

15

Saturday, February 9, 13

Page 17: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

Flexibility

16

Saturday, February 9, 13

Page 18: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

Scalability

17

Saturday, February 9, 13

Page 19: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

APPLICATION API

18

Saturday, February 9, 13

Page 20: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays19

Application API

En##es&

DAO&

Model&

Saturday, February 9, 13

Page 21: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

PAGE OBJECT PATTERN

20

Saturday, February 9, 13

Page 22: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

Yaml structure

21

LayoutPage:elements:

Element1: “xpathvalue”Element2: “xpathvalue”

PageName:url: “canbedynamicwith%ID%”inherit: LayoutPageentityClass: “Bundle\Entities\PageEnity”defaultFind: “byId”elements:

Element: “%{AnotherPage/Element}%xpath”

Saturday, February 9, 13

Page 23: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

PageHelper

22

getPage($pageName)

getElement($pageName, $element, array

$attributes )

getUrl($pageName, $entityId)

Reading yaml structure

Saturday, February 9, 13

Page 24: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

PITFALLS

23

Saturday, February 9, 13

Page 25: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays24

Native Language

Saturday, February 9, 13

Page 26: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays25

Hard to re-use code

Saturday, February 9, 13

Page 27: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

SUMMARY

26

Saturday, February 9, 13

Page 28: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays

Use your Application

27

Use Your Application

Saturday, February 9, 13

Page 29: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com #atdays28

Saturday, February 9, 13

Page 30: Философия и построение тестового фреймворка на основе BDD в PHP проектах

Saturday, February 9, 13

Page 31: Философия и построение тестового фреймворка на основе BDD в PHP проектах

atdays.com

Thanks

[email protected]@qainsider

qainsider.com

30

Saturday, February 9, 13