SlideShare a Scribd company logo
BDD Test Framework
                                 on PHP
                              ... develop you features
                                    philosophically


  Oleksii Zozulenko




   atdays.com
                                                         1
Saturday, February 9, 13
My name is Oleksii

                           I like automation
                            (for last 7 years)


   atdays.com                      #atdays
                                                 2
Saturday, February 9, 13
Context. Project




                            Engine for Internet stores


   atdays.com                         #atdays
                                                         3
Saturday, February 9, 13
Context. Docs




                           Test cases & Stories

   atdays.com                      #atdays
                                                  4
Saturday, February 9, 13
Context. Docs




                           Test cases & Stories

   atdays.com                      #atdays
                                                  4
Saturday, February 9, 13
Context. Tests

                               Takes too long time

                                Can not involve
                                developers

                                Hard to support
                Auto tests
   atdays.com                    #atdays
                                                     5
Saturday, February 9, 13
atdays.com              #atdays
                                     6
Saturday, February 9, 13
BEHAVIOR DRIVEN
                             DEVELOPMENT

   atdays.com                    #atdays
                                             7
Saturday, February 9, 13
Brief overview

                                         Behavior, not test/should
                                          Re-translation your user
                                             stories into code
                   Dan north




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

   atdays.com                                  #atdays
                                                                      8
Saturday, February 9, 13
We need documented tests

                                      But

                                Tests should run!




   atdays.com                          #atdays
                                                      9
Saturday, February 9, 13
TOOLS


   atdays.com              #atdays
                                     10
Saturday, February 9, 13
Different

                           RSpec

                           Cucumber


                                                      Behat
                           JSpec                    Fabulous
                           JBehave
                                                   Codeception


   atdays.com                            #atdays
                                                                 11
Saturday, February 9, 13
Cucumber&
                           Behat&       Symfony&
                                    Mink&(WebDriver)&
                                      Tags,&Events&
                                        Snippets&

   atdays.com                          #atdays
                                                        12
Saturday, February 9, 13
FRAMEWORK


   atdays.com              #atdays
                                     13
Saturday, February 9, 13
atdays.com              #atdays
                                     14
Saturday, February 9, 13
ARCHITECTURE


   atdays.com               #atdays
                                      15
Saturday, February 9, 13
Flexibility




   atdays.com                  #atdays
                                         16
Saturday, February 9, 13
Scalability




   atdays.com                  #atdays
                                         17
Saturday, February 9, 13
APPLICATION API


   atdays.com              #atdays
                                     18
Saturday, February 9, 13
Application API


                                    Model&


                             DAO&

                                        En##es&




   atdays.com                         #atdays
                                                  19
Saturday, February 9, 13
PAGE OBJECT PATTERN


   atdays.com              #atdays
                                     20
Saturday, February 9, 13
Yaml structure
           LayoutPage:
            elements:
              Element1: “xpathvalue”
              Element2: “xpathvalue”

          PageName:
           url: “canbedynamicwith%ID%”
           inherit: LayoutPage
           entityClass: “BundleEntitiesPageEnity”
           defaultFind: “byId”
           elements:
             Element: “%{AnotherPage/Element}%xpath”
   atdays.com                    #atdays
                                                       21
Saturday, February 9, 13
PageHelper
           Reading yaml structure

                    getPage($pageName)

                    getElement($pageName, $element, array
                    $attributes )

                    getUrl($pageName, $entityId)



   atdays.com                           #atdays
                                                            22
Saturday, February 9, 13
PITFALLS


   atdays.com              #atdays
                                     23
Saturday, February 9, 13
Native Language




   atdays.com                    #atdays
                                             24
Saturday, February 9, 13
Hard to re-use code




   atdays.com                      #atdays
                                                 25
Saturday, February 9, 13
SUMMARY


   atdays.com              #atdays
                                     26
Saturday, February 9, 13
Use your Application
                                     Use Your Application




   atdays.com                        #atdays
                                                            27
Saturday, February 9, 13
atdays.com              #atdays
                                     28
Saturday, February 9, 13
Saturday, February 9, 13
Thanks


                           ozozulenko@gmail.com
                                 @qainsider
                               qainsider.com


   atdays.com
                                                  30
Saturday, February 9, 13

More Related Content

Similar to Философия и построение тестового фреймворка на основе BDD в PHP проектах (20)

PDF
Barcamp conway 2013
Luke Coleman
 
KEY
Scratch: Constructivist Learning Environment
Bernie Dodge
 
PDF
Crop UX design
Corey Brinkmann
 
PDF
Startup Weekend Columbus Feb. 2012 - BigKittyLabs prez
Dan Rockwell
 
PDF
Solit 2013, Behaviour Driven Development, Ихелис Александр
solit
 
PDF
Curphey AppSecUSA - Community The Killer Application
Mark Curphey
 
PDF
Design process
Tim Wright
 
PDF
Stanford session
Ty Smith
 
PDF
Mobile Platforms
University of Hertfordshire
 
PDF
6: Could hardware hacking save us? (Alexandra Deschamps-Sonsino)
Imran Ali
 
PDF
Designing for CMS 2013
Yesenia Perez-Cruz
 
PDF
Don't Repeat Your Mistakes: JavaScript Unit Testing
aaronjorbin
 
PDF
Mobile Web to Mobile Apps
Troy Miles
 
PDF
Test Driven Sysadmin
johanku
 
PDF
Could Hardware Hacking Save Us? (Alexandra Dechamps-Sonsino)
LSx Festival of Technology
 
PDF
Angular.js - JS Camp UKraine 2013
Max Klymyshyn
 
PDF
mistaeks i’ve made developing software products
Phil Calçado
 
ZIP
Squeezing more from the OPAC
Richard Wallis
 
PDF
Testable Code ... In Joomla!?
Paladin Web Services
 
PDF
Parsing for Fun and Profit
PatchSpace Ltd
 
Barcamp conway 2013
Luke Coleman
 
Scratch: Constructivist Learning Environment
Bernie Dodge
 
Crop UX design
Corey Brinkmann
 
Startup Weekend Columbus Feb. 2012 - BigKittyLabs prez
Dan Rockwell
 
Solit 2013, Behaviour Driven Development, Ихелис Александр
solit
 
Curphey AppSecUSA - Community The Killer Application
Mark Curphey
 
Design process
Tim Wright
 
Stanford session
Ty Smith
 
Mobile Platforms
University of Hertfordshire
 
6: Could hardware hacking save us? (Alexandra Deschamps-Sonsino)
Imran Ali
 
Designing for CMS 2013
Yesenia Perez-Cruz
 
Don't Repeat Your Mistakes: JavaScript Unit Testing
aaronjorbin
 
Mobile Web to Mobile Apps
Troy Miles
 
Test Driven Sysadmin
johanku
 
Could Hardware Hacking Save Us? (Alexandra Dechamps-Sonsino)
LSx Festival of Technology
 
Angular.js - JS Camp UKraine 2013
Max Klymyshyn
 
mistaeks i’ve made developing software products
Phil Calçado
 
Squeezing more from the OPAC
Richard Wallis
 
Testable Code ... In Joomla!?
Paladin Web Services
 
Parsing for Fun and Profit
PatchSpace Ltd
 

More from automated-testing.info (20)

PDF
Александр Кабалюк – SilkTest
automated-testing.info
 
PDF
Автоматизация тестирования как сервис
automated-testing.info
 
PDF
Тестирование производительности Ajax приложений с помощью JMeter
automated-testing.info
 
PDF
Быстрое расширение Robot Framework под свои нужды с использованием Python
automated-testing.info
 
PDF
Проблемы автоматизации крупных проектов: TestComplete
automated-testing.info
 
PDF
В поисках магической кнопки или как приручить SOAP UI
automated-testing.info
 
PDF
Keyword driven testing
automated-testing.info
 
PPTX
Andrey Azimov - Как найти работу тестировщику?
automated-testing.info
 
PPT
Jenkins auto configureforbranch-php
automated-testing.info
 
PPTX
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
automated-testing.info
 
PPT
Alexei Zozulenko - Test automation failure
automated-testing.info
 
PPTX
Vladimir Primakov - Test Automation By Example
automated-testing.info
 
PPTX
Codeception Introduction
automated-testing.info
 
PPTX
Ivan Bordug Test Automation Story
automated-testing.info
 
PPTX
Alexander Zvonov Test Automation Story
automated-testing.info
 
PPTX
Daria Chernishova Test Automation Story
automated-testing.info
 
PDF
Bdd with java using concordion and selenium ui tests
automated-testing.info
 
PDF
Bdd + SpecFlow + WatiN
automated-testing.info
 
PDF
Efficient performance testing
automated-testing.info
 
PPTX
Qtp Automation and Extensibility
automated-testing.info
 
Александр Кабалюк – SilkTest
automated-testing.info
 
Автоматизация тестирования как сервис
automated-testing.info
 
Тестирование производительности Ajax приложений с помощью JMeter
automated-testing.info
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
automated-testing.info
 
Проблемы автоматизации крупных проектов: TestComplete
automated-testing.info
 
В поисках магической кнопки или как приручить SOAP UI
automated-testing.info
 
Keyword driven testing
automated-testing.info
 
Andrey Azimov - Как найти работу тестировщику?
automated-testing.info
 
Jenkins auto configureforbranch-php
automated-testing.info
 
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
automated-testing.info
 
Alexei Zozulenko - Test automation failure
automated-testing.info
 
Vladimir Primakov - Test Automation By Example
automated-testing.info
 
Codeception Introduction
automated-testing.info
 
Ivan Bordug Test Automation Story
automated-testing.info
 
Alexander Zvonov Test Automation Story
automated-testing.info
 
Daria Chernishova Test Automation Story
automated-testing.info
 
Bdd with java using concordion and selenium ui tests
automated-testing.info
 
Bdd + SpecFlow + WatiN
automated-testing.info
 
Efficient performance testing
automated-testing.info
 
Qtp Automation and Extensibility
automated-testing.info
 
Ad

Recently uploaded (20)

PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Ad

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

  • 1. BDD Test Framework on PHP ... develop you features philosophically Oleksii Zozulenko atdays.com 1 Saturday, February 9, 13
  • 2. My name is Oleksii I like automation (for last 7 years) atdays.com #atdays 2 Saturday, February 9, 13
  • 3. Context. Project Engine for Internet stores atdays.com #atdays 3 Saturday, February 9, 13
  • 4. Context. Docs Test cases & Stories atdays.com #atdays 4 Saturday, February 9, 13
  • 5. Context. Docs Test cases & Stories atdays.com #atdays 4 Saturday, February 9, 13
  • 6. Context. Tests Takes too long time Can not involve developers Hard to support Auto tests atdays.com #atdays 5 Saturday, February 9, 13
  • 7. atdays.com #atdays 6 Saturday, February 9, 13
  • 8. BEHAVIOR DRIVEN DEVELOPMENT atdays.com #atdays 7 Saturday, February 9, 13
  • 9. Brief overview Behavior, not test/should Re-translation your user stories into code Dan north http://dannorth.net/introducing-bdd/ atdays.com #atdays 8 Saturday, February 9, 13
  • 10. We need documented tests But Tests should run! atdays.com #atdays 9 Saturday, February 9, 13
  • 11. TOOLS atdays.com #atdays 10 Saturday, February 9, 13
  • 12. Different RSpec Cucumber Behat JSpec Fabulous JBehave Codeception atdays.com #atdays 11 Saturday, February 9, 13
  • 13. Cucumber& Behat& Symfony& Mink&(WebDriver)& Tags,&Events& Snippets& atdays.com #atdays 12 Saturday, February 9, 13
  • 14. FRAMEWORK atdays.com #atdays 13 Saturday, February 9, 13
  • 15. atdays.com #atdays 14 Saturday, February 9, 13
  • 16. ARCHITECTURE atdays.com #atdays 15 Saturday, February 9, 13
  • 17. Flexibility atdays.com #atdays 16 Saturday, February 9, 13
  • 18. Scalability atdays.com #atdays 17 Saturday, February 9, 13
  • 19. APPLICATION API atdays.com #atdays 18 Saturday, February 9, 13
  • 20. Application API Model& DAO& En##es& atdays.com #atdays 19 Saturday, February 9, 13
  • 21. PAGE OBJECT PATTERN atdays.com #atdays 20 Saturday, February 9, 13
  • 22. Yaml structure LayoutPage: elements: Element1: “xpathvalue” Element2: “xpathvalue” PageName: url: “canbedynamicwith%ID%” inherit: LayoutPage entityClass: “BundleEntitiesPageEnity” defaultFind: “byId” elements: Element: “%{AnotherPage/Element}%xpath” atdays.com #atdays 21 Saturday, February 9, 13
  • 23. PageHelper Reading yaml structure getPage($pageName) getElement($pageName, $element, array $attributes ) getUrl($pageName, $entityId) atdays.com #atdays 22 Saturday, February 9, 13
  • 24. PITFALLS atdays.com #atdays 23 Saturday, February 9, 13
  • 25. Native Language atdays.com #atdays 24 Saturday, February 9, 13
  • 26. Hard to re-use code atdays.com #atdays 25 Saturday, February 9, 13
  • 27. SUMMARY atdays.com #atdays 26 Saturday, February 9, 13
  • 28. Use your Application Use Your Application atdays.com #atdays 27 Saturday, February 9, 13
  • 29. atdays.com #atdays 28 Saturday, February 9, 13
  • 31. Thanks [email protected] @qainsider qainsider.com atdays.com 30 Saturday, February 9, 13