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

1,692 views
1,634 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,692
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

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

×