Download - Автоматизированное тестирование
Автоматизированное тестированиеSymfony2, PHPUnit, Jenkins
О чем пойдет речь● Проблемы и решение● Теория тестирования и чем хороши авто-
тесты● Инструменты
○ PHPUnit○ Symfony2○ Jenkins
● Как мы с этим живем
Проблемы● Долго и дорого исправляются баги● Кликать в браузере - медленно и скучно● Качество кодовой базы выходит из под
контроля, ошибки, печаль
Решение● Избавить пользователя от ошибок● Научиться находить ошибки на более
ранних этапах, до внедрения новых функций
● Автоматизировать постоянные и монотонные проверки
Теория
Какое бывает тестирование● Модульное● Интеграционное● Системное
Автоматизация и покрытие● В первую очередь наиболее важный
функционал● 100% покрытие – зло● Не забываем про баланс
Что мы получаем● Проверка работоспособности компонента
еще до его интеграции● Быстрая проверка существующего
функционала при небольших изменениях, доработках
● Больше уверенности в том, что ничего не сломалось
Непрерывная интеграция● В идеальном мире позволяет выкатывать
исправления и новые фишки быстро и без крови
● Автоматизирует сборки проекта● Требует разработки большого количества
тестов
Инструменты
PHPUnit● Активно поддерживается● Гибкая конфигурация● Хорошо работает в связке с PhpStorm● Стандарт при написании тестов на PHP
Symfony2● PHPUnit
поддерживается фреймворком○ Инициализация ядра с
разным окружением● Есть свои обвязки
для функциональных тестов
Jenkins● Активно
поддерживается● Постоянно прогоняет
авто-тесты● Не требует участия
человека...море других возможностей через плагины
На практике
Как это применимо к skinon.ru● Новый компонент
"Акции" обернут тестами
● Jenkins после каждого коммита следит за тем, чтобы "Акции" не ломались
Как сделать еще круче● Покрытие существующего функционала
тестами● Выделенный сервер непрерывной
интеграции● Jenkins и PHP_CodeSniffer для принятия
определенного стандарта кодинг-стайла и прекратить холивары о табах и пробелах
Пономарев Алексей :: [email protected]