21
Deutsche Bank Technology Center, LLC Deutsche Bank Тестирование в изоляции: играем в драконий покер Евгений Говако

Тестирование в изоляции: Играем в драконий покер

  • Upload
    sqalab

  • View
    719

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Тестирование в изоляции: Играем в драконий покер

Deutsche Bank Technology Center, LLCDeutsche Bank

Тестирование в изоляции:играем в драконий покер

Евгений Говако

Page 2: Тестирование в изоляции: Играем в драконий покер

О себе

05/01/2023 07:31:20 AM 2010 DB Blue template

2

Евгений Говако

QA/FA/TADeutsche Bank RTC, St. Petersburg• В QA с 2004 года• QA Lead/Support Lead• QMS Lead• Test Automation

Page 3: Тестирование в изоляции: Играем в драконий покер

— Тестирование в изоляции— Что это?— Зачем это?— Как это?

Overview

05/01/2023 07:31:20 AM 2010 DB Blue template

3

Page 4: Тестирование в изоляции: Играем в драконий покер

Что такое драконий покер?

05/01/2023 07:31:20 AM 2010 DB Blue template

4

Карточная игра с шестью картами на руках

Выигрывает лучшая комбинация

Условные модификаторы!

Без них драконий покер был бы всего-навсего еще одной простой игрой.

Page 5: Тестирование в изоляции: Играем в драконий покер

Условные модификаторы

05/01/2023 2010 DB Blue template

5

— Количество сыгранных сдач— День недели— Число игроков— Открытые Карты— Положение стульев 250

+

- Но откуда у меня возьмется шанс победить в этой игре? Я ж даже всех правил-то не могу запомнить. В.Скив

При определенных условиях могут изменить выигрышный расклад на проигрышный

Page 6: Тестирование в изоляции: Играем в драконий покер

Условные модификаторы

05/01/2023 2010 DB Blue template

6

• Каждую пятую сдачу порядок старшинства карт меняется на обратный• Драконы красной масти становятся “дикими” картами на четных сдачах• Если среди открытых карт есть 10, все 7 считаются “мертвыми” и не

участвуют в раскладе• Если появляется еще одна 10, предыдущее правило отменяется• Если за игрой наблюдают зрители, 3ки считаются “мертвыми”• Если название месяца не содержит “Р” и дата – двузначное число,

соответствующие карты меняются местами (26 августа – 2 становится 6 и наоборот)

Самая сложная и запутанная играво всех мирах и измерениях

В.Скив

Page 7: Тестирование в изоляции: Играем в драконий покер

Драконий покер – система в полной интеграции

05/01/2023 2010 DB Blue template

7

Card Dealer

UIView

Action

Modifier #1

#4

#5

Modifier #2

Modifier #3

???

Poker Table

Calculator

Шансов на победу у тебя нет.

Тананда.

Page 8: Тестирование в изоляции: Играем в драконий покер

Изоляция модулей – Component testing

05/01/2023 2010 DB Blue template

8

Card Dealer

UIView

Action

Modifier #1

#4

#5

Modifier #2

Modifier #3

Poker Table

Calculator

Требуется усвоить не все условные модификаторы - только те, которые будут действовать при твоей игре

Тананда.

???

Page 9: Тестирование в изоляции: Играем в драконий покер

???

Изоляция модулей – Component integration testing

05/01/2023 2010 DB Blue template

9

Card Dealer

UIView

Action

Modifier #1

#4

#5

Modifier #2

Modifier #3

Poker Table

Calculator

Это будет легче, чем если б мы пытались обучить тебя всей игре.

Тананда.

Page 10: Тестирование в изоляции: Играем в драконий покер

Изоляция модулей – UI testing

05/01/2023 2010 DB Blue template

10

Card Dealer

UIView

Action

Modifier #1

#4

#5

Modifier #2

Modifier #3

Poker Table

Calculator

Это будет легче, чем если б мы пытались обучить тебя всей игре.

Тананда.

???

Page 11: Тестирование в изоляции: Играем в драконий покер

Зачем тестировать в изоляции?

05/01/2023 07:31:20 AM 2010 DB Blue template

11

• Уменьшаем количество тестов• Локализация проблемы• Простая конфигурация окружения• Сокращение времени тестов

3 8 4BANG!

Page 12: Тестирование в изоляции: Играем в драконий покер

— Заглушка (Stub)— Моделирует типовые ответы на запросы

— Конфигурируемые заглушки— Выбор поведения перед тестом— Различные данные для разных тестов

— Симулятор модуля (Mock)— Поведение, конфигурируемое программно (из автотестов)— Проверка структуры запросов в API— Управление данными в ответе на запрос— Симулирование корнер-кейсов

Как заменить модуль?

05/01/2023 07:31:20 AM 2010 DB Blue template

12

Page 13: Тестирование в изоляции: Играем в драконий покер

— Заглушка (Stub)— Невысокая стоимость— Не должна повторять функциональность заменяемого модуля— Smoke чеки, Performance

— Конфигурируемые заглушки— Эволюция заглушки; невысокая стоимость— Статические данные, общие для разных тестов

— Симулятор модуля (Mock)— Может стоить дорого в зависимости от дизайна— Необходимо глубокое погружение QA в архитектуру— Функциональные автотесты на всех уровнях— Усложняет рефакторинг

Преимущества и недостатки

05/01/2023 07:31:20 AM 2010 DB Blue template

13

Page 14: Тестирование в изоляции: Играем в драконий покер

— Знание и понимание архитектуры приложения тестировщиками (white-box testing)

— Разработка архитектуры с учетом интересов тестирования

— Тест-дизайн на всех уровнях тестирования— Автоматизация на всех уровнях как часть стратегии

тестирования

С чего начать?

05/01/2023 07:31:20 AM 2010 DB Blue template

14

Page 15: Тестирование в изоляции: Играем в драконий покер

Тестируем Dragon Poker

05/01/2023 07:31:20 AM 2010 DB Blue template

15

• Каждую пятую сдачу порядок старшинства карт меняется на обратный • Сыграть 5+ партий, проанализировав результаты

исходя из того, какие карты будут на столе• Сконфигурировать последовательность карт таким

способом, чтобы на 5й партии был ожидаемый расклад, проверить победителя

• В симулированном модуле модификатора включить «модификатор активен»

Stub vs Configurable stub vs Mock

Page 16: Тестирование в изоляции: Играем в драконий покер

Тестируем Dragon Poker

05/01/2023 07:31:20 AM 2010 DB Blue template

16

• Драконы красной масти становятся дикими картами на четных сдачах• Играть несколько партий, пока драконы красной

масти не выпадут на четной и нечетной сдаче• Подготовить тестовые наборы карт для проверки

четной и нечетной сдачи• В симулированном модуле модификатора включить

«модификатор активен»

Stub vs Configurable stub vs Mock

Page 17: Тестирование в изоляции: Играем в драконий покер

Тестируем Dragon Poker

05/01/2023 07:31:20 AM 2010 DB Blue template

17

• Если среди открытых карт есть 10, все 7 считаются «мертвыми» и не участвуют в раскладе

• Если появляется еще одна 10, предыдущее правило отменяется• Играть несколько партий, пока среди открытых не

попадется одна или несколько 10к• Подготовить тестовые наборы карт для проверки• Конфигурируя симулированный модуль выдачи

следующей карты, мы можем написать Data Driven тест

Stub vs Configurable stub vs Mock

Page 18: Тестирование в изоляции: Играем в драконий покер

Тестируем Dragon Poker

05/01/2023 07:31:20 AM 2010 DB Blue template

18

• Если за игрой наблюдают зрители, 3ки считаются «мертвыми»• Сконфигурировать окружение без зрителей• Сделать количество зрителей параметром настройки• В симулированном модуле модификатора включить

«модификатор активен»

Stub vs Configurable stub vs Mock

Page 19: Тестирование в изоляции: Играем в драконий покер

Тестируем Dragon Poker

05/01/2023 07:31:20 AM 2010 DB Blue template

19

• Если название месяца не содержит «Р» и дата – двузначное число, соответствующие карты меняются местами (26 августа – 2 становится 6 и наоборот)• Запускать тесты по определенным дням или

использовать машину времени• Установить текущую дату в подсистеме через

конфигурацию• Установить текущую дату из автотеста• В симулированном модуле модификатора включить

«модификатор активен»

Stub vs Configurable stub vs Mock

Page 20: Тестирование в изоляции: Играем в драконий покер

Q&A

05/01/2023 2010 DB Blue template

20

mailto: [email protected]: george.eager

Page 21: Тестирование в изоляции: Играем в драконий покер

Данный материал не является предложением или предоставлением какой-либо услуги. Данный материал предназначен исключительно для информационных и иллюстративных целей и не предназначен для распространения в рекламных целях. Любой анализ третьих сторон не предполагает какого-либо одобрения или рекомендации. Мнения, выраженные в данном материале, являются актуальными на текущий момент, появляются только в этом материале и могут быть изменены без предварительного уведомления. Эта информация предоставляется с пониманием того, что в отношении материала, предоставленного здесь, вы будете принимать самостоятельное решение в отношении любых действий в связи с настоящим материалом, и это решение является основанным на вашем собственном суждении, и что вы способны понять и оценить последствия этих действий. ООО "Дойче Банк Техцентр" не несет никакой ответственности за любые убытки любого рода, относящихся к этому материалу.

21