SlideShare a Scribd company logo
1 of 145
Download to read offline
NICKOLAY TSYB
SOFTWARE DEVELOPER
at Oracle Ukraine
About 9 years of commerce development
Hillel teacher
VLADIMIR ARUTIN
QA ENGINEER
at HYS Enterprise
ISTQB® Certified Test Manager
ISTQB and QA Manual
Training Instructor
Certified Coach, Public
Speaker
СОДЕРЖАНИЕ:
ЗНАКОМСТВО
ГЛАВА 1. ХОРОШИЙ, ПЛОХОЙ, ЗЛОЙ
ГЛАВА 2. СТАРЫЙ ДОБРЫЙ SWAGGER
ГЛАВА 3. ДОГОВОР ДОРОЖЕ ДЕНЕГ
ГЛАВА 4. ЗАЧЕМ ТЕСТИРОВЩИКУ СНИФФЕРЫ
ГЛАВА 5. В НАЧАЛЕ БЫЛ ХАОС
В КАЧЕСТВЕ ЭПИЛОГА
КЕЙСЫ ИЗ ЖИЗНИ
ГЛАВА 1. ХОРОШИЙ, ПЛОХОЙ,
ЗЛОЙ
КЕЙСЫ ИЗ ЖИЗНИ
Проблема коммуникации
6! 9!
DEV QA
КЕЙСЫ ИЗ ЖИЗНИРазное виденье и плохая
коммуникация
КЕЙСЫ ИЗ ЖИЗНИ
Стремление ломать, а не строить
Непонимание общей цели
КЕЙСЫ ИЗ ЖИЗНИПлохое качество баг-репорта
КЕЙСЫ ИЗ ЖИЗНИНу, хотя бы так уже
КЕЙСЫ ИЗ ЖИЗНИ
20 багов в 1 репорт
DEV
КЕЙСЫ ИЗ ЖИЗНИНеуважительное отношение,
позиция “Я тут Бог”
КЕЙСЫ ИЗ ЖИЗНИ
Чем больше багов, тем лучше
DEV QA
Видят баги там, где их нет
Недопонимание
важности тест-кейса
Ignoranti, quem portum petat, nullus suus ventus est.
Seneca
У матросов нет вопросов
Лучше спросить и выглядеть глупым в
течение нескольких минут, чем промолчать
и оставаться им всю жизнь.
Отсутствие
критического мышления
КЕЙСЫ ИЗ ЖИЗНИТрудоголь -это боль
7 грехов тестировщика
1) Плохие коммуникационные навыки
2) Отсутствие технических знаний
3) Привычка сообщать о проблеме без анализа
4) Небрежность
5) Багохульство
6) Неправильный приоритет
7) Не предпринято ничего для выявления проблемыКЕЙ
НЕ НАРУШАЙТЕ ЗАПОВЕДИ
Уважайте труд разработчиков
Подходите к тестированию реалистично
Повышайте свой технический уровень
Выходите за рамки требований
Не забывайте об отчётности
Не стесняйтесь предлагать
Делайте работу качественно
Избегайте перехода на личности
Контролируйте невербальные проявления
Будьте самокритичны!
КЕЙСЫ ИЗ ЖИЗНИДавайте честно, разработчики тоже не без
греха
КЕЙСЫ ИЗ ЖИЗНИНИЧЕГО НЕ ЗНАЮ, У МЕНЯ РАБОТАЕТ
КЕЙСЫ ИЗ ЖИЗНИИГНОРИРОВАНИЕ ЗАМЕЧАНИЙ
ТЕСТИРОВЩИКА
КЕЙСЫ ИЗ ЖИЗНИОТДАЮТ ПРОДУКТ НА ТЕСТИРОВАНИЕ,
НЕ ПРОВЕРИВ БАЗОВЫЕ СЦЕНАРИИ
КЕЙСЫ ИЗ ЖИЗНИТИХО ФИКСЯТ, А ПОТОМ ГОВОРЯТ
CANNOT REPRODUCE
КЕЙСЫ ИЗ ЖИЗНИПРИНИМАЮТ БАГИ БЛИЗКО К СЕРДЦУ
КЕЙСЫ ИЗ ЖИЗНИПЛОХО ЛИБО ВООБЩЕ НЕ ДОКУМЕНТИРУЮТ
ТИКЕТЫ
КЕЙСЫ ИЗ ЖИЗНИОТНОСЯТСЯ СНИСХОДИТЕЛЬНО К
ТЕСТИРОВЩИКАМ
КЕЙСЫ ИЗ ЖИЗНИНЕПРАВИЛЬНО ЭСТИМЕЙТЯТ ЗАДАЧИ
КЕЙСЫ ИЗ ЖИЗНИ
СВОИ ЛИЧНЫЕ АМБИЦИИ, ХОТЕЛКИ, ЖЕЛАНИЕ
РАБОТАТЬ С НОВЫМИ ФРЕЙМВОРКАМИ СТАВЯТ
ВЫШЕ ЧЕМ КАЧЕСТВО И УДОБСТВО ДЛЯ
ПОЛЬЗОВАТЕЛЯ
КЕЙСЫ ИЗ ЖИЗНИ
QA DEV
1+1>2
ГЛАВА 2. СТАРЫЙ ДОБРЫЙ SWAGGER
КЕЙСЫ ИЗ ЖИЗНИ
Тестирование или
расширение API
КЕЙСЫ ИЗ ЖИЗНИ
Нехватка документации
КЕЙСЫ ИЗ ЖИЗНИ
Распределенные команды
КЕЙСЫ ИЗ ЖИЗНИ
Тестовые данные
КЕЙСЫ ИЗ ЖИЗНИ
Правильное
использование
сервиса другой
команды
Developer
QA
Developer
QA
Team 1
Team 2
● Swagger UI
● Swagger UI
● Swagger Editor
● Swagger UI
● Swagger Editor
● Swagger codegen
Swagger UI
https://swagger.io/tools/swagger-ui/
Удобный интерфейс для документации и http клиент
Swagger Editor
https://editor.swagger.io
Генерация сервера
Генерация клиента
Swagger Codegen
https://github.com/swagger-api/swagger-codegen
Swagger Codegen
● Multilingual clients/servers
Swagger Codegen
● Multilingual clients/servers
● Docker
Пример автогенерации
swagger-codegen generate
-i http://localhost:8080/v2/api-docs
-l java
-o /tmp/test/swagger-test-client
Выводы
● Улучшение коммуникации QA и DEV
в команде
● Улучшение коммуникации QA и DEV
в команде
● Возможность предоставления
документации в удобном виде
● Улучшение коммуникации QA и DEV
в команде
● Возможность предоставления
документации в удобном виде
● Упрощение взаимосвязи между
сервисами, а так же их
тестирования
QA
Developer
ГЛАВА 3. ДОГОВОР ДОРОЖЕ
ДЕНЕГ
Микросервиcная архитектура
Providers
Consumers
Provider
Provider
API
Provider
APIConsumer
Provider
APIConsumer
Consumer
Provider
APIConsumer
Consumer
Integration tests
Пару слов про
интеграционные тесты
Создаем моки и стабы самостоятельно
Что можно сделать?
Spring contract testing
Provider
Based Test
class
stub_1
Provider
Based Test
class
stub_2
stub_n
stub_1
Provider
Based Test
class
stub_2
stub_n
stub_1
Provider
Based Test
class
stub_2
stub_n
stub_1
Provider
Based Test
class
stub_2
stub_n
Generating new test
classes by extending
Based Test class and
verifying
stub_1
Provider
Based Test
class
stub_2
stub_n
Generating new test
classes by extending
Based Test class and
verifying
Contract creating
(json)
stub_1
Provider
Based Test
class
stub_2
stub_n
Generating new test
classes by extending
Based Test class and
verifying
Contract creating
(json)
…-stubs.jar
Consumer
StubRunner
@Test
Consumer
StubRunner
@Test
…-stubs.jar path configuring
Maven
Repository
Consumer
StubRunner
@Test
…-stubs.jar path configuring
Maven
Repository
Download
contracts
Build
commit
Build
commit
Provider
build
Build
commit
Provider
build
Repo
Upload
contracts
Build
commit
Provider
build
Repo
Upload
contracts
Consumer
Consumer
Trigger
build
Build
commit
Provider
build
Repo
Upload
contracts
Consumer
Consumer
Trigger
build
Download
contracts
Build failed
https://github.com/kartius/tools/tr
ee/master/spring-contract-testing
Consumer-driven
contract
Pact
https://docs.pact.io
Шаг 1
Consumer
Шаг 1
Consumer
Tests
Шаг 1
Consumer
Tests
Contract/pact
JSON
Шаг 2
JSON
Verification
Provider
Шаг 2
JSON
Pact Broker
Verification
Provider
Pact Broker
● Хранение контрактов
Pact Broker
● Хранение контрактов
● Проверка совместимости версий
Pact Broker
● Хранение контрактов
● Проверка совместимости версий
● Построение диаграммы
взаимодействия сервисов
Выводы
● Улучшение коммуникации QA и DEV
из разных команд
● Улучшение коммуникации QA и DEV
из разных команд
● Возможность выявить изменение
АПИ на ранних стадиях
тестирования
● Улучшение коммуникации QA и DEV
из разных команд
● Возможность выявить изменение
АПИ на ранних стадиях
тестирования
● Использование контрактов
ГЛАВА 4. ЗАЧЕМ ТЕСТИРОВЩИКУ
СНИФФЕРЫ
ЧТО ТАКОЕ СНИФФЕРЫ И ДЛЯ ЧЕГО ОНИ
НУЖНЫ
ЗАЧЕМ ЭТО QA
МОЖНО:
● ДЕЛАТЬ ЗАПРОСЫ
● ПРОСМАТРИВАТЬ ЗАПРОСЫ
● ИМИТИРОВАТЬ ОТВЕТЫ
● АНАЛИЗИРОВАТЬ ДАМПЫ
● ПОЛНОСТЬЮ ВИДЕТЬ
ВЗАИМОДЕЙСТВИЕ БЕКА И ФРОНТА
● TROUBLESHOOTING
Сейчас не удаетсяотобразить рисунок.
СТАНЬТЕ САМОСТОЯТЕЛЬНЕЕ
ПЕРЕСТАНЬТЕ ЖАЛОВАТЬСЯ И
ОТВЛЕКАТЬ РАЗРАБОТЧИКОВ ПО
ПУСТЯКАМ
ДА И ПРОСТО ЗАИМПРУВЬТЕ СВОИ
ТЕХНИЧЕСКИЕ СКИЛЛЫ, ПОЧЕМУ БЫ И НЕТ
ГЛАВА 5
Немного истории...
https://github.com/Netflix/chaosmonkey
Chaos engineering
Стабильное состояние
Гипотеза
Проведение эксперимента
Наблюдение и обучение
Исправление и улучшение
Chaos testing
Chaos Kong
Chaos
Gorilla
Conformity
monkey
Security
monkey
Janitor
monkey
Latency
monkey
Doctor
monkey
10-18
Monkey
Bite-monkey
https://docs.chaostoolkit.org
https://github.com/marmelab/gremlins.js
Выводы
● Улучшение качества продуктов
● Улучшение качества продуктов
● QA инженеры создают скрипты для
хаос тестирования, тем самым
создавая разработчику
определенный мейнсет при
разработки сервисов
QA Developer
The Human Side of Microservices

More Related Content

Similar to The Human Side of Microservices

Особенности тестирования открытого ПО
Особенности тестирования открытого ПООсобенности тестирования открытого ПО
Особенности тестирования открытого ПОAlexey Lyanguzov
 
Anze_Jereb: "Использование креативных методологий в бизнесе"
Anze_Jereb: "Использование креативных методологий в бизнесе"Anze_Jereb: "Использование креативных методологий в бизнесе"
Anze_Jereb: "Использование креативных методологий в бизнесе"Restorania.com
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продуктыОлег Стрекаловский
 
Вавилонское тестировтворение - Алекскей Лупан
Вавилонское тестировтворение - Алекскей ЛупанВавилонское тестировтворение - Алекскей Лупан
Вавилонское тестировтворение - Алекскей ЛупанQA Dnepropetrovsk Community (Ukraine)
 
Анализ блога
Анализ блогаАнализ блога
Анализ блогаJulia Traseuh
 
О пользе Open Source
О пользе Open SourceО пользе Open Source
О пользе Open SourceAnton Konev
 
Собеседование. Примеры вопросов, стратегия успешного прохождения собеседовани...
Собеседование. Примеры вопросов, стратегия успешного прохождения собеседовани...Собеседование. Примеры вопросов, стратегия успешного прохождения собеседовани...
Собеседование. Примеры вопросов, стратегия успешного прохождения собеседовани...DressTester
 
Эксперименты по повышению конверсии
Эксперименты по повышению конверсииЭксперименты по повышению конверсии
Эксперименты по повышению конверсииDigital.Tools
 
Полезное видео в контент-маркетинге
Полезное видео в контент-маркетингеПолезное видео в контент-маркетинге
Полезное видео в контент-маркетингеКомплето
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированиюAPostovalova
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированиюAPostovalova
 
Компонентное тестирование. Что это за зверь и с чем его едят?
Компонентное тестирование. Что это за зверь и с чем его едят?Компонентное тестирование. Что это за зверь и с чем его едят?
Компонентное тестирование. Что это за зверь и с чем его едят?SQALab
 
10 способов оптимизировать YouTube-канал
10 способов оптимизировать YouTube-канал10 способов оптимизировать YouTube-канал
10 способов оптимизировать YouTube-каналmfive
 

Similar to The Human Side of Microservices (13)

Особенности тестирования открытого ПО
Особенности тестирования открытого ПООсобенности тестирования открытого ПО
Особенности тестирования открытого ПО
 
Anze_Jereb: "Использование креативных методологий в бизнесе"
Anze_Jereb: "Использование креативных методологий в бизнесе"Anze_Jereb: "Использование креативных методологий в бизнесе"
Anze_Jereb: "Использование креативных методологий в бизнесе"
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продукты
 
Вавилонское тестировтворение - Алекскей Лупан
Вавилонское тестировтворение - Алекскей ЛупанВавилонское тестировтворение - Алекскей Лупан
Вавилонское тестировтворение - Алекскей Лупан
 
Анализ блога
Анализ блогаАнализ блога
Анализ блога
 
О пользе Open Source
О пользе Open SourceО пользе Open Source
О пользе Open Source
 
Собеседование. Примеры вопросов, стратегия успешного прохождения собеседовани...
Собеседование. Примеры вопросов, стратегия успешного прохождения собеседовани...Собеседование. Примеры вопросов, стратегия успешного прохождения собеседовани...
Собеседование. Примеры вопросов, стратегия успешного прохождения собеседовани...
 
Эксперименты по повышению конверсии
Эксперименты по повышению конверсииЭксперименты по повышению конверсии
Эксперименты по повышению конверсии
 
Полезное видео в контент-маркетинге
Полезное видео в контент-маркетингеПолезное видео в контент-маркетинге
Полезное видео в контент-маркетинге
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
 
Компонентное тестирование. Что это за зверь и с чем его едят?
Компонентное тестирование. Что это за зверь и с чем его едят?Компонентное тестирование. Что это за зверь и с чем его едят?
Компонентное тестирование. Что это за зверь и с чем его едят?
 
10 способов оптимизировать YouTube-канал
10 способов оптимизировать YouTube-канал10 способов оптимизировать YouTube-канал
10 способов оптимизировать YouTube-канал
 

More from Vladimir Arutin

SQL INJECTIONS EVERY TESTER NEEDS TO KNOW
SQL INJECTIONS EVERY TESTER NEEDS TO KNOWSQL INJECTIONS EVERY TESTER NEEDS TO KNOW
SQL INJECTIONS EVERY TESTER NEEDS TO KNOWVladimir Arutin
 
Automation with Tosca Tricentis
Automation with Tosca TricentisAutomation with Tosca Tricentis
Automation with Tosca TricentisVladimir Arutin
 
Экстремальный проектный менеджмент. Набор и управление командой
Экстремальный проектный менеджмент. Набор и управление командойЭкстремальный проектный менеджмент. Набор и управление командой
Экстремальный проектный менеджмент. Набор и управление командойVladimir Arutin
 
Мифы и правда о тестировании ПО
Мифы и правда о тестировании ПОМифы и правда о тестировании ПО
Мифы и правда о тестировании ПОVladimir Arutin
 
Software Testing Metrics
Software Testing MetricsSoftware Testing Metrics
Software Testing MetricsVladimir Arutin
 
Test Management by Vladimir Arutin
Test Management by Vladimir ArutinTest Management by Vladimir Arutin
Test Management by Vladimir ArutinVladimir Arutin
 

More from Vladimir Arutin (8)

SQL INJECTIONS EVERY TESTER NEEDS TO KNOW
SQL INJECTIONS EVERY TESTER NEEDS TO KNOWSQL INJECTIONS EVERY TESTER NEEDS TO KNOW
SQL INJECTIONS EVERY TESTER NEEDS TO KNOW
 
Automation with Tosca Tricentis
Automation with Tosca TricentisAutomation with Tosca Tricentis
Automation with Tosca Tricentis
 
Экстремальный проектный менеджмент. Набор и управление командой
Экстремальный проектный менеджмент. Набор и управление командойЭкстремальный проектный менеджмент. Набор и управление командой
Экстремальный проектный менеджмент. Набор и управление командой
 
Мифы и правда о тестировании ПО
Мифы и правда о тестировании ПОМифы и правда о тестировании ПО
Мифы и правда о тестировании ПО
 
Software Testing Metrics
Software Testing MetricsSoftware Testing Metrics
Software Testing Metrics
 
Pairwise Testing
Pairwise TestingPairwise Testing
Pairwise Testing
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Test Management by Vladimir Arutin
Test Management by Vladimir ArutinTest Management by Vladimir Arutin
Test Management by Vladimir Arutin
 

The Human Side of Microservices