Автоматизированное тестирование

19
Автоматизированное тестирование Symfony2, PHPUnit, Jenkins

Transcript of Автоматизированное тестирование

Page 1: Автоматизированное тестирование

Автоматизированное тестированиеSymfony2, PHPUnit, Jenkins

Page 2: Автоматизированное тестирование
Page 3: Автоматизированное тестирование

О чем пойдет речь● Проблемы и решение● Теория тестирования и чем хороши авто-

тесты● Инструменты

○ PHPUnit○ Symfony2○ Jenkins

● Как мы с этим живем

Page 4: Автоматизированное тестирование

Проблемы● Долго и дорого исправляются баги● Кликать в браузере - медленно и скучно● Качество кодовой базы выходит из под

контроля, ошибки, печаль

Page 5: Автоматизированное тестирование

Решение● Избавить пользователя от ошибок● Научиться находить ошибки на более

ранних этапах, до внедрения новых функций

● Автоматизировать постоянные и монотонные проверки

Page 6: Автоматизированное тестирование

Теория

Page 7: Автоматизированное тестирование

Какое бывает тестирование● Модульное● Интеграционное● Системное

Page 8: Автоматизированное тестирование

Автоматизация и покрытие● В первую очередь наиболее важный

функционал● 100% покрытие – зло● Не забываем про баланс

Page 9: Автоматизированное тестирование

Что мы получаем● Проверка работоспособности компонента

еще до его интеграции● Быстрая проверка существующего

функционала при небольших изменениях, доработках

● Больше уверенности в том, что ничего не сломалось

Page 10: Автоматизированное тестирование
Page 11: Автоматизированное тестирование

Непрерывная интеграция● В идеальном мире позволяет выкатывать

исправления и новые фишки быстро и без крови

● Автоматизирует сборки проекта● Требует разработки большого количества

тестов

Page 12: Автоматизированное тестирование

Инструменты

Page 13: Автоматизированное тестирование

PHPUnit● Активно поддерживается● Гибкая конфигурация● Хорошо работает в связке с PhpStorm● Стандарт при написании тестов на PHP

Page 14: Автоматизированное тестирование

Symfony2● PHPUnit

поддерживается фреймворком○ Инициализация ядра с

разным окружением● Есть свои обвязки

для функциональных тестов

Page 15: Автоматизированное тестирование

Jenkins● Активно

поддерживается● Постоянно прогоняет

авто-тесты● Не требует участия

человека...море других возможностей через плагины

Page 16: Автоматизированное тестирование

На практике

Page 17: Автоматизированное тестирование

Как это применимо к skinon.ru● Новый компонент

"Акции" обернут тестами

● Jenkins после каждого коммита следит за тем, чтобы "Акции" не ломались

Page 18: Автоматизированное тестирование

Как сделать еще круче● Покрытие существующего функционала

тестами● Выделенный сервер непрерывной

интеграции● Jenkins и PHP_CodeSniffer для принятия

определенного стандарта кодинг-стайла и прекратить холивары о табах и пробелах

Page 19: Автоматизированное тестирование

Пономарев Алексей :: [email protected]