+ All Categories
Home > Documents > Artem Shabarshin. CSEDays

Artem Shabarshin. CSEDays

Date post: 11-Nov-2014
Category:
Upload: lilosea
View: 702 times
Download: 0 times
Share this document with a friend
Description:
 
Popular Tags:
24
Артем Шабаршин инженер-программист группы тарификации отдела биллинга Постановка процесса функционального тестирования - проблемы и решения
Transcript
Page 1: Artem Shabarshin. CSEDays

Артем Шабаршин инженер-программист группы тарификации отдела биллинга

Постановка процесса функционального тестирования - проблемы и решения

Page 2: Artem Shabarshin. CSEDays

• Visual Studio 2008

• SQL Server

• Perforce

• Microsoft Hyper-V Server 2008

• Cruise Control.NET

• .NET Framework 3.5

• •12500 строк кода на языке С#•12500 строк кода на языке С#

• 4000 строк модульных тестов

• 111000 строк скриптов базы данных

• 47000 строк функциональных тестов

• Время запуска всех тестов более 4.5 часов• 4-6 чел. команда разработки

Что мы имеем сейчас

Page 3: Artem Shabarshin. CSEDays

1) Модульное тестирование

2) Функциональное тестирование

3) Стратегия работы с контролем версий

4) Тестирование конфигураций

5) Распределенные тесты

6) Сервер непрерывной интеграции

Этапы постановки процесса тестирования

Александр Карабасов
Модульные тесты, функциональные тесты, и тесты про которые я сегодня говорить не буду: нагрузочные, интеграционные( сверка трафика, перед выпуском релиза).
Page 4: Artem Shabarshin. CSEDays

• Я знаю, как работает моя программа.

• Ошибки выявляются при отладке.

• С ростом объема кода растет время отладки.

Начинаем проект! Нам тесты не нужны!

Page 5: Artem Shabarshin. CSEDays

Модульные тесты, если…

• Проверка отдельных частей.

• Покрытие кода.

• Меньше ошибок

Низкое качество, частые ошибки!

Много времени уходит на отладку!

Page 6: Artem Shabarshin. CSEDays

Test Driven Development

• Сначала тест, затем программа

• Красная и зеленая зоны

• Рефакторинг

Page 7: Artem Shabarshin. CSEDays

Этапы постановки процесса тестирования

1) Модульное тестирование

2) Функциональное тестирование

3) Стратегия работы с контролем версий

4) Тестирование конфигураций

5) Распределенные тесты

6) Сервер непрерывной интеграции

Александр Карабасов
Модульные тесты, функциональные тесты, и тесты про которые я сегодня говорить не буду: нагрузочные, интеграционные( сверка трафика, перед выпуском релиза).
Page 8: Artem Shabarshin. CSEDays

Функциональные тесты, если…

• Тестирование черного ящика.

• Тестировщиков нет

• Visual Studio generic test.

• План тестирования.

Неизвестно какие функции

Работают, а какие нет

Неизвестно

взаимовлияние функций

Невозможно быстро протестировать

систему в целом

Page 9: Artem Shabarshin. CSEDays

Что мы получили

• Вносить изменения легко.

• Минимальная отладка.

• Регрессионное тестирование.

• Выпуск релиза.

Page 10: Artem Shabarshin. CSEDays

Этапы постановки процесса тестирования

1) Модульное тестирование

2) Функциональное тестирование

3) Стратегия работы с контролем версий

4) Тестирование конфигураций

5) Распределенные тесты

6) Сервер непрерывной интеграции

Александр Карабасов
Модульные тесты, функциональные тесты, и тесты про которые я сегодня говорить не буду: нагрузочные, интеграционные( сверка трафика, перед выпуском релиза).
Page 11: Artem Shabarshin. CSEDays

Стратегия работы с контролем версий, если…

• Вносить изменения легко.

• Минимальная отладка

• Выпуск релиза mainline

feature 1

feature 2

release v.1.0

Разработчики мешают друг другу!

Тестировать постоянно меняющуюся

версию невозможно!

Page 12: Artem Shabarshin. CSEDays

Этапы постановки процесса тестирования

1) Модульное тестирование

2) Функциональное тестирование

3) Стратегия работы с контролем версий

4) Тестирование конфигураций

5) Распределенные тесты

6) Сервер непрерывной интеграции

Александр Карабасов
Модульные тесты, функциональные тесты, и тесты про которые я сегодня говорить не буду: нагрузочные, интеграционные( сверка трафика, перед выпуском релиза).
Page 13: Artem Shabarshin. CSEDays

Заказчики хотят разного!

• Вносить изменения легко.

• Минимальная отладка

• Выпуск релиза

F1

F2

F3

F2*

F3*

Page 14: Artem Shabarshin. CSEDays

Матрица анализа, тестирование конфигураций если…

Функциональность 1 F1 F1 F1

Функциональность 2 F2 F2 F2*

Функциональность 3 F3 F3* F3

Заказчики хотят разного!

Page 15: Artem Shabarshin. CSEDays

Этапы постановки процесса тестирования

1) Модульное тестирование

2) Функциональное тестирование

3) Стратегия работы с контролем версий

4) Тестирование конфигураций

5) Распределенные тесты

6) Сервер непрерывной интеграции

Александр Карабасов
Модульные тесты, функциональные тесты, и тесты про которые я сегодня говорить не буду: нагрузочные, интеграционные( сверка трафика, перед выпуском релиза).
Page 16: Artem Shabarshin. CSEDays

Запуск тестов

• Тестов много.

• Запуск парализует остальную работу.

• Редко запускаются.

• Больше тестов в красной зоне.

Тест 1Тест 2Тест 3Тест 4

Тест N

Проблема: Тесты выполняются слишком долго!

Page 17: Artem Shabarshin. CSEDays

Распределенные тесты, если…

Вирт. машина 1

Тест 1Тест 2

Вирт. машина 2

Тест 3Тест 4

Вирт. машина 3

Тест N-1Тест N

Тесты выполняются слишком долго!

Page 18: Artem Shabarshin. CSEDays

Этапы постановки процесса тестирования

1) Модульное тестирование

2) Функциональное тестирование

3) Стратегия работы с контролем версий

4) Тестирование конфигураций

5) Распределенные тесты

6) Сервер непрерывной интеграции

Александр Карабасов
Модульные тесты, функциональные тесты, и тесты про которые я сегодня говорить не буду: нагрузочные, интеграционные( сверка трафика, перед выпуском релиза).
Page 19: Artem Shabarshin. CSEDays

Проблемы, которые решает

сервер непрерывной интеграции

Много ручной работы!

Разработчики игнорируют

запуск тестов!

Проблема растет

как снежный ком!

Page 20: Artem Shabarshin. CSEDays

Как работает сервер непрерывной интеграции

Сервер сборки

Сервер непрерывной интеграции

Цикл сборки Отчеты

ЛогированиеВнешние приложения

ГруппаТриггер

Page 21: Artem Shabarshin. CSEDays

Серверы непрерывной интеграции обслуживаютвсе ветки разработки

• Вносить изменения легко.

• Минимальная отладка

• Выпуск релиза mainline

feature 1

feature 2

release v.1.0

Сервер №1

Сервер №2

Сервер №4

Сервер №3

Page 22: Artem Shabarshin. CSEDays

• основная группа из 1000 тестов проходят за 5 минут.

• Автоматическая сборка.

• Результаты тестов сразу.

• Тяжелые тесты по расписанию (ночью).

• Каждую ветку разработки обслуживает отдельный сервер интеграции

Чего мы достигли

Page 23: Artem Shabarshin. CSEDays

Источники

• http://alexeybulat.blogspot.com/

• http://martinfowler.com/articles/continuousIntegration.html

• http://cruisecontrol.sourceforge.net/

• http://software-testing.ru/

Page 24: Artem Shabarshin. CSEDays

СПАСИБО

Артем Шабаршин [email protected]


Recommended