Содержание

Слайд 2

План

Проблемы автоматизации
Что такое фреймворк?
Как он решает проблемы?
Некоторые практики с фреймворка на Selenium

План Проблемы автоматизации Что такое фреймворк? Как он решает проблемы? Некоторые практики
RC

Слайд 3

Проблемы автоматизации

В конце цикла разработки – много зависимостей
Изменения UI
Изменение бизнес-логики и тест-кейсов

BA

DEV

QA

Auto

Проблемы автоматизации В конце цикла разработки – много зависимостей Изменения UI Изменение
QA

Слайд 4

Что такое Framework?

Каркас, структура, сфера деятельности
В информационных системах структура программной системы; программное

Что такое Framework? Каркас, структура, сфера деятельности В информационных системах структура программной
обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.
Спасибо, Википедия

Слайд 5

Зачем нужен Framework?

Ре-использование кода
Решение проблем одним изменением
Уменьшение количества изобретателей «велосипедов»

Зачем нужен Framework? Ре-использование кода Решение проблем одним изменением Уменьшение количества изобретателей «велосипедов»

Слайд 6

Layering

Подход к построению архитектуры системы

Layering Подход к построению архитектуры системы

Слайд 7

UI Layer

Цель: контролировать изменения UI
Примеры:
Хранилище локаторов
Object Repository в QTP
Name Mapping в TestComplete
UI-Element

UI Layer Цель: контролировать изменения UI Примеры: Хранилище локаторов Object Repository в
в Selenium IDE

Слайд 8

Business components layer

Цель: контролировать изменения бизнес-логики
Примеры:
Reusable Actions в QTP
Functions в TestComplete или

Business components layer Цель: контролировать изменения бизнес-логики Примеры: Reusable Actions в QTP
любом другом инструменте

Слайд 9

Utilities

Цель: вспомогательная
Примеры:
Логгирование
Работа с базой данных
Чтение настроек и тестовых данных

Utilities Цель: вспомогательная Примеры: Логгирование Работа с базой данных Чтение настроек и тестовых данных

Слайд 10

Типичная схема

AUT / SUT

Utilities layer

UI layer

Business layer

Test scripts

Типичная схема AUT / SUT Utilities layer UI layer Business layer Test scripts

Слайд 11

KISS

Используйте готовые решения
Усложняйте архитектуру тогда, когда это нужно
Старайтесь делать всё проще и

KISS Используйте готовые решения Усложняйте архитектуру тогда, когда это нужно Старайтесь делать всё проще и очевидно
очевидно

Слайд 12

Best Practices

Best Practices

Слайд 13

Запуск тестов из командной строки

Ant (http://ant.apache.org/)
Запуск selenium server
Компиляция исходных кодов
Запуск тестов
Остановка selenium

Запуск тестов из командной строки Ant (http://ant.apache.org/) Запуск selenium server Компиляция исходных
server

Слайд 14

Как хранить общий доступ к selenium?

Передавать каждой функции
Инициализировать изначально и использовать статическое

Как хранить общий доступ к selenium? Передавать каждой функции Инициализировать изначально и
поле для обращения к нему

Слайд 15

Базовый класс для всех тест кейсов

Базовый класс для всех тест кейсов

Слайд 16

Структура тест-кейса

Preconditions
Test case
Cleanup

Структура тест-кейса Preconditions Test case Cleanup

Слайд 17

Где хранить настройки?

Найдите грань между настройками и тестовыми данными:
Selenium host
Selenium port
Timeout
Base URL
properties-файлы

Где хранить настройки? Найдите грань между настройками и тестовыми данными: Selenium host
– стандарт для Java (http://download.oracle.com/javase/1.4.2/docs/api/java/util/Properties.html)
config.xml – для C#

Слайд 18

Где хранить тестовые данные?

Excel
CSV-файлы
База данных
XML

Где хранить тестовые данные? Excel CSV-файлы База данных XML

Слайд 19

Excel-хранилища данных

Табличные данные на каждом sheet
Key-value пары в столбец
Именованные диапазоны
Чем читать excel?
JDBC

Excel-хранилища данных Табличные данные на каждом sheet Key-value пары в столбец Именованные
(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

Где хранить локаторы? properties-файлы http://seleniumhq.org/docs/06_test_design_considerations.html#ui-mapping

Слайд 23

Структура UI Layer

Разбивка на страницы
Сбор «особенных» UI элементов в отдельные классы:
Различные кастомизированные

Структура UI Layer Разбивка на страницы Сбор «особенных» UI элементов в отдельные
кнопки-поля (нужно вызывать специальные события)
Upload-download файлов
Иерархия объектов (GWT, например)

Слайд 24

Структура Business Layer

Набор статических методов, объединённых по классам
Чем проще, тем лучше

Структура Business Layer Набор статических методов, объединённых по классам Чем проще, тем лучше

Слайд 25

Tracebility с ручным тестированием

Соотнесение тест-кейсов
Соотнесение тестовых шагов
Интеграция с существующей отчётностью
HP Quality Center
TestLink
JIRA

Tracebility с ручным тестированием Соотнесение тест-кейсов Соотнесение тестовых шагов Интеграция с существующей

Слайд 26

Отчёты

HTML
Группировка по test suite и test case
Screenshots
Максимально user friendly
При возможности – интеграция

Отчёты HTML Группировка по test suite и test case Screenshots Максимально user
с существующей системой отчётности

Слайд 27

Screenshots

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/

Screenshots void captureScreenshot (String filename); Обычно делается во время ошибки Try-catch в
Имя файла: Frameworks.pptx
Количество просмотров: 163
Количество скачиваний: 1