SlideShare una empresa de Scribd logo
1 de 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>

Más contenido relacionado

La actualidad más candente

нужен ли россии
нужен ли россиинужен ли россии
нужен ли россии
Timur AITOV
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project development
Ontico
 
власть сми
власть смивласть сми
власть сми
Timur AITOV
 
Competitions Cloudwatcher_new
Competitions Cloudwatcher_newCompetitions Cloudwatcher_new
Competitions Cloudwatcher_new
guest18d24c
 
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...
Интернет-сообщества 2008: Организация Интернет-платежей как фактор развития б...
E-Money News
 
Career Development в Epam Systems
Career Development в Epam SystemsCareer Development в Epam Systems
Career Development в Epam Systems
sef2009
 
Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009
Denis 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 Conf
Liudmila Li
 
романов использование Share Point Server для решения задач документооборта и ...
романов использование Share Point Server для решения задач документооборта и ...романов использование Share Point Server для решения задач документооборта и ...
романов использование Share Point Server для решения задач документооборта и ...
Liudmila Li
 
присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1
Liudmila Li
 

La actualidad más candente (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
 

Destacado

Cpacidad y habilidad del proceso
Cpacidad y habilidad del procesoCpacidad y habilidad del proceso
Cpacidad y habilidad del proceso
alimacni
 
D轮 社会化媒体 social media
D轮 社会化媒体 social mediaD轮 社会化媒体 social media
D轮 社会化媒体 social media
max-marketing
 
Gráficos de control
Gráficos de controlGráficos de control
Gráficos de control
UTT
 

Destacado (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
 

Más de sef2009

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

Más 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>

Notas del editor

  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