Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Спасение через тестирование - история
одного проекта
Євген Кузьмін
Готовность проекта на 90%
Что делать чтобы 100%
выглядело именно так?
Зачем? И кому это все надо?
Symfony 2 backend
REST API
Android
IOS
Web
Отсутствие ТЗ
Отсутствие документации
Отсутствие тестов
Отсутствие спецификаций API
Отсутствие средств дебагинга
Наличие легаси багов
Let's do couple simple features
Development & refactoring
Спасение через тестирование - история одного проекта
Обезопасить самого себя! Или доверяй только себе!
Обезопасить самого себя! Или доверяй только себе!
Не доверяй себе – доверяй своим тестам!
Первый тест PHPUnit – быстро
- PhpUnit наиболее быстрый путь
- Альтернативы Behat, Codeception
- Smoke тест на 200
- Тесты на совпадение респонса
- Реализация более глубокой логики тестов по
мере развития проекта
- Фича – тест
- Багфикс - тест
Тестовые данные: пользователь
Эталонные данные для тестов
1. Дамп с продакшенабеты
2. Фикстуры
2.2. Генератор фикстур
https://github.com/smart-gamma/fixtures-generator
2.1. Ручные фикстуры
2.3. Конструкторы фикстур
https://github.com/h4cc/AliceFixturesBundle
2.4. Свой кастомный билдер
Спасение через тестирование - история одного проекта
Закулисные игры
Спасение через тестирование - история одного проекта
Спасение через тестирование - история одного проекта
Функциональное ТДД
Тестируем не только REST
- Проблема большинства проектов -
отсутствие ТЗ и документации. Лучший
способ разобраться в коде - написать для
него тест! Т.е. тест, как инструмент изучения
проекта.
- Тесты – путь к лучшей архитектуре!
Разделяем ответственность
https://github.com/smart-gamma/vendor-phpunit
Mocks
Спасение через тестирование - история одного проекта
Спасение через тестирование - история одного проекта
BDD
- Более поздний этап в действиях стабилизации проекта, но очень важный
- Помогает понимать всей команде один сценарий развития “фичи”
- Помогает говорить с Product Owner на одном языке
- Помогает продумать задачу до ее реализации
- Документирует проект (ТЗ как User Stories)
- Является критерием для тестирования
Спасение через тестирование - история одного проекта
Спасение через тестирование - история одного проекта
Спасение через тестирование - история одного проекта
Спасение через тестирование - история одного проекта
Debugging
Стандартные логи:
- prod.log
- access.log
- error.log
Что делать, если необходимо посмотреть реальный “флов” API?
“smart-gamma/logger”
custom Capifony tail log commads: http://capifony.org
- error.log
- prod.api.log
cap symfony:api:tail
deploy.rb
deploy.rb
Logging
Быстро - в лоб
Monolog chanels
Спасение через тестирование - история одного проекта
Спасение через тестирование - история одного проекта
Поиск по логам
Specifications
Спасение через тестирование - история одного проекта
Спасение через тестирование - история одного проекта
Errors codes sharing
Clients single flow
API

More Related Content

Спасение через тестирование - история одного проекта