45
Evgen Kuzmin [email protected] Тестирование как панацея для жизни и развития проекта

Тестирование как панацея для жизни и развития проекта

Embed Size (px)

Citation preview

Evgen [email protected]

Тестирование как панацея для жизни и развития проекта

Импортированный автор
any color for this box
Импортированный автор
List of Sponsors on first slide page is required!

Евгений Кузьмин

Более 10 лет опыта в Web Development, последние 2 года

специализация работы с live video streaming технологиями, энтузиаст

авто-тестирования и Agile разработки, DevOps, co-founder компании

Smart-Gamma.com

http://stackoverflow.com/users/3191577/evgeniy-kuzmin

https://github.com/Evgenas

https://www.facebook.com/evgen.kuzmin.1

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

Импортированный автор
Put in header presentation title, or current slide titleYou feel free to remove sfcamp logo from internal slides.

https://www.facebook.com/Smart-Gamma-676596275810859/

https://medium.com/@smartgamma

Smart GammaDevelopment

http://smart-gamma.com/

[email protected], Lviv, Uzhorod

А кому нужны эти авто-тесты?

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

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

Теория VS Практика

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

Symfony 2 backendREST APIAndroid

IOSWeb

+Camera SDK

Streaming libs

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

Готовность проекта на 90%

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

Есть программисты, которые сразу пишут легаси код

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

Что делать, чтоб 100% выглядело именно так?

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

Отсутствие ТЗОтсутствие документацииОтсутствие тестовОтсутствие спецификаций APIОтсутствие средств дебагингаНаличие легаси багов

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

Let's do couple simple features

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

Development & refactoring

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

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

Обезопасить самого себя или доверяй только своим тестам

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

Первый тест PHPUnit – быстро

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

- PhpUnit наиболее быстрый путь- Smoke тест на 200- Тесты на совпадение Response- Фича – тест- Багфикс - тест

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

Необходимость в эталонных данных

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

Эталонные данные для тестов

1. Дамп с продакшена\беты2. Фикстуры

- руками

- генератор фикстур из БД https://github.com/smart-gamma/fixtures-generator

- кастомный конструктор

- AliceBundle https://github.com/hautelook/AliceBundle

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

1. MyApp\ContactsAppBundle\Entity\Group2. DB Table

Smart Gamma Fixtures generator

$app/console ga:fi:gen "MyApp\ContactsAppBundle\Entity\Group" --id="34"3.

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

Smart Gamma Fixtures generator output

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

Кастомный билдер фикстур

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

Кастомный билдер фикстур

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

Закулисные игры

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

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

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

Функциональное ТДД

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

Тестируем не только REST

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

- Проблема большинства проектов - отсутствие ТЗ и документации. Лучший способ разобраться в коде - написать для него тест! Т.е. тест, как инструмент изучения проекта.

- Тесты – путь к лучшей архитектуре

- Тесты – показатель зрелости проекта и разработчика

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

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

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

100% coverage vs избирательное тестирование

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

- Помогает понимать всей команде один сценарий развития “фичи”- Помогает говорить с Product Owner на одном языке- Помогает продумать задачу до ее реализации- Документирует проект (ТЗ как User Stories)- Является критерием для тестирования

Behavior Driven Development

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

Planned Feature

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

Planned Scenario

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

Covered Scenario

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

Dev User Story

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

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

Continuous Integration

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

Jenkins

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

Debugging & logging

1. Стандартные логи: - prod.log - access.log - error.log

2. реальный API flow

https://github.com/smart-gamma/gamma-api-logger

3. custom Capifony tail log commads: http://capifony.org

- error.log- prod.api.log

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

cap symfony:api:tail

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

deploy.rb

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

Monolog channels

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

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

Поиск по логам

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