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

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

Upload: igor-khrol

Post on 16-Nov-2014

5.639 views

Category:

Education


2 download

DESCRIPTION

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

TRANSCRIPT

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: Автоматизация тестирования на крупных проектах

Вопросы