Игорь Хрол Автоматизация тестирования на крупных проектах
План Что есть крупный проект? Типичные проблемы Варианты решения Обо всём понемногу
План Что есть крупный проект? Типичные проблемы Варианты решения Обо всём понемногу
Что есть «крупный проект» в автоматизации тестирования? Более 1-2 человеко-лет разработки тестов
Что есть «крупный проект» в автоматизации тестирования? Более 1-2 человеко-лет разработки тестов Выделенная команда, занимающаяся автоматизацией тестирования
Что есть «крупный проект» в автоматизации тестирования? Более 1-2 человеко-лет разработки тестов Выделенная команда, занимающаяся автоматизацией тестирования Появляются проблемы с масштабированием, поддержкой, запусками и так далее...
Проблемы Тестов слишком много
Проблемы - Тестов слишком много Тесты не успевают отработать за 1-2 часа
Проблемы - Тестов слишком много Тесты не успевают отработать за 1-2 часа Решение - запускать их на ночь
Проблемы - Тестов слишком много Тесты не успевают отработать за ночь
Проблемы - Тестов слишком много Тесты не успевают отработать за ночь Решение - распараллеливание
Проблемы с распараллеливанием Требуется больше серверов
Проблемы с распараллеливанием Требуется больше серверов Тесты начинают конфликтовать между собой
Проблемы с распараллеливанием Требуется больше серверов Тесты начинают конфликтовать между собой Одно из решений  - использование нескольких тестовых стендов
Проблемы - Тестов слишком много Тесты не успевают отработать за сутки
Проблемы - Тестов слишком много Тесты не успевают отработать за сутки Решение - запуск на выходные
Проблемы - Тестов слишком много Тесты не успевают отработать за выходные Еще решения...
Проблемы - Тестов слишком много Тесты не успевают отработать за выходные Еще решения... Группировка тестов по приоритетам
Проблемы - Тестов слишком много Тесты не успевают отработать за выходные Еще решения... Группировка тестов по приоритетам Запуск тестов на самых "быстрых" окружениях
Проблемы - Тестов слишком много Тесты не успевают отработать за выходные Еще решения... Группировка тестов по приоритетам Запуск тестов на самых "быстрых" окружениях Использование заранее подготовленных данных
Проблемы - Тестов слишком много Тесты не успевают отработать за выходные Еще решения... Группировка тестов по приоритетам Запуск тестов на самых "быстрых" окружениях Интеграция с BackEnd ( отдельный слайд ) Использование заранее подготовленных данных
Интеграция с Back End API
Интеграция с Back End API В теории: Должно работать для Ruby-on-Rails ASP.NET + IronRuby (IronPython)
Большие объёмы поддержки Решения проблемы:
Большие объёмы поддержки Решения проблемы: общий фреймворк: исправления одних людей могут ре-использоваться другими исправления происходят в одном месте
Большие объёмы поддержки Решения проблемы: общий фреймворк: исправления одних людей могут ре-использоваться другими исправления происходят в одном месте эффективный фреймворк для минимизации дублирования кода
Большие объёмы поддержки Решения проблемы: общий фреймворк: исправления одних людей могут ре-использоваться другими исправления происходят в одном месте эффективный фреймворк для минимизации дублирования кода максимально частые запуски тестов
Большие объёмы поддержки Решения проблемы: общий фреймворк: исправления одних людей могут ре-использоваться другими исправления происходят в одном месте эффективный фреймворк для минимизации дублирования кода максимально частые запуски тестов эффективные инструменты по автоматизации (QTP vs Selenium)
Стабильная инфраструктура
Стабильная инфраструктура Выключать автоматическое обновление windows-серверов
Стабильная инфраструктура Выключать автоматическое обновление windows-серверов Использовать фиксированные пароли
Стабильная инфраструктура Выключать автоматическое обновление windows-серверов Использовать фиксированные пароли Шаблоны виртуальных машин
Стабильная инфраструктура Выключать автоматическое обновление windows-серверов Использовать фиксированные пароли Шаблоны виртуальных машин Скрипты для установки переменных окружения
Стабильная инфраструктура Выключать автоматическое обновление windows-серверов Использовать фиксированные пароли Шаблоны виртуальных машин Скрипты для установки переменных окружения Запланированные maintenance активности
Работа многих людей одновременно Возникающие проблемы: Каждый может что-то поломать Не все могут быть "в курсе" изменений Требуется синхронизация разных работ
Каждый может что-то поломать Решение:  Continious Integration
Каждый может что-то поломать Решение:  Continious Integration Hudson, CruiseControl, Bamboo... Проводится только компиляция тестов Письмо виноватому и начальству в случае поломки
Не все могут быть "в курсе" изменений Варианты решения: Общий чат E-mail рассылки Регулярные статусные митинги
Не все могут быть "в курсе" изменений Варианты решения: Общий чат E-mail рассылки Регулярные статусные митинги Больше общайтесь! :)
Разделение на подкоманды Синхронизация разных работ
Работа с несколькими codeline
Проблемы синхронизации всё-таки возникают Нужно всем вместе установить новую сборку приложения Требуется сделать следующий branch Меняем текущий поддерживаемый браузер и т д
Стабильные тесты Основной показатель - Success Rate
Стабильные тесты Основной показатель - Success Rate Какой результат достижим для UI тестов (от 0% до 100%)?
Стабильные тесты Основной показатель - Success Rate Какой результат достижим для UI тестов (от 0% до 100%)? Наш целевой показатель - 97%
Стабильные тесты Основной показатель - Success Rate Какой результат достижим для UI тестов (от 0% до 100%)? Наш целевой показатель - 97% Отдельный проект в Bug Tracking системе для быстрого реагирования на запросы (а также контроль качества)
Стабильные тесты Основной показатель - Success Rate Какой результат достижим для UI тестов (от 0% до 100%)? Наш целевой показатель - 97% Отдельный проект в Bug Tracking системе для быстрого реагирования на запросы (а также контроль качества) Какие из тестов стабильнее? нет дефектов в Bug Tracking'е регулярно заносятся дефекты
Инфраструктура для запуска тестов Возможность запуска тестов всем заинтересованным людям Централизованное хранилище результатов Создание пула машин для выполения тестов
Инфраструктура для запуска тестов Возможность запуска тестов всем заинтересованным людям Централизованное хранилище результатов Создание пула машин для выполения тестов Предстоит сделать...
Вопросы
Автоматизация тестирования на крупных проектах
Автоматизация тестирования на крупных проектах
Автоматизация тестирования на крупных проектах
Автоматизация тестирования на крупных проектах

Автоматизация тестирования на крупных проектах

  • 1.
    Игорь Хрол Автоматизациятестирования на крупных проектах
  • 2.
    План Что естькрупный проект? Типичные проблемы Варианты решения Обо всём понемногу
  • 3.
    План Что естькрупный проект? Типичные проблемы Варианты решения Обо всём понемногу
  • 4.
    Что есть «крупныйпроект» в автоматизации тестирования? Более 1-2 человеко-лет разработки тестов
  • 5.
    Что есть «крупныйпроект» в автоматизации тестирования? Более 1-2 человеко-лет разработки тестов Выделенная команда, занимающаяся автоматизацией тестирования
  • 6.
    Что есть «крупныйпроект» в автоматизации тестирования? Более 1-2 человеко-лет разработки тестов Выделенная команда, занимающаяся автоматизацией тестирования Появляются проблемы с масштабированием, поддержкой, запусками и так далее...
  • 7.
  • 8.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за 1-2 часа
  • 9.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за 1-2 часа Решение - запускать их на ночь
  • 10.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за ночь
  • 11.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за ночь Решение - распараллеливание
  • 12.
    Проблемы с распараллеливаниемТребуется больше серверов
  • 13.
    Проблемы с распараллеливаниемТребуется больше серверов Тесты начинают конфликтовать между собой
  • 14.
    Проблемы с распараллеливаниемТребуется больше серверов Тесты начинают конфликтовать между собой Одно из решений - использование нескольких тестовых стендов
  • 15.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за сутки
  • 16.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за сутки Решение - запуск на выходные
  • 17.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за выходные Еще решения...
  • 18.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за выходные Еще решения... Группировка тестов по приоритетам
  • 19.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за выходные Еще решения... Группировка тестов по приоритетам Запуск тестов на самых "быстрых" окружениях
  • 20.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за выходные Еще решения... Группировка тестов по приоритетам Запуск тестов на самых "быстрых" окружениях Использование заранее подготовленных данных
  • 21.
    Проблемы - Тестов слишкоммного Тесты не успевают отработать за выходные Еще решения... Группировка тестов по приоритетам Запуск тестов на самых "быстрых" окружениях Интеграция с BackEnd ( отдельный слайд ) Использование заранее подготовленных данных
  • 22.
  • 23.
    Интеграция с BackEnd API В теории: Должно работать для Ruby-on-Rails ASP.NET + IronRuby (IronPython)
  • 24.
    Большие объёмы поддержкиРешения проблемы:
  • 25.
    Большие объёмы поддержкиРешения проблемы: общий фреймворк: исправления одних людей могут ре-использоваться другими исправления происходят в одном месте
  • 26.
    Большие объёмы поддержкиРешения проблемы: общий фреймворк: исправления одних людей могут ре-использоваться другими исправления происходят в одном месте эффективный фреймворк для минимизации дублирования кода
  • 27.
    Большие объёмы поддержкиРешения проблемы: общий фреймворк: исправления одних людей могут ре-использоваться другими исправления происходят в одном месте эффективный фреймворк для минимизации дублирования кода максимально частые запуски тестов
  • 28.
    Большие объёмы поддержкиРешения проблемы: общий фреймворк: исправления одних людей могут ре-использоваться другими исправления происходят в одном месте эффективный фреймворк для минимизации дублирования кода максимально частые запуски тестов эффективные инструменты по автоматизации (QTP vs Selenium)
  • 29.
  • 30.
    Стабильная инфраструктура Выключатьавтоматическое обновление windows-серверов
  • 31.
    Стабильная инфраструктура Выключатьавтоматическое обновление windows-серверов Использовать фиксированные пароли
  • 32.
    Стабильная инфраструктура Выключатьавтоматическое обновление windows-серверов Использовать фиксированные пароли Шаблоны виртуальных машин
  • 33.
    Стабильная инфраструктура Выключатьавтоматическое обновление windows-серверов Использовать фиксированные пароли Шаблоны виртуальных машин Скрипты для установки переменных окружения
  • 34.
    Стабильная инфраструктура Выключатьавтоматическое обновление windows-серверов Использовать фиксированные пароли Шаблоны виртуальных машин Скрипты для установки переменных окружения Запланированные maintenance активности
  • 35.
    Работа многих людейодновременно Возникающие проблемы: Каждый может что-то поломать Не все могут быть "в курсе" изменений Требуется синхронизация разных работ
  • 36.
    Каждый может что-тополомать Решение:  Continious Integration
  • 37.
    Каждый может что-тополомать Решение:  Continious Integration Hudson, CruiseControl, Bamboo... Проводится только компиляция тестов Письмо виноватому и начальству в случае поломки
  • 38.
    Не все могутбыть "в курсе" изменений Варианты решения: Общий чат E-mail рассылки Регулярные статусные митинги
  • 39.
    Не все могутбыть "в курсе" изменений Варианты решения: Общий чат E-mail рассылки Регулярные статусные митинги Больше общайтесь! :)
  • 40.
    Разделение на подкомандыСинхронизация разных работ
  • 41.
  • 42.
    Проблемы синхронизации всё-такивозникают Нужно всем вместе установить новую сборку приложения Требуется сделать следующий branch Меняем текущий поддерживаемый браузер и т д
  • 43.
    Стабильные тесты Основнойпоказатель - Success Rate
  • 44.
    Стабильные тесты Основнойпоказатель - Success Rate Какой результат достижим для UI тестов (от 0% до 100%)?
  • 45.
    Стабильные тесты Основнойпоказатель - Success Rate Какой результат достижим для UI тестов (от 0% до 100%)? Наш целевой показатель - 97%
  • 46.
    Стабильные тесты Основнойпоказатель - Success Rate Какой результат достижим для UI тестов (от 0% до 100%)? Наш целевой показатель - 97% Отдельный проект в Bug Tracking системе для быстрого реагирования на запросы (а также контроль качества)
  • 47.
    Стабильные тесты Основнойпоказатель - Success Rate Какой результат достижим для UI тестов (от 0% до 100%)? Наш целевой показатель - 97% Отдельный проект в Bug Tracking системе для быстрого реагирования на запросы (а также контроль качества) Какие из тестов стабильнее? нет дефектов в Bug Tracking'е регулярно заносятся дефекты
  • 48.
    Инфраструктура для запускатестов Возможность запуска тестов всем заинтересованным людям Централизованное хранилище результатов Создание пула машин для выполения тестов
  • 49.
    Инфраструктура для запускатестов Возможность запуска тестов всем заинтересованным людям Централизованное хранилище результатов Создание пула машин для выполения тестов Предстоит сделать...
  • 50.

Editor's Notes

  • #12 До сих пор называем тесты "ночными".