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