Artem Shabarshin. CSEDays
description
Transcript of Artem Shabarshin. CSEDays
![Page 1: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/1.jpg)
Артем Шабаршин инженер-программист группы тарификации отдела биллинга
Постановка процесса функционального тестирования - проблемы и решения
![Page 2: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/2.jpg)
• 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](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/3.jpg)
1) Модульное тестирование
2) Функциональное тестирование
3) Стратегия работы с контролем версий
4) Тестирование конфигураций
5) Распределенные тесты
6) Сервер непрерывной интеграции
Этапы постановки процесса тестирования
![Page 4: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/4.jpg)
• Я знаю, как работает моя программа.
• Ошибки выявляются при отладке.
• С ростом объема кода растет время отладки.
Начинаем проект! Нам тесты не нужны!
![Page 5: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/5.jpg)
Модульные тесты, если…
• Проверка отдельных частей.
• Покрытие кода.
• Меньше ошибок
Низкое качество, частые ошибки!
Много времени уходит на отладку!
![Page 6: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/6.jpg)
Test Driven Development
• Сначала тест, затем программа
• Красная и зеленая зоны
• Рефакторинг
![Page 7: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/7.jpg)
Этапы постановки процесса тестирования
1) Модульное тестирование
2) Функциональное тестирование
3) Стратегия работы с контролем версий
4) Тестирование конфигураций
5) Распределенные тесты
6) Сервер непрерывной интеграции
![Page 8: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/8.jpg)
Функциональные тесты, если…
• Тестирование черного ящика.
• Тестировщиков нет
• Visual Studio generic test.
• План тестирования.
Неизвестно какие функции
Работают, а какие нет
Неизвестно
взаимовлияние функций
Невозможно быстро протестировать
систему в целом
![Page 9: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/9.jpg)
Что мы получили
• Вносить изменения легко.
• Минимальная отладка.
• Регрессионное тестирование.
• Выпуск релиза.
![Page 10: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/10.jpg)
Этапы постановки процесса тестирования
1) Модульное тестирование
2) Функциональное тестирование
3) Стратегия работы с контролем версий
4) Тестирование конфигураций
5) Распределенные тесты
6) Сервер непрерывной интеграции
![Page 11: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/11.jpg)
Стратегия работы с контролем версий, если…
• Вносить изменения легко.
• Минимальная отладка
• Выпуск релиза mainline
feature 1
feature 2
release v.1.0
Разработчики мешают друг другу!
Тестировать постоянно меняющуюся
версию невозможно!
![Page 12: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/12.jpg)
Этапы постановки процесса тестирования
1) Модульное тестирование
2) Функциональное тестирование
3) Стратегия работы с контролем версий
4) Тестирование конфигураций
5) Распределенные тесты
6) Сервер непрерывной интеграции
![Page 13: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/13.jpg)
Заказчики хотят разного!
• Вносить изменения легко.
• Минимальная отладка
• Выпуск релиза
F1
F2
F3
F2*
F3*
![Page 14: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/14.jpg)
Матрица анализа, тестирование конфигураций если…
Функциональность 1 F1 F1 F1
Функциональность 2 F2 F2 F2*
Функциональность 3 F3 F3* F3
Заказчики хотят разного!
![Page 15: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/15.jpg)
Этапы постановки процесса тестирования
1) Модульное тестирование
2) Функциональное тестирование
3) Стратегия работы с контролем версий
4) Тестирование конфигураций
5) Распределенные тесты
6) Сервер непрерывной интеграции
![Page 16: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/16.jpg)
Запуск тестов
• Тестов много.
• Запуск парализует остальную работу.
• Редко запускаются.
• Больше тестов в красной зоне.
Тест 1Тест 2Тест 3Тест 4
Тест N
Проблема: Тесты выполняются слишком долго!
![Page 17: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/17.jpg)
Распределенные тесты, если…
Вирт. машина 1
Тест 1Тест 2
Вирт. машина 2
Тест 3Тест 4
Вирт. машина 3
Тест N-1Тест N
Тесты выполняются слишком долго!
![Page 18: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/18.jpg)
Этапы постановки процесса тестирования
1) Модульное тестирование
2) Функциональное тестирование
3) Стратегия работы с контролем версий
4) Тестирование конфигураций
5) Распределенные тесты
6) Сервер непрерывной интеграции
![Page 19: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/19.jpg)
Проблемы, которые решает
сервер непрерывной интеграции
Много ручной работы!
Разработчики игнорируют
запуск тестов!
Проблема растет
как снежный ком!
![Page 20: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/20.jpg)
Как работает сервер непрерывной интеграции
Сервер сборки
Сервер непрерывной интеграции
Цикл сборки Отчеты
ЛогированиеВнешние приложения
ГруппаТриггер
![Page 21: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/21.jpg)
Серверы непрерывной интеграции обслуживаютвсе ветки разработки
• Вносить изменения легко.
• Минимальная отладка
• Выпуск релиза mainline
feature 1
feature 2
release v.1.0
Сервер №1
Сервер №2
Сервер №4
Сервер №3
![Page 22: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/22.jpg)
• основная группа из 1000 тестов проходят за 5 минут.
• Автоматическая сборка.
• Результаты тестов сразу.
• Тяжелые тесты по расписанию (ночью).
• Каждую ветку разработки обслуживает отдельный сервер интеграции
Чего мы достигли
![Page 23: Artem Shabarshin. CSEDays](https://reader034.fdocuments.us/reader034/viewer/2022051513/54620e99af7959d8588b6f2e/html5/thumbnails/23.jpg)
Источники
• http://alexeybulat.blogspot.com/
• http://martinfowler.com/articles/continuousIntegration.html
• http://cruisecontrol.sourceforge.net/
• http://software-testing.ru/