Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Руководство по  приготовлению бутербродов из Selenium Uladzimir Kryvenka Февраль  2012
Обо мне Инструменты:  Selenium, Coded UI Test Один из основателей: Пишу блог: В тестировании 5+ лет Автор портала: Автомат...
Сегодня в меню <ul><li>Аперитив  </li></ul><ul><li>Готовим бутерброды </li></ul><ul><li>Пробуем на вкус </li></ul><ul><li>...
Наш продукт  <ul><li>Используется более чем в  50  странах мира </li></ul><ul><li>Наши клиенты:  Microsoft, Volvo, Lenovo,...
Проблемы <ul><li>Слишком долго </li></ul><ul><li>Много рутины </li></ul><ul><li>Неожиданные ошибки </li></ul><ul><li>Сложн...
Решение <ul><li>Автоматизация! </li></ul>
Почему  Selenium RC ? <ul><li>Натренировались на  Selenium   IDE </li></ul><ul><li>Умеет делать все, что нужно </li></ul><...
Проблемы в тестах <ul><li>Прямолинейно </li></ul><ul><li>Непонятно </li></ul><ul><li>Мудреные локаторы </li></ul><ul><li>С...
Решения <ul><li>DSL (Domain - specific language) </li></ul><ul><li>Page Object pattern </li></ul><ul><li>Page Element patt...
Ингредиенты <ul><li>Microsoft Visual Studio </li></ul><ul><li>C# </li></ul><ul><li>MS Test </li></ul><ul><li>Selenium RC  ...
ButerbroD  в разрезе
Точка входа  Инициализация … public  StateS( string  host,  int  port,  string  browser,  string  url) { KillBrowser(); Pr...
Selenium Document   <ul><li>Имплементация команд  Selenium- а </li></ul><ul><li>Создаем  обертки для команд </li></ul><ul>...
Элементы страниц  Toggle Button Menu List Alert Frame ComboBox Attach Table <ul><li>Activate() </li></ul><ul><li>Check() <...
Страницы
Страницы <ul><li>Создаем абстракцию страницы </li></ul><ul><li>Описываем свойства страницы </li></ul><ul><li>Описываем эле...
Из чего состоит любой тест
Атомарные действия <ul><li>Минимальное логическое   действие </li></ul>
Шаги в любом ручном тесте
Составные действия
Организовываем действия
Тест - кейсы
Пример   тест-кейса <ul><li>public   static   CreateActivity   TestActivity () </li></ul><ul><li>{ </li></ul><ul><li>retur...
А можно и так <ul><li>public   static   CreateActivity   ActivityForProjectMessageboardTest () </li></ul><ul><li>{ </li></...
Пару слов о  Coded UI Test
Selenium + Coded UI
Логирование  <ul><li>Каждый уровень  ButerbroD-a  лог ируется </li></ul><ul><li>[C] Login as 'TestUser',  ‘password ': </l...
Демо
Плюсы <ul><li>Легко </li></ul><ul><li>Понятно </li></ul><ul><li>Гибко </li></ul><ul><li>Расширяемо </li></ul>
Минусы <ul><li>Долгий старт </li></ul><ul><li>Не всегда гибко </li></ul><ul><li>Нужно думать </li></ul>
Результаты <ul><li>> 500  авто-тестов </li></ul><ul><li>120 тестовых наборов </li></ul><ul><li>> 55%  покрытия кода </li><...
Приправы по вкусу <ul><li>Распараллеливание тестов </li></ul><ul><li>Сопров о ждаемость </li></ul><ul><li>Максимум пользы ...
Планы на будущее   <ul><li>Selenium WebDriver? </li></ul><ul><li>Open source </li></ul>
<ul><li>…  осталось еще  совсем  немного </li></ul>
Пообщаемся ?   http://bugscatcher.net / [email_address] u.kryvenka
А теперь ваш и  - ы
Upcoming SlideShare
Loading in …5
×

Руководство по приготовлению бутербродов из Selenium

Моя презентация к докладу “Руководство по приготовлению бутербродов из Selenium” с которой я выступил на Selenium Camp в Киеве 25 февраля 2012 года.

  • Login to see the comments

Руководство по приготовлению бутербродов из Selenium

  1. 1. Руководство по приготовлению бутербродов из Selenium Uladzimir Kryvenka Февраль 2012
  2. 2. Обо мне Инструменты: Selenium, Coded UI Test Один из основателей: Пишу блог: В тестировании 5+ лет Автор портала: Автоматизацией занимаюсь 2+ года Это я: Работаю : Head of QA в Paralect Опыт:
  3. 3. Сегодня в меню <ul><li>Аперитив </li></ul><ul><li>Готовим бутерброды </li></ul><ul><li>Пробуем на вкус </li></ul><ul><li>Итоги </li></ul><ul><li>Десерт </li></ul>
  4. 4. Наш продукт <ul><li>Используется более чем в 50 странах мира </li></ul><ul><li>Наши клиенты: Microsoft, Volvo, Lenovo, FBI, Harvard и многие другие </li></ul>www.easyprojects.net Easy Projects .NET is a web-based project management tool, making team collaboration hassle-free and straightforward.
  5. 5. Проблемы <ul><li>Слишком долго </li></ul><ul><li>Много рутины </li></ul><ul><li>Неожиданные ошибки </li></ul><ul><li>Сложности при выпуске билдов  </li></ul>
  6. 6. Решение <ul><li>Автоматизация! </li></ul>
  7. 7. Почему Selenium RC ? <ul><li>Натренировались на Selenium IDE </li></ul><ul><li>Умеет делать все, что нужно </li></ul><ul><li>Много документации </li></ul><ul><li>… </li></ul><ul><li>Ну тут вы все знаете  </li></ul>
  8. 8. Проблемы в тестах <ul><li>Прямолинейно </li></ul><ul><li>Непонятно </li></ul><ul><li>Мудреные локаторы </li></ul><ul><li>Сложно править </li></ul><ul><li>Повторное использование кода </li></ul>
  9. 9. Решения <ul><li>DSL (Domain - specific language) </li></ul><ul><li>Page Object pattern </li></ul><ul><li>Page Element pattern </li></ul>
  10. 10. Ингредиенты <ul><li>Microsoft Visual Studio </li></ul><ul><li>C# </li></ul><ul><li>MS Test </li></ul><ul><li>Selenium RC </li></ul>
  11. 11. ButerbroD в разрезе
  12. 12. Точка входа Инициализация … public StateS( string host, int port, string browser, string url) { KillBrowser(); Processor = new HttpCommandProcessor (host, port, browser, url); Selenium = new DefaultSelenium (Processor); Selenium.Start(); Selenium.WindowMaximize(); Selenium.WindowFocus(); }
  13. 13. Selenium Document <ul><li>Имплементация команд Selenium- а </li></ul><ul><li>Создаем обертки для команд </li></ul><ul><li>Начинаем формировать свой DSL </li></ul>
  14. 14. Элементы страниц Toggle Button Menu List Alert Frame ComboBox Attach Table <ul><li>Activate() </li></ul><ul><li>Check() </li></ul><ul><li>Deactivate() </li></ul><ul><li>IsChecked() </li></ul><ul><li>… </li></ul>Text Field <ul><li>TypeText() </li></ul><ul><li>IsEditable() </li></ul><ul><li>GetValue() </li></ul><ul><li>ClearText() </li></ul><ul><li>… </li></ul>Button <ul><li>Click() </li></ul><ul><li>ClickAndWait() </li></ul><ul><li>DoubleClick() </li></ul><ul><li>MouseDown() </li></ul><ul><li>… </li></ul>
  15. 15. Страницы
  16. 16. Страницы <ul><li>Создаем абстракцию страницы </li></ul><ul><li>Описываем свойства страницы </li></ul><ul><li>Описываем элементы страницы </li></ul><ul><li>Описываем проверки страницы </li></ul>
  17. 17. Из чего состоит любой тест
  18. 18. Атомарные действия <ul><li>Минимальное логическое действие </li></ul>
  19. 19. Шаги в любом ручном тесте
  20. 20. Составные действия
  21. 21. Организовываем действия
  22. 22. Тест - кейсы
  23. 23. Пример тест-кейса <ul><li>public static CreateActivity TestActivity () </li></ul><ul><li>{ </li></ul><ul><li>return new CreateActivity () </li></ul><ul><li>{ </li></ul><ul><li>LoginCase = Login .AsAdministrator, </li></ul><ul><li>CreateStep = new Actions.Composite.Activity. Create () </li></ul><ul><li>.WithAttach( InputDataConf .AttachSmallFile, &quot;attach for a project&quot; ) </li></ul><ul><li>.WithNameAndProject( “TestActivity&quot; , “TestProject&quot; ) </li></ul><ul><li>.WithStartDateWithShift(0, +1, 0) </li></ul><ul><li>.WithType( &quot;Request&quot; ) </li></ul><ul><li>.WithPriority( &quot;Urgent&quot; ) </li></ul><ul><li>.WithDuration ( &quot;55&quot; ) </li></ul><ul><li>.WithProgress ( &quot;80&quot; ) </li></ul><ul><li>.WithEstimatedHours( &quot;1.00&quot; ) </li></ul><ul><li>.WithMember( &quot;Administrator&quot; ) </li></ul><ul><li>.WithMember( &quot;Den&quot; ) </li></ul><ul><li>.WithMember( &quot;Project Manager&quot; ) </li></ul><ul><li>}; </li></ul><ul><li>} </li></ul>
  24. 24. А можно и так <ul><li>public static CreateActivity ActivityForProjectMessageboardTest () </li></ul><ul><li>{ </li></ul><ul><li>return new CreateActivity () </li></ul><ul><li>{ </li></ul><ul><li>LoginCase = Login .AsAdministrator, </li></ul><ul><li>CreateStep = new Actions.Composite.Activity. Create () </li></ul><ul><li>.WithStartDateWithShift(0, 0, -2) </li></ul><ul><li>.WithEndDateWithShift(0, +1, 0) </li></ul><ul><li>.WithProject( &quot;ProjectForProjectMessageboardTest&quot; ) </li></ul><ul><li>.WithName( &quot;ActivityForProjectMessageboardTest&quot; ) </li></ul><ul><li>}; </li></ul><ul><li>} </li></ul>
  25. 25. Пару слов о Coded UI Test
  26. 26. Selenium + Coded UI
  27. 27. Логирование <ul><li>Каждый уровень ButerbroD-a лог ируется </li></ul><ul><li>[C] Login as 'TestUser', ‘password ': </li></ul><ul><li>[A] Filling login credentials: </li></ul><ul><li>[E] Set 'TestUser' to input field 'TextField [id: login]': </li></ul><ul><li>[D] Typing 'TestUser' in 'TextField [id: login]'. </li></ul><ul><li>[E] Set '123456' to input field 'TextField [id: pass]': </li></ul><ul><li>[D] Typing '123456' in 'TextField [id: pass]'. </li></ul><ul><li>[P] Check is no error message appear: </li></ul>
  28. 28. Демо
  29. 29. Плюсы <ul><li>Легко </li></ul><ul><li>Понятно </li></ul><ul><li>Гибко </li></ul><ul><li>Расширяемо </li></ul>
  30. 30. Минусы <ul><li>Долгий старт </li></ul><ul><li>Не всегда гибко </li></ul><ul><li>Нужно думать </li></ul>
  31. 31. Результаты <ul><li>> 500 авто-тестов </li></ul><ul><li>120 тестовых наборов </li></ul><ul><li>> 55% покрытия кода </li></ul><ul><li>> 80% покрытия требований </li></ul><ul><li>Приёмочное тестирование не требует вмешательства людей </li></ul>
  32. 32. Приправы по вкусу <ul><li>Распараллеливание тестов </li></ul><ul><li>Сопров о ждаемость </li></ul><ul><li>Максимум пользы </li></ul><ul><li>Надежность </li></ul><ul><li>Оптимизация </li></ul><ul><li>Покрытие кода </li></ul>
  33. 33. Планы на будущее <ul><li>Selenium WebDriver? </li></ul><ul><li>Open source </li></ul>
  34. 34. <ul><li>… осталось еще совсем немного </li></ul>
  35. 35. Пообщаемся ?  http://bugscatcher.net / [email_address] u.kryvenka
  36. 36. А теперь ваш и - ы

×