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

Презентация:



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

Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
Team System - фреймворк для автоматизации тестирования от Microsoft Футорняк Елена Apriorit Сообщество Тестировщиков Днепропетровска 29/09/2011.
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
Калугин Александр, PhD, PMP Mercury Development Project Director.
Непрерывная интеграция для PHP Александр Симанович.
Мини-проект Разработка системы тестирования Auto Testing Project Участники: Бышева Татьяна Ильичев Андрей Комин Александр Лапшин Андрей Новиков Егор Синицын.
Project M Cache Version 5 Промышленная разработка Web приложений и Управление проектом.
Инструментальная система разработки распределенных приложений «SiTex»
Ruby on Rails. Что такое Ruby? Ruby – это открытый, объектно- ориентированный скриптовый язык, изобретенный Юкихиро Мацумото в начале 90-х.
Дипломная работа Выполнил: Чернилевский Денис, 518 гр. Научный руководитель: к.ф.-м.н. Луковников Иван Васильевич.
TEKTON-Matrix Платформа для распределённых приложений.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 1 Открытые системы. Клиент и сервер Лекции читает кандидат технических наук,
Проекты ONLINE Ведение проектов в распределённом режиме, с участием заказчиков, исполнителей и соисполнителей Назначение.
Трехслойная архитектура приложений, основанных на использовании баз данных.
Microsoft TechDays Цыганов Федор Softline.
Многометодные процедуры оптимального управления Архитектура и реализация программного комплекса Исследовательский Центр процессов управления Работа выполнена.
RusBroker (RB). Общие сведения Система «RusBroker» была разработана Департаментом ИТ инвестиционной компании OOO «Уником Партнер». Программный комплекс.
Автоматизация тестирования. План 1.Применение автоматизированного тестирования 2.Выбор инструментария 3.Процесс автоматизации (IBM Rational) GUI тестирование.
Автоматизированная система контроля и учета расхода электроэнергии Real.Net АСКУЭ Real.Net.
Транксрипт:

Реализация тестового фреймворка на основе 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_1Passed TC_2Failed Управление Язык Отчеты Раннер Отчеты Тесты: Действия Проверки Данные Драйвер TC_1 TC_2

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

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

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

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

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

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

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

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

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

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

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

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

Сервер Архитектура фреймворка на основе 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 Клиент 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 )

Параллельное выполнение тестов Клиент 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 )

Фреймворк БД Репозиторий: *проекты *версии Репозиторий: *проекты *версии Поддержка разных проектов и версий 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

Расширение функционала 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 ( 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 (

Контактная информация Ихелис Александр EPAM Systems ул. В. Хоружей, Минск, Беларусь почта: блог: