SlideShare une entreprise Scribd logo
1  sur  34
Реализация тестового фреймворка
    на основе OPEN-SOURCE
          инструментов
      Александр Ихелис. EPAM Systems
Предыстория




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




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


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

 Постановка задачи

 Архитектура и решение входных условий

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

 Рекомендации
Тестовый фреймворк –
                 как много в этом слове...

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

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


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

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


             Раннер


                       Отчеты

            Язык
<Тест
кейсы>
            Черный
TC_1         Ящик
              Библиотеки
                                   Драйвер

TC_2
            Тесты:
                                         TC_1 Passed
                   Действия
                                Отчеты
                                         TC_2 Failed
                Проверки
                   Данные
«Боевой робот» в open-source
«Боевой робот» в open-source


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

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




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


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

 Постановка задачи

 Архитектура и решение входных условий

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

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




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

                                                    Staging
www.expedia.co.uk
www.expedia.ru
…

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



      R10                            R11


         R10.1                     R10.2




Тестовый набор 1             Тестовый набор 2


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




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


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

 Постановка задачи

 Архитектура и решение входных условий

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

 Рекомендации
Распределенная архитектура – это реально
Архитектура фреймворка на основе Watir


      Консоль
                       Сервер        Код      БД      Клиент 1
           Web-
      интерфейс
                                                      …
                       Репозиторий


                  Browser
Клиент:
Режим отладки                        Код
                                                      Клиент K
                                      Watir    Ядро
Архитектура фреймворка
                              на основе Watir

Серверная часть:

• Версии 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
Основные возможности фреймворка

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




     Web-
интерфейс         Фреймворк БД




                   Репозиторий:
                   *проекты
                   *версии
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 patters + Domain Specific Language
(Business Layer)
Поддержка разных environments,
          локалей, конфигурационных настроек



 БД
 приложения                  Файлы с данными
 (AUT)

• Локализационные данные
    (форматы и тп)
•   Настройки конфигурации


                  •   Информация о поддерживаемых environments
                  •   локалях
Фреймворк БД      •   URLs
                  •   Servers’ hosts
Полезные решения и практики

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

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


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

 Постановка задачи

 Архитектура и решение входных условий

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

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

• Используй стандартизированные интерфейсы и протоколы

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

• Будь в теме!
  • Популярные средства быстро развиваются
  • Часто поддерживаются только последние версии

• Работай с разработчиками над тестируемостью приложения и
  альтернативными интерфейсами (если необходимо)
Построение фреймворков в open-source
                    Рекомендации

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

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

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

   Рекомендуемое разделение обязанностей:
   • Разработчик ядра фреймворка и библиотек
   • Разработчик автоматических тестов
Благодарность


• 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 WatirCraft
  • Author and co-author of many outstanding and wholesome
      published works and articles (www.pettichord.com)
Контактная информация




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

</epam>

Contenu connexe

Tendances

Типичные проблемы выявления требований и их решение
Типичные проблемы выявления требований и их решениеТипичные проблемы выявления требований и их решение
Типичные проблемы выявления требований и их решениеSQALab
 
нужен ли россии
нужен ли россиинужен ли россии
нужен ли россииTimur AITOV
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project developmentOntico
 
власть сми
власть смивласть сми
власть смиTimur AITOV
 
Competitions Cloudwatcher_new
Competitions Cloudwatcher_newCompetitions Cloudwatcher_new
Competitions Cloudwatcher_newguest18d24c
 
Chisinau: Course Design
Chisinau: Course DesignChisinau: Course Design
Chisinau: Course DesignMart Laanpere
 
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...E-Money News
 
Career Development в Epam Systems
Career Development в Epam SystemsCareer Development в Epam Systems
Career Development в Epam Systemssef2009
 
Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009Denis Dovgopoliy
 
06 01 сертифицированные продукты
06 01 сертифицированные продукты06 01 сертифицированные продукты
06 01 сертифицированные продуктыLiudmila Li
 
РИФ 2008: Электронные платежи в работе операторов фиксированной связи
РИФ 2008: Электронные платежи в работе операторов фиксированной связиРИФ 2008: Электронные платежи в работе операторов фиксированной связи
РИФ 2008: Электронные платежи в работе операторов фиксированной связиE-Money News
 
Техническое задание на разработку фирменного стиля
Техническое задание на разработку фирменного стиляТехническое задание на разработку фирменного стиля
Техническое задание на разработку фирменного стиляAlex Sulimov
 
Nikishin Root Conf
Nikishin Root ConfNikishin Root Conf
Nikishin Root ConfLiudmila Li
 
романов использование Share Point Server для решения задач документооборта и ...
романов использование Share Point Server для решения задач документооборта и ...романов использование Share Point Server для решения задач документооборта и ...
романов использование Share Point Server для решения задач документооборта и ...Liudmila Li
 
Курс "Автомат Продаж". Тема 2
Курс "Автомат Продаж". Тема 2Курс "Автомат Продаж". Тема 2
Курс "Автомат Продаж". Тема 2Sergey Zyryanov
 
Планирование процесса управления требованиями
Планирование процесса управления требованиямиПланирование процесса управления требованиями
Планирование процесса управления требованиямиSQALab
 
присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1Liudmila Li
 

Tendances (18)

Типичные проблемы выявления требований и их решение
Типичные проблемы выявления требований и их решениеТипичные проблемы выявления требований и их решение
Типичные проблемы выявления требований и их решение
 
нужен ли россии
нужен ли россиинужен ли россии
нужен ли россии
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project development
 
власть сми
власть смивласть сми
власть сми
 
Competitions Cloudwatcher_new
Competitions Cloudwatcher_newCompetitions Cloudwatcher_new
Competitions Cloudwatcher_new
 
Chisinau: Course Design
Chisinau: Course DesignChisinau: Course Design
Chisinau: Course Design
 
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...
 
Career Development в Epam Systems
Career Development в Epam SystemsCareer Development в Epam Systems
Career Development в Epam Systems
 
Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009
 
06 01 сертифицированные продукты
06 01 сертифицированные продукты06 01 сертифицированные продукты
06 01 сертифицированные продукты
 
РИФ 2008: Электронные платежи в работе операторов фиксированной связи
РИФ 2008: Электронные платежи в работе операторов фиксированной связиРИФ 2008: Электронные платежи в работе операторов фиксированной связи
РИФ 2008: Электронные платежи в работе операторов фиксированной связи
 
Assessing Competence Based Modules Ru
Assessing Competence Based Modules RuAssessing Competence Based Modules Ru
Assessing Competence Based Modules Ru
 
Техническое задание на разработку фирменного стиля
Техническое задание на разработку фирменного стиляТехническое задание на разработку фирменного стиля
Техническое задание на разработку фирменного стиля
 
Nikishin Root Conf
Nikishin Root ConfNikishin Root Conf
Nikishin Root Conf
 
романов использование Share Point Server для решения задач документооборта и ...
романов использование Share Point Server для решения задач документооборта и ...романов использование Share Point Server для решения задач документооборта и ...
романов использование Share Point Server для решения задач документооборта и ...
 
Курс "Автомат Продаж". Тема 2
Курс "Автомат Продаж". Тема 2Курс "Автомат Продаж". Тема 2
Курс "Автомат Продаж". Тема 2
 
Планирование процесса управления требованиями
Планирование процесса управления требованиямиПланирование процесса управления требованиями
Планирование процесса управления требованиями
 
присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1
 

En vedette

Cpacidad y habilidad del proceso
Cpacidad y habilidad del procesoCpacidad y habilidad del proceso
Cpacidad y habilidad del procesoalimacni
 
Control estadistico de calidad cd09103 2013
Control estadistico de calidad cd09103 2013Control estadistico de calidad cd09103 2013
Control estadistico de calidad cd09103 2013Maestros en Linea
 
D轮 社会化媒体 social media
D轮 社会化媒体 social mediaD轮 社会化媒体 social media
D轮 社会化媒体 social mediamax-marketing
 
Investigación six sigma
Investigación six sigmaInvestigación six sigma
Investigación six sigmalauradeleont
 
Consulo brochure
Consulo brochureConsulo brochure
Consulo brochureConsulo
 
Gráficos de control
Gráficos de controlGráficos de control
Gráficos de controlUTT
 
Sharing Your Social Part 2: Getting Started With The Right Communication Stra...
Sharing Your Social Part 2: Getting Started With The Right Communication Stra...Sharing Your Social Part 2: Getting Started With The Right Communication Stra...
Sharing Your Social Part 2: Getting Started With The Right Communication Stra...Tara Mahady
 
Mapa conceptual gestión calidad
Mapa conceptual gestión calidadMapa conceptual gestión calidad
Mapa conceptual gestión calidadmariactorrellas
 
Muestreo Aceptacion por atributos Generalidades
Muestreo Aceptacion por atributos GeneralidadesMuestreo Aceptacion por atributos Generalidades
Muestreo Aceptacion por atributos GeneralidadesLuis Dicovskiy
 

En vedette (20)

Cpacidad y habilidad del proceso
Cpacidad y habilidad del procesoCpacidad y habilidad del proceso
Cpacidad y habilidad del proceso
 
Control estadistico de calidad cd09103 2013
Control estadistico de calidad cd09103 2013Control estadistico de calidad cd09103 2013
Control estadistico de calidad cd09103 2013
 
D轮 社会化媒体 social media
D轮 社会化媒体 social mediaD轮 社会化媒体 social media
D轮 社会化媒体 social media
 
Investigación six sigma
Investigación six sigmaInvestigación six sigma
Investigación six sigma
 
Las redes sociales
Las redes sociales Las redes sociales
Las redes sociales
 
Consulo brochure
Consulo brochureConsulo brochure
Consulo brochure
 
Gráficos de control
Gráficos de controlGráficos de control
Gráficos de control
 
Calidad - Control estadístico de procesos
Calidad - Control estadístico de procesosCalidad - Control estadístico de procesos
Calidad - Control estadístico de procesos
 
Muestreo
MuestreoMuestreo
Muestreo
 
Sharing Your Social Part 2: Getting Started With The Right Communication Stra...
Sharing Your Social Part 2: Getting Started With The Right Communication Stra...Sharing Your Social Part 2: Getting Started With The Right Communication Stra...
Sharing Your Social Part 2: Getting Started With The Right Communication Stra...
 
Gráficos de control
Gráficos de controlGráficos de control
Gráficos de control
 
Muestreo Aceptacion
Muestreo AceptacionMuestreo Aceptacion
Muestreo Aceptacion
 
Clase ues bromato muestreo
Clase ues bromato muestreoClase ues bromato muestreo
Clase ues bromato muestreo
 
Otras cartas de control II
Otras cartas de control IIOtras cartas de control II
Otras cartas de control II
 
Calidad
CalidadCalidad
Calidad
 
Estadística II (II Bimestre)
Estadística II (II Bimestre)Estadística II (II Bimestre)
Estadística II (II Bimestre)
 
Mapa conceptual gestión calidad
Mapa conceptual gestión calidadMapa conceptual gestión calidad
Mapa conceptual gestión calidad
 
Muestreo Aceptacion por atributos Generalidades
Muestreo Aceptacion por atributos GeneralidadesMuestreo Aceptacion por atributos Generalidades
Muestreo Aceptacion por atributos Generalidades
 
Graficas de control por atributo
Graficas de control por atributoGraficas de control por atributo
Graficas de control por atributo
 
Graficas de control por atributo
Graficas de control por atributoGraficas de control por atributo
Graficas de control por atributo
 

Plus de sef2009

технопарк бнту метолит
технопарк бнту метолиттехнопарк бнту метолит
технопарк бнту метолитsef2009
 
риски тестирования
риски тестированияриски тестирования
риски тестированияsef2009
 
распознавание для Web
распознавание для Webраспознавание для Web
распознавание для Websef2009
 
персональные риски аналитика
персональные риски аналитикаперсональные риски аналитика
персональные риски аналитикаsef2009
 
ксуп кейс
ксуп кейсксуп кейс
ксуп кейсsef2009
 
блинов Java Belarus 2009
блинов   Java Belarus 2009блинов   Java Belarus 2009
блинов Java Belarus 2009sef2009
 
александров обучение в сфере Software Engineering
александров   обучение в сфере Software Engineeringалександров   обучение в сфере Software Engineering
александров обучение в сфере Software Engineeringsef2009
 
Sef Sivakou Tezisy
Sef Sivakou TezisySef Sivakou Tezisy
Sef Sivakou Tezisysef2009
 
Sef Sivakou Prezentacia
Sef Sivakou PrezentaciaSef Sivakou Prezentacia
Sef Sivakou Prezentaciasef2009
 
Sef Sivakou Doklad
Sef Sivakou DokladSef Sivakou Doklad
Sef Sivakou Dokladsef2009
 
Sef презентация
Sef презентацияSef презентация
Sef презентацияsef2009
 
Sef Kolotygin.V4
Sef Kolotygin.V4Sef Kolotygin.V4
Sef Kolotygin.V4sef2009
 
Sef 2009
Sef 2009Sef 2009
Sef 2009sef2009
 
Sef 2009 Itsm
Sef 2009 ItsmSef 2009 Itsm
Sef 2009 Itsmsef2009
 
Alexandrov Alex Quality
Alexandrov Alex QualityAlexandrov Alex Quality
Alexandrov Alex Qualitysef2009
 
Denisv Teamwork April 23
Denisv Teamwork April 23Denisv Teamwork April 23
Denisv Teamwork April 23sef2009
 
Content Migration Framework
Content Migration FrameworkContent Migration Framework
Content Migration Frameworksef2009
 
25.04.09 Sidorov
25.04.09 Sidorov25.04.09 Sidorov
25.04.09 Sidorovsef2009
 
21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sefsef2009
 

Plus de sef2009 (20)

технопарк бнту метолит
технопарк бнту метолиттехнопарк бнту метолит
технопарк бнту метолит
 
риски тестирования
риски тестированияриски тестирования
риски тестирования
 
распознавание для Web
распознавание для Webраспознавание для Web
распознавание для Web
 
персональные риски аналитика
персональные риски аналитикаперсональные риски аналитика
персональные риски аналитика
 
ксуп кейс
ксуп кейсксуп кейс
ксуп кейс
 
блинов Java Belarus 2009
блинов   Java Belarus 2009блинов   Java Belarus 2009
блинов Java Belarus 2009
 
александров обучение в сфере Software Engineering
александров   обучение в сфере Software Engineeringалександров   обучение в сфере Software Engineering
александров обучение в сфере Software Engineering
 
Sef Sivakou Tezisy
Sef Sivakou TezisySef Sivakou Tezisy
Sef Sivakou Tezisy
 
Sef Sivakou Prezentacia
Sef Sivakou PrezentaciaSef Sivakou Prezentacia
Sef Sivakou Prezentacia
 
Sef Sivakou Doklad
Sef Sivakou DokladSef Sivakou Doklad
Sef Sivakou Doklad
 
Sef презентация
Sef презентацияSef презентация
Sef презентация
 
Sef
SefSef
Sef
 
Sef Kolotygin.V4
Sef Kolotygin.V4Sef Kolotygin.V4
Sef Kolotygin.V4
 
Sef 2009
Sef 2009Sef 2009
Sef 2009
 
Sef 2009 Itsm
Sef 2009 ItsmSef 2009 Itsm
Sef 2009 Itsm
 
Alexandrov Alex Quality
Alexandrov Alex QualityAlexandrov Alex Quality
Alexandrov Alex Quality
 
Denisv Teamwork April 23
Denisv Teamwork April 23Denisv Teamwork April 23
Denisv Teamwork April 23
 
Content Migration Framework
Content Migration FrameworkContent Migration Framework
Content Migration Framework
 
25.04.09 Sidorov
25.04.09 Sidorov25.04.09 Sidorov
25.04.09 Sidorov
 
21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef
 

Sef Ikhelis

  • 1. Реализация тестового фреймворка на основе OPEN-SOURCE инструментов Александр Ихелис. EPAM Systems
  • 2. Предыстория • Архитектура и требования к фреймворкам • Особенности работы в open-source • Watir – драйвер браузера • Практическая реализация фреймворка • Круглый стол: Использование open-source инструментов тестирования
  • 3. Содержание  Тестовый фреймворк – как много в этом слове...  Постановка задачи  Архитектура и решение входных условий  Полезные решения и практики  Рекомендации
  • 4. Тестовый фреймворк – как много в этом слове... Тестовый фреймворк – инфраструктура, обеспечивающая автоматизацию тестирования Основные цели: • Единая концепция создания и управления авто-тестами • Упрощенное написание тест кейсов • Целостная система драйверов, модулей, библиотек, источников данных, результатов • Максимальное повторное использование • Минимальные усилия на поддержку тестов
  • 5. Выбор и разработка фреймворка Разработка фреймворка – это разработка программного комплекса: • Анализ требований к автоматизации и к средству тестирования • Анализ приложения – кандидата для автоматизации • Качественные характеристики фреймворка • Набор возможностей фреймворка • Выбор средств реализации • Дизайн архитектуры, разработка, отладка, документация • Поддержка и развитие
  • 6. <Оболочка> <Приложение> Раннер Отчеты Язык <Тест кейсы> Черный TC_1 Ящик Библиотеки Драйвер TC_2 Тесты: TC_1 Passed Действия Отчеты TC_2 Failed Проверки Данные
  • 8. «Боевой робот» в open-source Гибкость и расширяемость
  • 9. Риски open-source средств: бесплатный сыр бывает только в мышеловке…
  • 10. Построение фреймворков в open-source Особенности • Необходимо понимать «анатомию» тестовых средств и фреймворков • «Заботимся о деталях сами»: самостоятельная разработка многих компонентов и интерфейсов фреймворка • Open-source средства дают свободу и гибкость, позволяют создавать легко расширяемые фреймворки
  • 11. Содержание  Тестовый фреймворк – как много в этом слове...  Постановка задачи  Архитектура и решение входных условий  Полезные решения и практики  Рекомендации
  • 12. Общие требования к автоматизации www.hotels.co.uk QA www.hotel.hu www.hotels.ru … Staging www.expedia.co.uk www.expedia.ru … • Сложное web-приложение Production • Различные приложения, функционалы, локали (40+) • Разные сервера
  • 13. Общие требования к автоматизации R10 R11 R10.1 R10.2 Тестовый набор 1 Тестовый набор 2 Время 1 ~ Время 2 Тестовый набор 2 > Тестовый набор 1 Локали 2 > Локали 1
  • 14. Общие требования к автоматизации • Распределенная команда  необходим общий подход и централизованное управление тестированием
  • 15. Содержание  Тестовый фреймворк – как много в этом слове...  Постановка задачи  Архитектура и решение входных условий  Полезные решения и практики  Рекомендации
  • 17. Архитектура фреймворка на основе Watir Консоль Сервер Код БД Клиент 1 Web- интерфейс … Репозиторий Browser Клиент: Режим отладки Код Клиент K Watir Ядро
  • 18. Архитектура фреймворка на основе Watir Серверная часть: • Версии 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
  • 19. Основные возможности фреймворка • Собственный драйвер тестов, централизованный и удобный запуск, распределенное выполнение на многочисленных клиентах с различной конфигурацией, свободная масштабируемость • Параллельное выполнение • Масштабируемость • Работа в режиме отладки (debug) • Гибкая расширяемость для новых тестовых окружений (серверов), локалей • Поддержка нескольких проектов и версий • Возможность создания data-driven сценариев из нескольких тестовых компонентов Scenario = (Test1 + Dataset1)+…+(Test i + Dataset j) • Удобный интерфейс, мощный механизм отчетов
  • 20. Поддержка разных проектов и версий Web- интерфейс Фреймворк БД Репозиторий: *проекты *версии
  • 23.
  • 24. Содержание  Тестовый фреймворк – как много в этом слове...  Постановка задачи  Архитектура и решение входных условий  Полезные решения и практики  Рекомендации
  • 25. Полезные решения и практики • Объектно-ориентированная структура и подход в тестировании, включая модель 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)
  • 27. Поддержка разных environments, локалей, конфигурационных настроек БД приложения Файлы с данными (AUT) • Локализационные данные (форматы и тп) • Настройки конфигурации • Информация о поддерживаемых environments • локалях Фреймворк БД • URLs • Servers’ hosts
  • 28. Полезные решения и практики • Расширение функционала Watir и драйвера браузера • Гибкая синхронизация с приложением (сложные страницы, Ajax вызовы, тестирование с включенной и отключенной поддержкой JavaScript в браузере) • Тестирование через HTTP протокол: рекурсивные тесты на нахождение broken-links • Работа с настройками браузера и соединения (cookies, cache, включение и отключение поддержки JavaScript, установка HTTP headers)
  • 29. Содержание  Тестовый фреймворк – как много в этом слове...  Постановка задачи  Архитектура и решение входных условий  Полезные решения и практики  Рекомендации
  • 30. Построение фреймворков в open-source Рекомендации • Используй стандартизированные интерфейсы и протоколы • Реализуй только то, что тебе необходимо. Поддерживай только необходимые тебе интерфейсы приложения • Твоя цель – тестирование, приносящее пользу проекту ВОВРЕМЯ • “It does not have to be perfect to be useful” • Будь в теме! • Популярные средства быстро развиваются • Часто поддерживаются только последние версии • Работай с разработчиками над тестируемостью приложения и альтернативными интерфейсами (если необходимо)
  • 31. Построение фреймворков в open-source Рекомендации Относись к фреймворку и тестовому коду как к программному продукту • Хорошая и простая архитектура • Сначала простой код  тестирование  модульность • Регулярные ревью кода, рефакторинг, DRY • Стандарты кодирования • Комментарии • Контроль версий • Возможно, поддержка разных версий (branching) для разных версий (releases) тестируемой системы
  • 32. Построение фреймворков в open-source Прогнозы Появляется необходимость в новом наборе навыков для инженера по автоматизации (Software Design Engineer in Test) • Навыки разработки и кодирования • Навыки архитектора • Навыки тестирования Рекомендуемое разделение обязанностей: • Разработчик ядра фреймворка и библиотек • Разработчик автоматических тестов
  • 33. Благодарность • 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 WatirCraft • Author and co-author of many outstanding and wholesome published works and articles (www.pettichord.com)
  • 34. Контактная информация <epam> Ихелис Александр EPAM Systems ул. В. Хоружей, 29 220123 Минск, Беларусь почта: alex.ikhelis@gmail.com блог: http://alexikhelis.blogspot.com </epam>

Notes de l'éditeur

  1. Типы фреймворков:Для конкретного продукта/компании (domain-specific)Общей направленности (для широкого использования)
  2. *Сложное web-приложение (http/https, Ajax)*Различные приложения (проекты), функционалы, локали, версии (релизы)*Тестирование на разных серверах*Более 40 локализаций, включая иероглифические, постоянное добавление новых локалей* (Гибкость) Каждая локаль имеет свои конфигурационные настройки, форматы дат, цен, и тд
  3. *Частые выпуски новых версий (releases),необходимость тестирования различных версий и различных окружений одновременно*Необходимость в автоматизации различных функционалов, регрессионное тестирование на всех локалях+Распределенная команда -> нужен общий подход к автоматизации, централизованное управление
  4. *парарллельное выполнение*масштабируемость -> различные клиентские конфигурации*поддержка разных проектов и версий (разные ветки в репозитории и гибкий UI для управления)*гибкость работы с данными (XLS, XML, MS SQL, MySQL)*поддержка разных environments, локалей, настроек
  5. *Effective test designs (functional decomposition, separate data from code, PageObject pattern, DSL, given-when-then, etc)*Gain more skills: about web app design and implementations, work in pair with developers, etc*Increase testability (DOM structure, unique IDs, etc)*Speed up execution: testable app to identify elements faster, parallel execution, reduce manual interaction – integrate into source control system*Informative tests (results, logs)*I suggest you create unit tests for more involved support functions and for ‘driver’ code, rather than for the tests themselves.*Simple navigation test suite for your GUI layers, increase it continuously along with adding new UI elements to your tests
  6. *design for maintenability and sustainability