'

Реализация тестового фреймворка на основе OPEN-SOURCE инструментов

Понравилась презентация – покажи это...





Слайд 0

Реализация тестового фреймворка на основе OPEN-SOURCE инструментов Александр Ихелис. EPAM Systems


Слайд 1

Предыстория Архитектура и требования к фреймворкам Особенности работы в open-source Watir – драйвер браузера Практическая реализация фреймворка Круглый стол: Использование open-source инструментов тестирования


Слайд 2

Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации


Слайд 3

Тестовый фреймворк – как много в этом слове... Тестовый фреймворк – инфраструктура, обеспечивающая автоматизацию тестирования Основные цели: Единая концепция создания и управления авто-тестами Упрощенное написание тест кейсов Целостная система драйверов, модулей, библиотек, источников данных, результатов Максимальное повторное использование Минимальные усилия на поддержку тестов


Слайд 4

Выбор и разработка фреймворка Разработка фреймворка – это разработка программного комплекса: Анализ требований к автоматизации и к средству тестирования Анализ приложения – кандидата для автоматизации Качественные характеристики фреймворка Набор возможностей фреймворка Выбор средств реализации Дизайн архитектуры, разработка, отладка, документация Поддержка и развитие


Слайд 5

<Приложение> <Тест кейсы>


Слайд 6

<Оболочка> Черный Ящик <Приложение> Управление <Тест кейсы>


Слайд 7

<Оболочка> Библиотеки <Приложение> Управление Язык Раннер Отчеты Тесты: Действия Проверки Данные <Тест кейсы>


Слайд 8

<Оболочка> Библиотеки <Приложение> Управление Язык Раннер Отчеты Тесты: Действия Проверки Данные Драйвер <Тест кейсы>


Слайд 9

<Оболочка> Библиотеки <Приложение> Управление Язык Отчеты Раннер Отчеты Тесты: Действия Проверки Данные Драйвер <Тест кейсы>


Слайд 10

<Оболочка> Библиотеки <Приложение> Управление Язык Подходы Отчеты Раннер Отчеты Тесты: Действия Проверки Данные Драйвер <Тест кейсы>


Слайд 11

«Боевой робот» в open-source


Слайд 12

«Боевой робот» в open-source Гибкость и расширяемость


Слайд 13

Риски open-source средств: бесплатный сыр бывает только в мышеловке…


Слайд 14

Построение фреймворков в open-source Особенности


Слайд 15

Необходимо понимать «анатомию» тестовых средств и фреймворков «Заботимся о деталях сами»: самостоятельная разработка многих компонентов и интерфейсов фреймворка Построение фреймворков в open-source Особенности Open-source средства дают свободу и гибкость, позволяют создавать легко расширяемые фреймворки


Слайд 16

Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации


Слайд 17

www.hotels.co.uk www.hotel.hu www.hotels.ru … www.expedia.co.uk www.expedia.ru … Общие требования к автоматизации QA Staging Production Сложное web-приложение Различные приложения, функционалы, локали (40+) Разные сервера


Слайд 18

R10.1 R10.2 Время 1 ~ Время 2 Тестовый набор 2 > Тестовый набор 1 Локали 2 > Локали 1 Общие требования к автоматизации


Слайд 19

Общие требования к автоматизации Распределенная команда ? необходим общий подход и централизованное управление тестированием


Слайд 20

Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации


Слайд 21

Распределенная архитектура – это реально


Слайд 22

Сервер Архитектура фреймворка на основе Watir БД Код Web-интерфейс Консоль


Слайд 23

Сервер Архитектура фреймворка на основе Watir БД Код Клиент K Код Ядро Клиент 1 … Web-интерфейс Консоль


Слайд 24

Сервер Архитектура фреймворка на основе Watir БД Код Репозиторий Клиент K Код Ядро Клиент 1 … Web-интерфейс Консоль


Слайд 25

Сервер Архитектура фреймворка на основе Watir БД Код Репозиторий Клиент K Код Ядро Клиент 1 … Web-интерфейс Консоль Watir Browser


Слайд 26

Сервер Архитектура фреймворка на основе Watir БД Код Репозиторий Клиент K Код Ядро Клиент 1 … Web-интерфейс Консоль Watir Browser Клиент: Режим отладки


Слайд 27

Серверная часть: Версии 1.*: Apache/PHP + MySQL Версии 2.*: Mongrel/ruby-on-rails + MySQL Конфигурация в Production окружении (требования безопасности): MS IIS/ruby-on-rails + MS SQL Server Клиентская часть (масштабируемость путем добавления клиентов): Ruby, Watir, Sponte gem (ядро фреймворка), рабочее окружение Cистемы управления версиями: CVS, MS Perforce Архитектура фреймворка на основе Watir


Слайд 28

Собственный драйвер тестов, централизованный и удобный запуск, распределенное выполнение на многочисленных клиентах с различной конфигурацией, свободная масштабируемость Параллельное выполнение Масштабируемость Работа в режиме отладки (debug) Гибкая расширяемость для новых тестовых окружений (серверов), локалей Поддержка нескольких проектов и версий Возможность создания data-driven сценариев из нескольких тестовых компонентов Scenario = (Test1 + Dataset1)+…+(Test i + Dataset j) Удобный интерфейс, мощный механизм отчетов Основные возможности фреймворка


Слайд 29

Параллельное выполнение тестов …


Слайд 30

Параллельное выполнение тестов …


Слайд 31

Фреймворк БД Репозиторий: *проекты *версии Поддержка разных проектов и версий


Слайд 32

БД приложения (AUT) Поддержка разных environments, локалей, конфигурационных настроек Файлы с данными Локализационные данные (форматы и тп) Настройки конфигурации Фреймворк БД Информация о поддерживаемых environments локалях URLs Servers’ hosts


Слайд 33

Sponte: Запуск тестового набора


Слайд 34

Sponte: Редактирование управляющих параметров и входных данных сценария


Слайд 35


Слайд 36

Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации


Слайд 37

Объектно-ориентированная структура и подход в тестировании, включая модель UI приложения Создание бизнес слоя ? тесты на DSL (Domain Specific Language) Реализация различных интерфейсов для работы с внешними источниками данных (XLS, XML, Excel XML, MySQL, MS SQL Server), поддержка Unicode и конфигурационных, локализационных, тестовых данных для разных локалей Design Patterns + Coding Convention ? гибкий UI серверной части без необходимости описывать статически каждую UI страницу для управления разными тестами и тп Полезные решения и практики


Слайд 38

OOP GUI Layer pattern + Business Layer on DSL


Слайд 39

OOP GUI Layer pattern + Business Layer on DSL


Слайд 40

OOP GUI Layer pattern + Business Layer on DSL


Слайд 41

Расширение функционала Watir и драйвера браузера Гибкая синхронизация с приложением (сложные страницы, Ajax вызовы, тестирование с включенной и отключенной поддержкой JavaScript в браузере) Тестирование через HTTP протокол: рекурсивные тесты на нахождение broken-links Работа с настройками браузера и соединения (cookies, cache, включение и отключение поддержки JavaScript, установка HTTP headers) Полезные решения и практики


Слайд 42

Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации


Слайд 43

Используй стандартизированные интерфейсы и протоколы Реализуй только то, что тебе необходимо. Поддерживай только необходимые тебе интерфейсы приложения Твоя цель – тестирование, приносящее пользу проекту ВОВРЕМЯ “It does not have to be perfect to be useful” Будь в теме! Популярные средства быстро развиваются Часто поддерживаются только последние версии Работай с разработчиками над тестируемостью приложения и альтернативными интерфейсами (если необходимо) Построение фреймворков в open-source Рекомендации


Слайд 44

Относись к фреймворку и тестовому коду как к программному продукту Хорошая и простая архитектура Сначала простой код ? тестирование ? модульность Регулярные ревью кода, рефакторинг, DRY Стандарты кодирования Комментарии Контроль версий Возможно, поддержка разных версий (branching) для разных версий (releases) тестируемой системы Построение фреймворков в open-source Рекомендации


Слайд 45

Появляется необходимость в новом наборе навыков для инженера по автоматизации (Software Design Engineer in Test) Навыки разработки и кодирования Навыки архитектора Навыки тестирования Рекомендуемое разделение обязанностей: Разработчик ядра фреймворка и библиотек Разработчик автоматических тестов Построение фреймворков в open-source Прогнозы


Слайд 46

Благодарность Bernard Miles, QA Manager and Architect, Expedia Limited, UK Stanislaw Wozniak, Test Automation Engineer, Expedia Limited, UK Sponte framework Lead Developer (http://github.com/swozniak/sponte/tree/master) Tamas Zombori, Test Automation Engineer, Epam Systems Inc, Hungary Hcom Team Test Automation Engineer Bret Pettichord, Lead developer for Watir and CTO of WatirCraft Author and co-author of many outstanding and wholesome published works and articles (www.pettichord.com)


Слайд 47

Контактная информация <epam> Ихелис Александр EPAM Systems ул. В. Хоружей, 29 220123 Минск, Беларусь почта: alex.ikhelis@gmail.com блог: http://alexikhelis.blogspot.com </epam>


×

HTML:





Ссылка: