Enter: testing
Боль №4: Testing
Enter: testing
TL;DR
Минусы|ысюлП
Отсутствие
автоматизированных тестов
Ручное тестирование релиза
• В ручном тестировании доминирует человеческий
фактор: устал, забыл, забил, не подумал
• На регрессионное тестирование уходит очень много
времени и сам результат нестабилен
• Тест-кейсы очень редко фиксируются
документально - тестирование не прозрачно и
зависит от опыта тестировщика
Отсутствие
модульных тестов
Enter: testing
Сложно оценить
адекватность алгоритмов
и, следовательно,
гарантировать их
корректную работу
Отсутствие
интеграционных тестов
SOA- это хорошо, но
• Чем больше сервисов, тем сложнее отследить влияние каждого
отдельного релиза на всю систему в целом
• Все компоненты системы чувствительны к изменениям API
«соседей» и проблемы выявляются далеко не сразу
• Пример из жизни: новое оформление заказов на сайте
сломало возврат онлайн-платежей в 1С, узнали об этом спустя
месяц эксплуатации
Как итог
• рост технического долга без тестов делает
рефакторинг рискованной операцией и,
следовательно, ухудшают поддерживаемость
кодовой базы
• сложно оценивать адекватность алгоритмов и,
следовательно, гарантировать их корректную работу
при ревью кода, если нет тестовых сценариев их
использования
• с ростом проекта он становится менее устойчивым
к изменениям, усложняя процесс внедрения нового
функционала
Как будем тестировать?
• Модульное тестирование - покроем юнит-тестами
наиболее критичный функционал (все что связано с
платежами, оформлением заказов)
• Интеграционное тестирование - покроем API
фукнциональными тестами в полном соответствии с
документацией
Какие инструменты нам
потребуются?
• PHPUnit
Какие инструменты нам
потребуются?
• PHPUnit
• Codeception
Какие инструменты нам
потребуются?
• PHPUnit
• Codeception
• flow/jsonpath
Какие инструменты нам
потребуются?
• PHPUnit
• Codeception
• flow/jsonpath
• Jenkins
Простой пример: покрываем методы API
по добавлению товаров в избранное
Enter: testing
Enter: testing
Enter: testing
Непрерывная интеграция с Jenkins
• все, что попало в master готово к релизу
• <target name="build" depends="prepare,lint,phpcs,phpunit"
description="Сборка проекта."/>
• fab tester deploy - если все ок, то отправляем эти изменения на preproduction
• bin/codecept build && bin/codecept run functional --steps - запускаем
функциональные тесты на preproduction
[35;1mПротестировать интеграцию "Серверной корзины" и "Списка желаемых покупок".[39;22m
(CartAndWishlistCept)
Scenario:
* I send post "/cart/flush", {...}
* I see response code is 200
* I send post "/wishlist/reset", {...}
…
Полезные ссылки
• https://ru.wikipedia.org/wiki/
Тестирование_программного_обеспечения
• https://ru.wikipedia.org/wiki/Разработка_через_тестирование
• http://behat.org/en/latest/
• http://allure.qatools.ru/
Почему баги попадают в
продуктив?!
Enter: testing
тестируй за собой
Спасибо за внимание!
Есть вопросы?
Камиль Самигуллин
какой-то разработчик
kamil@samigullin.info
@ikamilsk
github.com/kamilsk
linkedin.com/in/kamilsk

More Related Content

PPTX
Способы организаций больших Java проектов по Автоматизированному тестированию
PPTX
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
PPTX
10 принципов автоматизации, которые я не предам
PPTX
Тестирование веб-проектов в Agile
PPTX
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
PPT
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
PDF
WP как экспериментальная платформа
PPT
Тестирование инсталляторов
Способы организаций больших Java проектов по Автоматизированному тестированию
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
10 принципов автоматизации, которые я не предам
Тестирование веб-проектов в Agile
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
WP как экспериментальная платформа
Тестирование инсталляторов

What's hot (19)

PPTX
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
PPT
Делаем автоматизацию проектных KPIs
PDF
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
PPTX
Тестирование слоёного пирога
PPTX
Free Desktop QA Engineers: implement automation testing
PPT
Новый процесс тестирования на "старом" проекте
PPTX
Добиваемся эффективности каждого из 9000+ UI-тестов
PPTX
Шаблоны проектирования нагрузочных скриптов
PPTX
Report Portal - эффективность вашей автоматизации
PPTX
Как развить отдел тестирования от палки-копалки до CI
PPTX
Автоматизация тестирования ролей и привилегий
PPT
Подход к тестированию хранилища данных на базе MS SQL Server
PDF
Денис Чистяков: Workflow. Работа над проектом в Яндексе
PPTX
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
PPTX
Непрерывная интеграция. Зачем, как и почему?
PPTX
Архитектура автоматизированных тестов: представление предметной области
PPT
Новый процесс тестирования на "старом" проекте
PPTX
QA Fest 2015. Юлия Завертайло. Практическая визуализация пользы тестирования...
PPTX
DevOps подходы в инфраструктуре автоматизации тестирования
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Делаем автоматизацию проектных KPIs
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
Тестирование слоёного пирога
Free Desktop QA Engineers: implement automation testing
Новый процесс тестирования на "старом" проекте
Добиваемся эффективности каждого из 9000+ UI-тестов
Шаблоны проектирования нагрузочных скриптов
Report Portal - эффективность вашей автоматизации
Как развить отдел тестирования от палки-копалки до CI
Автоматизация тестирования ролей и привилегий
Подход к тестированию хранилища данных на базе MS SQL Server
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Непрерывная интеграция. Зачем, как и почему?
Архитектура автоматизированных тестов: представление предметной области
Новый процесс тестирования на "старом" проекте
QA Fest 2015. Юлия Завертайло. Практическая визуализация пользы тестирования...
DevOps подходы в инфраструктуре автоматизации тестирования
Ad

Similar to Enter: testing (20)

PDF
Марина Широчкина — «Тестирование»
PDF
Марина Широчкина - Тестирование
PDF
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
PPT
Юнит тестирование в Web. Как получать пользу и удовольствие.
PPTX
Continious integration-Automated Testing-Solid-Agile
PPTX
Автоматизация тестирования
PDF
Benefits of unit-testing and inversion of controll
PPTX
Обеспечение качества: Практические советы
PPT
Unit Testing
PDF
Марина Широчкина: Тестирование
PPTX
Тестирование крупных проектов командой из одного тестировщика
PPTX
Тестирование крупного проекта командой из одного тестировщика
PPTX
Лучшие практики на практике
PPTX
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
PDF
Когда код «убивает», или зачем нам тестировать наши продукты
PPT
JavaTalks.Unit Testing.Part 1
PDF
Н. Руколь "Тестирование без тестировщиков", DUMP-2014
PPTX
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
PDF
тестирование
PDF
QAFest. Роль тестирования в Devops
Марина Широчкина — «Тестирование»
Марина Широчкина - Тестирование
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Юнит тестирование в Web. Как получать пользу и удовольствие.
Continious integration-Automated Testing-Solid-Agile
Автоматизация тестирования
Benefits of unit-testing and inversion of controll
Обеспечение качества: Практические советы
Unit Testing
Марина Широчкина: Тестирование
Тестирование крупных проектов командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщика
Лучшие практики на практике
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Когда код «убивает», или зачем нам тестировать наши продукты
JavaTalks.Unit Testing.Part 1
Н. Руколь "Тестирование без тестировщиков", DUMP-2014
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
тестирование
QAFest. Роль тестирования в Devops
Ad

More from Kamil Samigullin (7)

PDF
OctoLab Cookbook: Go lang tips and tricks - protection of sensitive config data
PDF
OctoLab Cookbook: how to use composer.yml and stop creating issues about
PDF
OctoLab Cookbook: how to generate a unique key for a sequence
PDF
Enter Cookbook: refactoring under a microscope
PDF
Enter: legacy code
PDF
Enter: code style
PDF
Enter: git workflow
OctoLab Cookbook: Go lang tips and tricks - protection of sensitive config data
OctoLab Cookbook: how to use composer.yml and stop creating issues about
OctoLab Cookbook: how to generate a unique key for a sequence
Enter Cookbook: refactoring under a microscope
Enter: legacy code
Enter: code style
Enter: git workflow

Enter: testing