SlideShare a Scribd company logo
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов Александр Ихелис.  EPAM Systems
Предыстория Архитектура и требования к фреймворкам Особенности работы в  open-source Watir –  драйвер браузера Практическая реализация фреймворка Круглый стол: Использование open-source  инструментов тестирования
Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
Тестовый фреймворк –  как много в этом слове... Тестовый фреймворк  – инфраструктура, обеспечивающая   автоматизацию тестирования Основные цели: Единая концепция создания и управления авто-тестами Упрощенное написание тест кейсов Целостная система драйверов, модулей, библиотек, источников данных, результатов Максимальное повторное использование Минимальные усилия на поддержку тестов
Выбор и разработка фреймворка Разработка фреймворка  – это разработка программного комплекса: Анализ требований к автоматизации и к средству тестирования Анализ приложения – кандидата для автоматизации Качественные характеристики фреймворка Набор возможностей фреймворка Выбор средств реализации Дизайн архитектуры, разработка, отладка, документация Поддержка и развитие
< Приложение > < Тест кейсы > TC_1 TC_2
< Оболочка > Черный Ящик < Приложение > Управление < Тест кейсы > TC_1 TC_2
< Оболочка > Библиотеки < Приложение > Управление Язык Раннер Отчеты Тесты:     Действия     Проверки Данные < Тест кейсы > TC_1 TC_2
< Оболочка > Библиотеки < Приложение > Управление Язык Раннер Отчеты Тесты:     Действия     Проверки Данные Драйвер  < Тест кейсы > TC_1 TC_2
< Оболочка > Библиотеки < Приложение > Управление Язык Отчеты Раннер Отчеты Тесты:     Действия     Проверки Данные Драйвер  < Тест кейсы > TC_1 Passed TC_2 Failed TC_1 TC_2
< Оболочка > Библиотеки < Приложение > Управление Язык Подходы Отчеты Раннер Отчеты Тесты:     Действия     Проверки Данные Драйвер  < Тест кейсы > TC_1 Passed TC_2 Failed TC_1 TC_2
«Боевой робот» в  open-source
«Боевой робот» в  open-source Гибкость и  расширяемость
Риски  o pen-source средств: бесплатный сыр бывает только в мышеловке…
Построение фреймворков в open-source Особенности
Необходимо понимать «анатомию» тестовых средств и фреймворков «Заботимся о деталях сами»: самостоятельная разработка многих компонентов и интерфейсов фреймворка Построение фреймворков в open-source Особенности Open-source  средства дают свободу и гибкость, позволяют создавать легко расширяемые фреймворки
Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
www.hotels.co.uk www.hotel.hu www.hotels.ru … www.expedia.co.uk www.expedia.ru … Общие требования к автоматизации QA Staging Production Сложное  web -приложение Различные приложения, функционалы, локали (40+) Разные сервера
Время 1  ~  Время 2 Тестовый набор  2   >   Тестовый набор  1 Локали  2   >   Локали  1 Общие требования к автоматизации R10.1 R10.2
Общие требования к автоматизации Распределенная команда     необходим общий подход и централизованное управление тестированием
Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
Распределенная архитектура – это реально
Сервер Архитектура фреймворка на основе  Watir   БД Код Web- интерфейс Консоль
Сервер Архитектура фреймворка на основе  Watir   БД Код Клиент  K Код Ядро Клиент 1 … Web- интерфейс Консоль
Сервер Архитектура фреймворка на основе  Watir   БД Код Репозиторий  Клиент  K Код Ядро Клиент 1 … Web- интерфейс Консоль
Сервер Архитектура фреймворка на основе  Watir   БД Код Репозиторий  Клиент  K Код Ядро Клиент 1 … Web- интерфейс Консоль Watir Browser
Сервер Архитектура фреймворка на основе  Watir   БД Код Репозиторий  Клиент  K Код Ядро Клиент 1 … Web- интерфейс Консоль Watir Browser Клиент: Режим отладки
Серверная часть: Версии 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
Собственный драйвер тестов, централизованный и удобный запуск, распределенное выполнение на многочисленных клиентах с различной конфигурацией, свободная масштабируемость Параллельное выполнение Масштабируемость Работа в режиме отладки ( debug) Гибкая расширяемость для новых тестовых окружений (серверов), локалей Поддержка нескольких проектов и версий Возможность создания  data-driven  сценариев из нескольких тестовых компонентов Scenario = (Test1 + Dataset1)+…+(Test i + Dataset j) Удобный интерфейс, мощный механизм отчетов Основные возможности фреймворка
Параллельное выполнение тестов … Клиент 1 Test  1  + Dataset  1   Клиент  2 Test  1  + Dataset  2   Клиент  k Test  n  + Dataset  m   Сервер Scenario = ∑ (Test  i  + DataSet  j  )
Параллельное выполнение тестов … Клиент 1 Test  1  + Dataset  1   Клиент  2 Test  1  + Dataset  2   Клиент  k Test  n  + Dataset  m   Web- интерфейс Отчет по сценарию Сервер Scenario = ∑ (Test  i  + DataSet  j  )
Фреймворк БД Репозиторий: *проекты  *версии Поддержка разных проектов и версий Web- интерфейс
БД приложения  (AUT) Поддержка разных  environments,  локалей, конфигурационных настроек Файлы с данными Локализационные данные (форматы и тп) Настройки конфигурации Фреймворк БД Информация о поддерживаемых  environments локалях URLs Servers’ hosts
Sponte:  Запуск тестового набора
Sponte:  Редактирование управляющих параметров и входных данных сценария
 
Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
Объектно-ориентированная структура и подход в тестировании, включая модель  UI  приложения  Создание бизнес слоя     тесты на  DSL (Domain Specific Language) Реализация различных интерфейсов для работы с внешними источниками данных  (XLS, XML, Excel XML, MySQL, MS SQL Server) , поддержка  Unicode  и конфигурационных, локализационных, тестовых данных для разных локалей Design Patterns + Coding Convention     гибкий  UI  серверной части без необходимости описывать статически каждую  UI  страницу для управления разными тестами и тп Полезные решения и практики
OOP GUI Layer pattern + Business Layer on DSL
OOP GUI Layer pattern + Business Layer on DSL
OOP GUI Layer pattern + Business Layer on DSL
Расширение функционала  Watir  и драйвера браузера Гибкая синхронизация с приложением (сложные страницы,  Ajax  вызовы, тестирование с включенной и отключенной поддержкой  JavaScript  в браузере) Тестирование через  HTTP  протокол: рекурсивные тесты на нахождение  broken-links Работа с настройками браузера   и соединения ( cookies, cache,  включение и отключение поддержки  JavaScript , установка  HTTP headers ) Полезные решения и практики
Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
Используй стандартизированные интерфейсы и протоколы Реализуй только то, что тебе необходимо. Поддерживай только необходимые тебе интерфейсы приложения Твоя цель – тестирование, приносящее пользу проекту ВОВРЕМЯ “ It does not have to be perfect to be useful” Будь в теме!  Популярные средства быстро развиваются Часто поддерживаются только последние версии Работай с разработчиками над тестируемостью приложения и альтернативными интерфейсами (если необходимо) Построение фреймворков в open-source Рекомендации
Относись к фреймворку и тестовому коду как к программному продукту Хорошая и простая архитектура Сначала простой код    тестирование     модульность Регулярные ревью кода, рефакторинг,  DRY Стандарты кодирования Комментарии Контроль версий Возможно, поддержка разных версий ( branching ) для разных версий ( releases)  тестируемой   системы Построение фреймворков в open-source Рекомендации
Появляется необходимость в новом наборе навыков для инженера по автоматизации ( Software Design Engineer in Test ) Навыки разработки и кодирования Навыки архитектора Навыки тестирования Рекомендуемое разделение обязанностей: Разработчик ядра фреймворка и библиотек Разработчик автоматических тестов Построение фреймворков в open-source Прогнозы
Благодарность 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 , L ead developer for Watir and CTO of  WatirCraft Author and co-author of many outstanding and wholesome published works and articles ( www.pettichord.com )
Контактная информация <epam> Ихелис Александр EPAM Systems ул. В. Хоружей, 29 220123 Минск, Беларусь почта:  [email_address] блог:  http://alexikhelis.blogspot.com </epam>
Ad

Recommended

Embarcadero All-Access
Embarcadero All-Access
Serghei Urban
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
Alexander Babich
 
Solit 2013, Разбор конкретного примера – продукта XML2Selenium, Горячко Дмитрий
Solit 2013, Разбор конкретного примера – продукта XML2Selenium, Горячко Дмитрий
solit
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проекта
Yandex
 
Client Side Autotesting Flash
Client Side Autotesting Flash
guestb0af15
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
Кафедра высокопроизводительных компьютерных технологий ИМКН УрФУ
 
Введение в maven
Введение в maven
Dmitry Zinushin
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
SQALab
 
Мастер класс- Maven + Jenkins
Мастер класс- Maven + Jenkins
Valentin Fedoskin
 
Maven 3 : уличная магия
Maven 3 : уличная магия
Aleksey Solntsev
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Positive Hack Days
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
Alexander Gerasiov
 
JUnit, дай пять!
JUnit, дай пять!
Dmitrii Tuchs
 
Building Open Source Test Automation Frameworks. Watir based automation case ...
Building Open Source Test Automation Frameworks. Watir based automation case ...
Aliaksandr Ikhelis
 
Использование Symfony
Использование Symfony
Media Gorod
 
Dev collaboration
Dev collaboration
Eduard Antsupov
 
Автоматизация и Selenium IDE
Автоматизация и Selenium IDE
ISsoft
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
SQALab
 
TestLink
TestLink
ISsoft
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
DevDay
 
Решения для автоматизации тестирования Web-приложений на базе Selenium
Решения для автоматизации тестирования Web-приложений на базе Selenium
SQALab
 
автоматизация тестирования с помощью Selenium
автоматизация тестирования с помощью Selenium
vyacheslavmaslov
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
Regn
 
Selenium Begins
Selenium Begins
Alexander Smelov
 
Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)
Alexander Novichkov
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
Александр Шамрай
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008
Александр Шамрай
 

More Related Content

What's hot (19)

Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
SQALab
 
Мастер класс- Maven + Jenkins
Мастер класс- Maven + Jenkins
Valentin Fedoskin
 
Maven 3 : уличная магия
Maven 3 : уличная магия
Aleksey Solntsev
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Positive Hack Days
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
Alexander Gerasiov
 
JUnit, дай пять!
JUnit, дай пять!
Dmitrii Tuchs
 
Building Open Source Test Automation Frameworks. Watir based automation case ...
Building Open Source Test Automation Frameworks. Watir based automation case ...
Aliaksandr Ikhelis
 
Использование Symfony
Использование Symfony
Media Gorod
 
Dev collaboration
Dev collaboration
Eduard Antsupov
 
Автоматизация и Selenium IDE
Автоматизация и Selenium IDE
ISsoft
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
SQALab
 
TestLink
TestLink
ISsoft
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
DevDay
 
Решения для автоматизации тестирования Web-приложений на базе Selenium
Решения для автоматизации тестирования Web-приложений на базе Selenium
SQALab
 
автоматизация тестирования с помощью Selenium
автоматизация тестирования с помощью Selenium
vyacheslavmaslov
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
Regn
 
Selenium Begins
Selenium Begins
Alexander Smelov
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
SQALab
 
Мастер класс- Maven + Jenkins
Мастер класс- Maven + Jenkins
Valentin Fedoskin
 
Maven 3 : уличная магия
Maven 3 : уличная магия
Aleksey Solntsev
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Positive Hack Days
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
Alexander Gerasiov
 
JUnit, дай пять!
JUnit, дай пять!
Dmitrii Tuchs
 
Building Open Source Test Automation Frameworks. Watir based automation case ...
Building Open Source Test Automation Frameworks. Watir based automation case ...
Aliaksandr Ikhelis
 
Использование Symfony
Использование Symfony
Media Gorod
 
Автоматизация и Selenium IDE
Автоматизация и Selenium IDE
ISsoft
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
SQALab
 
TestLink
TestLink
ISsoft
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
DevDay
 
Решения для автоматизации тестирования Web-приложений на базе Selenium
Решения для автоматизации тестирования Web-приложений на базе Selenium
SQALab
 
автоматизация тестирования с помощью Selenium
автоматизация тестирования с помощью Selenium
vyacheslavmaslov
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
Regn
 

Similar to Open Source Testing Framework: real project example and best practices (20)

Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)
Alexander Novichkov
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
Александр Шамрай
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008
Александр Шамрай
 
Simonova sql server-enginetesting
Simonova sql server-enginetesting
Computer Science Club
 
MS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектура
Александр Шамрай
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность
Alexander Demidov
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработки
IT-Доминанта
 
Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus
 
DevOps guide for awesome quality assurance
DevOps guide for awesome quality assurance
Анастасия Асеева
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
SQALab
 
Simonova sql server-enginetesting
Simonova sql server-enginetesting
LiloSEA
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
KewpaN
 
Katerina Simonova CSEDays
Katerina Simonova CSEDays
LiloSEA
 
Simonova CSEDays
Simonova CSEDays
LiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDays
LiloSEA
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012
InTRUEdeR
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
SQALab
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
Анастасия Асеева
 
MockServer-driven development
MockServer-driven development
Testableapple
 
Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)
Alexander Novichkov
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008
Александр Шамрай
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность
Alexander Demidov
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработки
IT-Доминанта
 
Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
SQALab
 
Simonova sql server-enginetesting
Simonova sql server-enginetesting
LiloSEA
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
KewpaN
 
Katerina Simonova CSEDays
Katerina Simonova CSEDays
LiloSEA
 
Simonova CSEDays
Simonova CSEDays
LiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDays
LiloSEA
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012
InTRUEdeR
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
SQALab
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest
 
MockServer-driven development
MockServer-driven development
Testableapple
 
Ad

Open Source Testing Framework: real project example and best practices

  • 1. Реализация тестового фреймворка на основе OPEN-SOURCE инструментов Александр Ихелис. EPAM Systems
  • 2. Предыстория Архитектура и требования к фреймворкам Особенности работы в open-source Watir – драйвер браузера Практическая реализация фреймворка Круглый стол: Использование open-source инструментов тестирования
  • 3. Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
  • 4. Тестовый фреймворк – как много в этом слове... Тестовый фреймворк – инфраструктура, обеспечивающая автоматизацию тестирования Основные цели: Единая концепция создания и управления авто-тестами Упрощенное написание тест кейсов Целостная система драйверов, модулей, библиотек, источников данных, результатов Максимальное повторное использование Минимальные усилия на поддержку тестов
  • 5. Выбор и разработка фреймворка Разработка фреймворка – это разработка программного комплекса: Анализ требований к автоматизации и к средству тестирования Анализ приложения – кандидата для автоматизации Качественные характеристики фреймворка Набор возможностей фреймворка Выбор средств реализации Дизайн архитектуры, разработка, отладка, документация Поддержка и развитие
  • 6. < Приложение > < Тест кейсы > TC_1 TC_2
  • 7. < Оболочка > Черный Ящик < Приложение > Управление < Тест кейсы > TC_1 TC_2
  • 8. < Оболочка > Библиотеки < Приложение > Управление Язык Раннер Отчеты Тесты: Действия Проверки Данные < Тест кейсы > TC_1 TC_2
  • 9. < Оболочка > Библиотеки < Приложение > Управление Язык Раннер Отчеты Тесты: Действия Проверки Данные Драйвер < Тест кейсы > TC_1 TC_2
  • 10. < Оболочка > Библиотеки < Приложение > Управление Язык Отчеты Раннер Отчеты Тесты: Действия Проверки Данные Драйвер < Тест кейсы > TC_1 Passed TC_2 Failed TC_1 TC_2
  • 11. < Оболочка > Библиотеки < Приложение > Управление Язык Подходы Отчеты Раннер Отчеты Тесты: Действия Проверки Данные Драйвер < Тест кейсы > TC_1 Passed TC_2 Failed TC_1 TC_2
  • 13. «Боевой робот» в open-source Гибкость и расширяемость
  • 14. Риски o pen-source средств: бесплатный сыр бывает только в мышеловке…
  • 15. Построение фреймворков в open-source Особенности
  • 16. Необходимо понимать «анатомию» тестовых средств и фреймворков «Заботимся о деталях сами»: самостоятельная разработка многих компонентов и интерфейсов фреймворка Построение фреймворков в open-source Особенности Open-source средства дают свободу и гибкость, позволяют создавать легко расширяемые фреймворки
  • 17. Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
  • 18. www.hotels.co.uk www.hotel.hu www.hotels.ru … www.expedia.co.uk www.expedia.ru … Общие требования к автоматизации QA Staging Production Сложное web -приложение Различные приложения, функционалы, локали (40+) Разные сервера
  • 19. Время 1 ~ Время 2 Тестовый набор 2 > Тестовый набор 1 Локали 2 > Локали 1 Общие требования к автоматизации R10.1 R10.2
  • 20. Общие требования к автоматизации Распределенная команда  необходим общий подход и централизованное управление тестированием
  • 21. Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
  • 23. Сервер Архитектура фреймворка на основе Watir БД Код Web- интерфейс Консоль
  • 24. Сервер Архитектура фреймворка на основе Watir БД Код Клиент K Код Ядро Клиент 1 … Web- интерфейс Консоль
  • 25. Сервер Архитектура фреймворка на основе Watir БД Код Репозиторий Клиент K Код Ядро Клиент 1 … Web- интерфейс Консоль
  • 26. Сервер Архитектура фреймворка на основе Watir БД Код Репозиторий Клиент K Код Ядро Клиент 1 … Web- интерфейс Консоль Watir Browser
  • 27. Сервер Архитектура фреймворка на основе Watir БД Код Репозиторий Клиент K Код Ядро Клиент 1 … Web- интерфейс Консоль Watir Browser Клиент: Режим отладки
  • 28. Серверная часть: Версии 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
  • 29. Собственный драйвер тестов, централизованный и удобный запуск, распределенное выполнение на многочисленных клиентах с различной конфигурацией, свободная масштабируемость Параллельное выполнение Масштабируемость Работа в режиме отладки ( debug) Гибкая расширяемость для новых тестовых окружений (серверов), локалей Поддержка нескольких проектов и версий Возможность создания data-driven сценариев из нескольких тестовых компонентов Scenario = (Test1 + Dataset1)+…+(Test i + Dataset j) Удобный интерфейс, мощный механизм отчетов Основные возможности фреймворка
  • 30. Параллельное выполнение тестов … Клиент 1 Test 1 + Dataset 1 Клиент 2 Test 1 + Dataset 2 Клиент k Test n + Dataset m Сервер Scenario = ∑ (Test i + DataSet j )
  • 31. Параллельное выполнение тестов … Клиент 1 Test 1 + Dataset 1 Клиент 2 Test 1 + Dataset 2 Клиент k Test n + Dataset m Web- интерфейс Отчет по сценарию Сервер Scenario = ∑ (Test i + DataSet j )
  • 32. Фреймворк БД Репозиторий: *проекты *версии Поддержка разных проектов и версий Web- интерфейс
  • 33. БД приложения (AUT) Поддержка разных environments, локалей, конфигурационных настроек Файлы с данными Локализационные данные (форматы и тп) Настройки конфигурации Фреймворк БД Информация о поддерживаемых environments локалях URLs Servers’ hosts
  • 34. Sponte: Запуск тестового набора
  • 35. Sponte: Редактирование управляющих параметров и входных данных сценария
  • 36.  
  • 37. Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
  • 38. Объектно-ориентированная структура и подход в тестировании, включая модель UI приложения Создание бизнес слоя  тесты на DSL (Domain Specific Language) Реализация различных интерфейсов для работы с внешними источниками данных (XLS, XML, Excel XML, MySQL, MS SQL Server) , поддержка Unicode и конфигурационных, локализационных, тестовых данных для разных локалей Design Patterns + Coding Convention  гибкий UI серверной части без необходимости описывать статически каждую UI страницу для управления разными тестами и тп Полезные решения и практики
  • 39. OOP GUI Layer pattern + Business Layer on DSL
  • 40. OOP GUI Layer pattern + Business Layer on DSL
  • 41. OOP GUI Layer pattern + Business Layer on DSL
  • 42. Расширение функционала Watir и драйвера браузера Гибкая синхронизация с приложением (сложные страницы, Ajax вызовы, тестирование с включенной и отключенной поддержкой JavaScript в браузере) Тестирование через HTTP протокол: рекурсивные тесты на нахождение broken-links Работа с настройками браузера и соединения ( cookies, cache, включение и отключение поддержки JavaScript , установка HTTP headers ) Полезные решения и практики
  • 43. Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
  • 44. Используй стандартизированные интерфейсы и протоколы Реализуй только то, что тебе необходимо. Поддерживай только необходимые тебе интерфейсы приложения Твоя цель – тестирование, приносящее пользу проекту ВОВРЕМЯ “ It does not have to be perfect to be useful” Будь в теме! Популярные средства быстро развиваются Часто поддерживаются только последние версии Работай с разработчиками над тестируемостью приложения и альтернативными интерфейсами (если необходимо) Построение фреймворков в open-source Рекомендации
  • 45. Относись к фреймворку и тестовому коду как к программному продукту Хорошая и простая архитектура Сначала простой код  тестирование  модульность Регулярные ревью кода, рефакторинг, DRY Стандарты кодирования Комментарии Контроль версий Возможно, поддержка разных версий ( branching ) для разных версий ( releases) тестируемой системы Построение фреймворков в open-source Рекомендации
  • 46. Появляется необходимость в новом наборе навыков для инженера по автоматизации ( Software Design Engineer in Test ) Навыки разработки и кодирования Навыки архитектора Навыки тестирования Рекомендуемое разделение обязанностей: Разработчик ядра фреймворка и библиотек Разработчик автоматических тестов Построение фреймворков в open-source Прогнозы
  • 47. Благодарность 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 , L ead developer for Watir and CTO of WatirCraft Author and co-author of many outstanding and wholesome published works and articles ( www.pettichord.com )
  • 48. Контактная информация <epam> Ихелис Александр EPAM Systems ул. В. Хоружей, 29 220123 Минск, Беларусь почта: [email_address] блог: http://alexikhelis.blogspot.com </epam>