Open Source Testing Framework: real project example and best practices
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Open Source Testing Framework: real project example and best practices

  • 2,260 views
Uploaded on

Summary: Presentation on open source testing frameworks (improved version, more focus on real project example) at Software Engineering Forum 2009 (SEF-1) conference by Aliaksandr Ikhelis. Sponte......

Summary: Presentation on open source testing frameworks (improved version, more focus on real project example) at Software Engineering Forum 2009 (SEF-1) conference by Aliaksandr Ikhelis. Sponte framework developer and owner is Stanislaw Wozniak, Expedia Limited, UK. Sponte project homepage: http://rubyforge.org/projects/sponte/; http://github.com/swozniak/sponte/tree/master

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,260
On Slideshare
2,170
From Embeds
90
Number of Embeds
6

Actions

Shares
Downloads
24
Comments
0
Likes
0

Embeds 90

http://alexikhelis.blogspot.com 79
http://alexikhelis.blogspot.ru 5
http://www.blogger.com 3
http://www.slideshare.net 1
http://xss.yandex.net 1
http://alexikhelis.blogspot.dk 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 12. «Боевой робот» в open-source
  • 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. Содержание
    • Тестовый фреймворк – как много в этом слове...
    • Постановка задачи
    • Архитектура и решение входных условий
    • Полезные решения и практики
    • Рекомендации
  • 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 Клиент 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>