54
Автоматизация тестирования на крупных проектах Игорь Хрол

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

Игорь Хрол

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

План

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

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

План

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

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

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

План

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

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

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

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

План

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

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

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

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

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

План

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проблемы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• эффективные инструменты по автоматизации (QTP vs Selenium)

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

Стабильная инфраструктура

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

Стабильная инфраструктура

• Выключать автоматическое обновление windows-серверов

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

Стабильная инфраструктура

• Выключать автоматическое обновление windows-серверов

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

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

Стабильная инфраструктура

• Выключать автоматическое обновление windows-серверов

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

• Шаблоны виртуальных машин

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

Стабильная инфраструктура

• Выключать автоматическое обновление windows-серверов

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

• Шаблоны виртуальных машин

• Скрипты для установки переменных окружения

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

Стабильная инфраструктура

• Выключать автоматическое обновление windows-серверов

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

• Шаблоны виртуальных машин

• Скрипты для установки переменных окружения

• Запланированные maintenance активности

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

Работа многих людей одновременно

Возникающие проблемы:• Каждый может что-то поломать

• Не все могут быть "в курсе" изменений

• Требуется синхронизация разных работ

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

Каждый может что-то поломать

Решение: Continious Integration

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

Каждый может что-то поломать

Решение: Continious Integration

• Hudson, CruiseControl, Bamboo...• Проводится только компиляция тестов• Письмо виноватому и начальству в случае поломки

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

Не все могут быть "в курсе" изменений

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

• Общий чат

• E-mail рассылки

• Регулярные статусные митинги

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

Не все могут быть "в курсе" изменений

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

• Общий чат

• E-mail рассылки

• Регулярные статусные митинги

Больше общайтесь! :)

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

Разделение на подкоманды

Синхронизация разных работ

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

Работа с несколькими codeline

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

Проблемы синхронизации всё-таки возникают

• Нужно всем вместе установить новую сборку приложения

• Требуется сделать следующий branch• Меняем текущий поддерживаемый браузер и т д

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

Стабильные тесты

• Основной показатель - Success Rate

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

Стабильные тесты

• Основной показатель - Success Rate

Какой результат достижим для UI тестов (от 0% до 100%)?

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

Стабильные тесты

• Основной показатель - Success Rate

Какой результат достижим для UI тестов (от 0% до 100%)?

• Наш целевой показатель - 97%

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

Стабильные тесты

• Основной показатель - Success Rate

Какой результат достижим для UI тестов (от 0% до 100%)?

• Наш целевой показатель - 97%

• Отдельный проект в Bug Tracking системе для быстрого реагирования на запросы (а также контроль качества)

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

Стабильные тесты

• Основной показатель - Success Rate

Какой результат достижим для UI тестов (от 0% до 100%)?

• Наш целевой показатель - 97%

• Отдельный проект в Bug Tracking системе для быстрого реагирования на запросы (а также контроль качества)

Какие из тестов стабильнее?• нет дефектов в Bug Tracking'е• регулярно заносятся дефекты

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

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

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

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

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

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

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

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

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

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

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

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

Вопросы