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

Preview:

DESCRIPTION

Обзор встречи Minsk Automated Testing Community www.autotest.by за 31 августа 2011 года

Citation preview

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

Игорь Хрол

План

• Что есть крупный проект?

План

• Что есть крупный проект?

• Типичные проблемы

План

• Что есть крупный проект?

• Типичные проблемы

• Варианты решения

План

• Что есть крупный проект?

• Типичные проблемы

• Варианты решения

• Обо всём понемногу

План

• Что есть крупный проект?

• Типичные проблемы

• Варианты решения

• Обо всём понемногу

Что есть «крупный проект» в автоматизации тестирования?

Что есть «крупный проект» в автоматизации тестирования?

• Более 1-2 человеко-лет разработки тестов

Что есть «крупный проект» в автоматизации тестирования?

• Более 1-2 человеко-лет разработки тестов

• Выделенная команда, занимающаяся автоматизацией тестирования

Что есть «крупный проект» в автоматизации тестирования?

• Более 1-2 человеко-лет разработки тестов

• Выделенная команда, занимающаяся автоматизацией тестирования

• Появляются проблемы с масштабированием, поддержкой, запусками и так далее...

Проблемы

Тестов слишком много

Проблемы - Тестов слишком многоТесты не успевают отработать за 1-2 часа

Проблемы - Тестов слишком многоТесты не успевают отработать за 1-2 часа

Решение - запускать их на ночь

Проблемы - Тестов слишком многоТесты не успевают отработать за ночь

Проблемы - Тестов слишком многоТесты не успевают отработать за ночь

Решение - распараллеливание

Проблемы с распараллеливаниемТребуется больше серверов

Проблемы с распараллеливаниемТребуется больше серверов

Тесты начинают конфликтовать между собой

Проблемы с распараллеливаниемТребуется больше серверов

Тесты начинают конфликтовать между собой

Одно из решений - использование нескольких тестовых стендов

Проблемы - Тестов слишком многоТесты не успевают отработать за сутки

Проблемы - Тестов слишком многоТесты не успевают отработать за сутки

Решение - запуск на выходные

Проблемы - Тестов слишком многоТесты не успевают отработать за выходные

Еще решения...

Проблемы - Тестов слишком многоТесты не успевают отработать за выходные

Еще решения...• Группировка тестов по приоритетам

Проблемы - Тестов слишком многоТесты не успевают отработать за выходные

Еще решения...• Группировка тестов по приоритетам

• Запуск тестов на самых "быстрых" окружениях

Проблемы - Тестов слишком многоТесты не успевают отработать за выходные

Еще решения...• Группировка тестов по приоритетам

• Запуск тестов на самых "быстрых" окружениях

• Использование заранее подготовленных данных

Проблемы - Тестов слишком многоТесты не успевают отработать за выходные

Еще решения...• Группировка тестов по приоритетам

• Запуск тестов на самых "быстрых" окружениях

• Интеграция с BackEnd (отдельный слайд)

• Использование заранее подготовленных данных

Интеграция с Back End API

Интеграция с Back End API

• В теории:o Должно работать для Ruby-on-Railso ASP.NET + IronRuby (IronPython)

Большие объёмы поддержки

Решения проблемы:

Большие объёмы поддержки

Решения проблемы:

• общий фреймворк:o исправления одних людей

могут ре-использоваться другими

o исправления происходят в одном месте

Большие объёмы поддержки

Решения проблемы:

• общий фреймворк:o исправления одних людей

могут ре-использоваться другими

o исправления происходят в одном месте

• эффективный фреймворк для минимизации дублирования кода

Большие объёмы поддержки

Решения проблемы:

• общий фреймворк:o исправления одних людей

могут ре-использоваться другими

o исправления происходят в одном месте

• эффективный фреймворк для минимизации дублирования кода

• максимально частые запуски тестов

Большие объёмы поддержки

Решения проблемы:

• общий фреймворк:o исправления одних людей

могут ре-использоваться другими

o исправления происходят в одном месте

• эффективный фреймворк для минимизации дублирования кода

• максимально частые запуски тестов

• эффективные инструменты по автоматизации (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'е• регулярно заносятся дефекты

Инфраструктура для запуска тестов

Возможность запуска тестов всем заинтересованным людям

Централизованное хранилище результатов

Создание пула машин для выполения тестов

Инфраструктура для запуска тестов

Возможность запуска тестов всем заинтересованным людям

Централизованное хранилище результатов

Создание пула машин для выполения тестов

Предстоит сделать...

Вопросы

Recommended