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

Содержание

Слайд 2

Предыстория

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

Предыстория Архитектура и требования к фреймворкам Особенности работы в open-source Watir –
фреймворка

Круглый стол: Использование open-source инструментов тестирования

Слайд 3

Содержание

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

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

Слайд 4

Тестовый фреймворк – как много в этом слове...

Тестовый фреймворк – инфраструктура, обеспечивающая

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

Слайд 5

Выбор и разработка фреймворка

Разработка фреймворка – это разработка программного комплекса:
Анализ требований к

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

Слайд 6

<Оболочка>
Черный
Ящик

Библиотеки

<Приложение>

Управление

Язык

Подходы

Отчеты

Раннер

Отчеты

Тесты:
Действия
Проверки
Данные

Драйвер

<Тест кейсы>

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

Слайд 7

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

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

Слайд 8

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

Гибкость и
расширяемость

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

Слайд 9

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

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

Слайд 10

Необходимо понимать «анатомию» тестовых средств и фреймворков
«Заботимся о деталях сами»: самостоятельная разработка

Необходимо понимать «анатомию» тестовых средств и фреймворков «Заботимся о деталях сами»: самостоятельная
многих компонентов и интерфейсов фреймворка

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

Open-source средства дают свободу и гибкость, позволяют создавать легко расширяемые фреймворки

Слайд 11

Содержание

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

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

Слайд 12

www.hotels.co.uk
www.hotel.hu
www.hotels.ru

www.expedia.co.uk
www.expedia.ru

Общие требования к автоматизации

QA

Staging

Production

Сложное web-приложение
Различные приложения, функционалы, локали (40+)
Разные сервера

www.hotels.co.uk www.hotel.hu www.hotels.ru … www.expedia.co.uk www.expedia.ru … Общие требования к автоматизации QA

Слайд 13

R10.1

R10.2

Время 1 ~ Время 2
Тестовый набор 2 > Тестовый набор 1
Локали 2

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

Общие требования к автоматизации

Слайд 14

Общие требования к автоматизации

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

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

Слайд 15

Содержание

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

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

Слайд 16

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

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

Слайд 17

Сервер

Архитектура фреймворка на основе Watir

БД

Код

Репозиторий

Клиент K

Код

Ядро

Клиент 1


Web-интерфейс
Консоль

Watir

Browser

Клиент:
Режим отладки

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

Слайд 18

Серверная часть:
Версии 1.*: Apache/PHP + MySQL
Версии 2.*: Mongrel/ruby-on-rails + MySQL
Конфигурация в Production

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

Архитектура фреймворка
на основе Watir

Слайд 19

Собственный драйвер тестов, централизованный и удобный запуск, распределенное выполнение на многочисленных клиентах

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

Основные возможности фреймворка

Слайд 20

Фреймворк БД

Репозиторий:
*проекты
*версии

Поддержка разных проектов и версий

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

Слайд 21

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

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

Слайд 22

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

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

Слайд 24

Содержание

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

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

Слайд 25

Объектно-ориентированная структура и подход в тестировании, включая модель UI приложения
Создание бизнес

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

Полезные решения и практики

Слайд 26

Идея OOP GUI layer patters + Domain Specific Language (Business Layer)

Идея OOP GUI layer patters + Domain Specific Language (Business Layer)

Слайд 27

БД приложения (AUT)

Поддержка разных environments, локалей, конфигурационных настроек

Файлы с данными

Локализационные данные
(форматы и

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

Фреймворк БД

Информация о поддерживаемых environments
локалях
URLs
Servers’ hosts

Слайд 28

Расширение функционала Watir и драйвера браузера
Гибкая синхронизация с приложением (сложные страницы, Ajax

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

Полезные решения и практики

Слайд 29

Содержание

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

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

Слайд 30

Используй стандартизированные интерфейсы и протоколы
Реализуй только то, что тебе необходимо. Поддерживай только

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

Построение фреймворков в open-source
Рекомендации

Слайд 31

Относись к фреймворку и тестовому коду как к программному продукту
Хорошая и простая

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

Построение фреймворков в open-source
Рекомендации

Слайд 32

Появляется необходимость в новом наборе навыков для инженера по автоматизации (Software Design

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

Построение фреймворков в open-source
Прогнозы

Слайд 33

Благодарность

Bernard Miles, QA Manager and Architect, Expedia Limited, UK
Stanislaw Wozniak, Test Automation

Благодарность Bernard Miles, QA Manager and Architect, Expedia Limited, UK Stanislaw Wozniak,
Engineer, Expedia Limited, UK
Sponte framework Lead Developer
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)
Имя файла: Реализация-тестового-фреймворка-на-основе-OPEN-SOURCE-инструментов.pptx
Количество просмотров: 143
Количество скачиваний: 0