Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемalex_ikhelis
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_1Passed TC_2Failed Управление Язык Отчеты Раннер Отчеты Тесты: Действия Проверки Данные Драйвер TC_1 TC_2
11 Библиотеки TC_1Passed TC_2Failed Управление Язык Подходы Отчеты Раннер Отчеты Тесты: Действия Проверки Данные Драйвер TC_1 TC_2
12 «Боевой робот» в open-source
13 Гибкость и расширяемость
14 Риски open-source средств: бесплатный сыр бывает только в мышеловке…
15 Построение фреймворков в open-source Особенности
16 Необходимо понимать «анатомию» тестовых средств и фреймворков «Заботимся о деталях сами»: самостоятельная разработка многих компонентов и интерфейсов фреймворка Построение фреймворков в open-source Особенности Open-source средства дают свободу и гибкость, позволяют создавать легко расширяемые фреймворки
17 Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
18 … … Общие требования к автоматизации QA Staging Production Сложное web-приложение Различные приложения, функционалы, локали (40+) Разные сервера
19 R10.1 R10 R11 R10.2 Тестовый набор 1 Тестовый набор 2 Время 1 ~ Время 2 Тестовый набор 2 > Тестовый набор 1 Локали 2 > Локали 1 Общие требования к автоматизации
20 Распределенная команда необходим общий подход и централизованное управление тестированием
21 Содержание Тестовый фреймворк – как много в этом слове... Постановка задачи Архитектура и решение входных условий Полезные решения и практики Рекомендации
22 Распределенная архитектура – это реально
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 Клиент 1 Test 1 + Dataset 1 Клиент 2 Test 1 + Dataset 2 Клиент 2 Test 1 + Dataset 2 Клиент k Test n + Dataset m Клиент k Test n + Dataset m … Сервер Scenario = (Test i + DataSet j ) Сервер Scenario = (Test i + DataSet j )
31 Параллельное выполнение тестов Клиент 1 Test 1 + Dataset 1 Клиент 1 Test 1 + Dataset 1 Клиент 2 Test 1 + Dataset 2 Клиент 2 Test 1 + Dataset 2 Клиент k Test n + Dataset m Клиент k Test n + Dataset m … Web-интерфейс Отчет по сценарию Web-интерфейс Отчет по сценарию Сервер Scenario = (Test i + DataSet j ) Сервер Scenario = (Test i + DataSet j )
32 Фреймворк БД Репозиторий: *проекты *версии Репозиторий: *проекты *версии Поддержка разных проектов и версий Web- интерфейс
33 БД приложения (AUT) Поддержка разных environments, локалей, конфигурационных настроек Файлы с данными Локализационные данные (форматы и тп) Настройки конфигурации Фреймворк БД Информация о поддерживаемых environments локалях URLs Servers hosts
34 Sponte: Запуск тестового набора
35 Sponte: Редактирование управляющих параметров и входных данных сценария
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
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 ( Tamas Zombori, Test Automation Engineer, Epam Systems Inc, Hungary Hcom Team Test Automation Engineer Bret Pettichord, Lead developer for Watir and CTO of WatirCraftWatirCraft Author and co-author of many outstanding and wholesome published works and articles (
48 Контактная информация Ихелис Александр EPAM Systems ул. В. Хоружей, Минск, Беларусь почта: блог:
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.