Successfully reported this slideshow.
Your SlideShare is downloading. ×

Meeting #4. Frameworks.

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Selen framework
Selen framework
Loading in …3
×

Check these out next

1 of 28 Ad
Advertisement

More Related Content

Slideshows for you (20)

Advertisement

Similar to Meeting #4. Frameworks. (20)

Advertisement

Meeting #4. Frameworks.

  1. 1. Frameworks<br />Игорь Хрол<br />
  2. 2. План<br />Проблемы автоматизации<br />Что такое фреймворк?<br />Как он решает проблемы?<br />Некоторые практики с фреймворка на Selenium RC<br />
  3. 3. Проблемы автоматизации<br />В конце цикла разработки – много зависимостей<br />Изменения UI<br />Изменение бизнес-логики и тест-кейсов<br />QA<br />Auto QA<br />BA<br />DEV<br />
  4. 4. Что такое Framework?<br />Каркас, структура, сфера деятельности<br />Винформационных системах структура программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.<br />Спасибо, Википедия<br />
  5. 5. Зачем нужен Framework?<br />Ре-использование кода<br />Решение проблем одним изменением<br />Уменьшение количества изобретателей «велосипедов»<br />
  6. 6. Layering<br />Подход к построению архитектуры системы<br />
  7. 7. UI Layer<br />Цель: контролировать изменения UI<br />Примеры:<br />Хранилище локаторов<br />Object Repository в QTP<br />Name Mapping в TestComplete<br />UI-Element в Selenium IDE<br />
  8. 8. Business components layer<br />Цель: контролировать изменения бизнес-логики<br />Примеры:<br />Reusable Actions в QTP<br />Functions в TestCompleteили любом другом инструменте<br />
  9. 9. Utilities<br />Цель: вспомогательная<br />Примеры:<br />Логгирование<br />Работа с базой данных<br />Чтение настроек и тестовых данных<br />
  10. 10. Типичная схема<br />Utilities layer<br />Test scripts<br />Business layer<br />UI layer<br />AUT / SUT<br />
  11. 11. KISS<br />Используйте готовые решения<br />Усложняйте архитектуру тогда, когда это нужно<br />Старайтесь делать всё проще и очевидно<br />
  12. 12. Best Practices<br />
  13. 13. Запуск тестов из командной строки<br />Ant (http://ant.apache.org/)<br />Запуск selenium server<br />Компиляция исходных кодов<br />Запуск тестов<br />Остановка selenium server<br />
  14. 14. Как хранить общий доступ к selenium?<br />Передавать каждой функции<br />Инициализировать изначально и использовать статическое поле для обращения к нему<br />
  15. 15. Базовый класс для всех тест кейсов<br />
  16. 16. Структура тест-кейса<br />Preconditions<br />Test case<br />Cleanup<br />
  17. 17. Где хранить настройки?<br />Найдите грань между настройками и тестовыми данными:<br />Selenium host<br />Selenium port<br />Timeout<br />Base URL<br />properties-файлы – стандарт для Java (http://download.oracle.com/javase/1.4.2/docs/api/java/util/Properties.html)<br />config.xml – дляC#<br />
  18. 18. Где хранить тестовые данные?<br />Excel<br />CSV-файлы<br />База данных<br />XML<br />
  19. 19. Excel-хранилища данных<br />Табличные данные на каждом sheet<br />Key-value пары в столбец<br />Именованные диапазоны<br />Чем читать excel?<br />JDBC (http://www.ehow.com/how_4810548_use-jdbc-connect-ms-excel.html)<br />POI (http://poi.apache.org/)<br />
  20. 20. Где хранить локаторы?<br />Поля классов<br />
  21. 21. Где хранить локаторы?<br />Поля интерфейсов<br />
  22. 22. Где хранить локаторы?<br />properties-файлы<br />http://seleniumhq.org/docs/06_test_design_considerations.html#ui-mapping<br />
  23. 23. Структура UI Layer<br />Разбивка на страницы<br />Сбор «особенных» UI элементов в отдельные классы:<br />Различные кастомизированные кнопки-поля (нужно вызывать специальные события)<br />Upload-download файлов<br />Иерархия объектов (GWT, например)<br />
  24. 24. Структура Business Layer<br />Набор статических методов, объединённых по классам<br />Чем проще, тем лучше<br />
  25. 25. Tracebilityс ручным тестированием<br />Соотнесение тест-кейсов<br />Соотнесение тестовых шагов<br />Интеграция с существующей отчётностью<br />HP Quality Center<br />TestLink<br />JIRA<br />
  26. 26. Отчёты<br />HTML<br />Группировка по test suite и test case<br />Screenshots<br />Максимально user friendly<br />При возможности – интеграция с существующей системой отчётности<br />
  27. 27. Screenshots<br />void captureScreenshot(String filename);<br />Обычно делается во время ошибки<br />Try-catch в BaseTest<br />Listener в JUnit<br />http://www.cloudtesting.com/blog/2009/06/24/capturing-screen-shots-of-browsers-with-selenium-and-cloud-testing-part-1/<br />
  28. 28. Вопросы?<br />

×