Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Deutsche Bank Technology Center, LLC
Deutsche Bank
Тестирование в изоляции:
играем в драконий покер
Евгений Говако
О себе
5/31/2016 11:42:15 AM 2010 DB Blue template
1
Евгений Говако
QA/FA/TA
Deutsche Bank RTC, St. Petersburg
• В QA с 2004 года
• QA Lead/Support Lead
• QMS Lead
• Test Automation
— Тестирование в изоляции
— Что это?
— Зачем это?
— Как это?
Overview
5/31/2016 11:42:15 AM 2010 DB Blue template
2
Что такое драконий покер?
5/31/2016 11:42:15 AM 2010 DB Blue template
3
Карточная игра с шестью
картами на руках
Выигрывает
лучшая
комбинация
Условные
модификаторы!
Без них драконий покер
был бы всего-навсего
еще одной простой
игрой.
Условные модификаторы
5/31/2016 2010 DB Blue template
4
— Количество сыгранных сдач
— День недели
— Число игроков
— Открытые Карты
— Положение стульев
- Но откуда у меня возьмется шанс
победить в этой игре? Я ж даже всех
правил-то не могу запомнить.
В.Скив
При определенных условиях могут изменить
выигрышный расклад на проигрышный
Условные модификаторы
5/31/2016 2010 DB Blue template
5
• Каждую пятую сдачу порядок старшинства карт меняется на обратный
• Драконы красной масти становятся “дикими” картами на четных сдачах
• Если среди открытых карт есть 10, все 7 считаются “мертвыми” и не
участвуют в раскладе
• Если появляется еще одна 10, предыдущее правило отменяется
• Если за игрой наблюдают зрители, 3ки считаются “мертвыми”
• Если название месяца не содержит “Р” и дата – двузначное число,
соответствующие карты меняются местами (26 августа – 2 становится
6 и наоборот)
Самая сложная и
запутанная игра
во всех мирах и
измерениях
В.Скив
Драконий покер – система в полной интеграции
5/31/2016 2010 DB Blue template
6
Card Dealer
UI
View
Action
Modifier #1
#4
#5
Modifier #2
Modifier #3
Poker
Table
Calculator
Шансов на победу
у тебя нет.
Тананда.
Изоляция модулей – Component testing
5/31/2016 2010 DB Blue template
7
Card Dealer
UI
View
Action
Modifier #1
#4
#5
Modifier #2
Modifier #3
Poker
Table
Calculator
Требуется усвоить не все
условные модификаторы - только
те, которые будут действовать
при твоей игре
Тананда.
Изоляция модулей – Component integration testing
5/31/2016 2010 DB Blue template
8
Card Dealer
UI
View
Action
Modifier #1
#4
#5
Modifier #2
Modifier #3
Poker
Table
Calculator
Это будет легче, чем если б
мы пытались обучить тебя
всей игре.
Тананда.
Изоляция модулей – UI testing
5/31/2016 2010 DB Blue template
9
Card Dealer
UI
View
Action
Modifier #1
#4
#5
Modifier #2
Modifier #3
Poker
Table
Calculator
Это будет легче, чем если б
мы пытались обучить тебя
всей игре.
Тананда.
Зачем тестировать в изоляции?
5/31/2016 11:42:15 AM 2010 DB Blue template
10
• Уменьшаем количество тестов
• Локализация проблемы
• Простая конфигурация окружения
• Сокращение времени тестов
— Заглушка (Stub)
— Моделирует типовые ответы на запросы
— Конфигурируемые заглушки
— Выбор поведения перед тестом
— Различные данные для разных тестов
— Симулятор модуля (Mock)
— Поведение, конфигурируемое программно (из автотестов)
— Проверка структуры запросов в API
— Управление данными в ответе на запрос
— Симулирование корнер-кейсов
Как заменить модуль?
5/31/2016 11:42:15 AM 2010 DB Blue template
11
— Заглушка (Stub)
— Невысокая стоимость
— Не должна повторять функциональность заменяемого модуля
— Smoke чеки, Performance
— Конфигурируемые заглушки
— Эволюция заглушки; невысокая стоимость
— Статические данные, общие для разных тестов
— Симулятор модуля (Mock)
— Может стоить дорого в зависимости от дизайна
— Необходимо глубокое погружение QA в архитектуру
— Функциональные автотесты на всех уровнях
— Усложняет рефакторинг
Преимущества и недостатки
5/31/2016 11:42:15 AM 2010 DB Blue template
12
— Знание и понимание архитектуры приложения
тестировщиками (white-box testing)
— Разработка архитектуры с учетом интересов
тестирования
— Тест-дизайн на всех уровнях тестирования
— Автоматизация на всех уровнях как часть стратегии
тестирования
С чего начать?
5/31/2016 11:42:15 AM 2010 DB Blue template
13
Тестируем Dragon Poker
5/31/2016 11:42:15 AM 2010 DB Blue template
14
• Каждую пятую сдачу порядок старшинства карт
меняется на обратный
• Сыграть 5+ партий, проанализировав результаты
исходя из того, какие карты будут на столе
• Сконфигурировать последовательность карт таким
способом, чтобы на 5й партии был ожидаемый
расклад, проверить победителя
• В симулированном модуле модификатора включить
«модификатор активен»
Stub vs Configurable stub vs Mock
Тестируем Dragon Poker
5/31/2016 11:42:15 AM 2010 DB Blue template
15
• Драконы красной масти становятся дикими
картами на четных сдачах
• Играть несколько партий, пока драконы красной
масти не выпадут на четной и нечетной сдаче
• Подготовить тестовые наборы карт для проверки
четной и нечетной сдачи
• В симулированном модуле модификатора включить
«модификатор активен»
Stub vs Configurable stub vs Mock
Тестируем Dragon Poker
5/31/2016 11:42:15 AM 2010 DB Blue template
16
• Если среди открытых карт есть 10, все 7
считаются «мертвыми» и не участвуют в раскладе
• Если появляется еще одна 10, предыдущее
правило отменяется
• Играть несколько партий, пока среди открытых не
попадется одна или несколько 10к
• Подготовить тестовые наборы карт для проверки
• Конфигурируя симулированный модуль выдачи
следующей карты, мы можем написать Data Driven
тест
Stub vs Configurable stub vs Mock
Тестируем Dragon Poker
5/31/2016 11:42:15 AM 2010 DB Blue template
17
• Если за игрой наблюдают зрители, 3ки считаются
«мертвыми»
• Сконфигурировать окружение без зрителей
• Сделать количество зрителей параметром настройки
• В симулированном модуле модификатора включить
«модификатор активен»
Stub vs Configurable stub vs Mock
Тестируем Dragon Poker
5/31/2016 11:42:15 AM 2010 DB Blue template
18
• Если название месяца не содержит «Р» и дата –
двузначное число, соответствующие карты
меняются местами (26 августа – 2 становится 6 и
наоборот)
• Запускать тесты по определенным дням или
использовать машину времени
• Установить текущую дату в подсистеме через
конфигурацию
• Установить текущую дату из автотеста
• В симулированном модуле модификатора включить
«модификатор активен»
Stub vs Configurable stub vs Mock
Q&A
5/31/2016 2010 DB Blue template
19
mailto: eugeny.govako@db.com
Skype: george.eager
Данный материал не является предложением или предоставлением какой-либо услуги. Данный материал
предназначен исключительно для информационных и иллюстративных целей и не предназначен для
распространения в рекламных целях. Любой анализ третьих сторон не предполагает какого-либо
одобрения или рекомендации. Мнения, выраженные в данном материале, являются актуальными на
текущий момент, появляются только в этом материале и могут быть изменены без предварительного
уведомления. Эта информация предоставляется с пониманием того, что в отношении материала,
предоставленного здесь, вы будете принимать самостоятельное решение в отношении любых действий в
связи с настоящим материалом, и это решение является основанным на вашем собственном суждении, и
что вы способны понять и оценить последствия этих действий. ООО "Дойче Банк Техцентр" не несет
никакой ответственности за любые убытки любого рода, относящихся к этому материалу.
20

More Related Content

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

  • 1. Deutsche Bank Technology Center, LLC Deutsche Bank Тестирование в изоляции: играем в драконий покер Евгений Говако
  • 2. О себе 5/31/2016 11:42:15 AM 2010 DB Blue template 1 Евгений Говако QA/FA/TA Deutsche Bank RTC, St. Petersburg • В QA с 2004 года • QA Lead/Support Lead • QMS Lead • Test Automation
  • 3. — Тестирование в изоляции — Что это? — Зачем это? — Как это? Overview 5/31/2016 11:42:15 AM 2010 DB Blue template 2
  • 4. Что такое драконий покер? 5/31/2016 11:42:15 AM 2010 DB Blue template 3 Карточная игра с шестью картами на руках Выигрывает лучшая комбинация Условные модификаторы! Без них драконий покер был бы всего-навсего еще одной простой игрой.
  • 5. Условные модификаторы 5/31/2016 2010 DB Blue template 4 — Количество сыгранных сдач — День недели — Число игроков — Открытые Карты — Положение стульев - Но откуда у меня возьмется шанс победить в этой игре? Я ж даже всех правил-то не могу запомнить. В.Скив При определенных условиях могут изменить выигрышный расклад на проигрышный
  • 6. Условные модификаторы 5/31/2016 2010 DB Blue template 5 • Каждую пятую сдачу порядок старшинства карт меняется на обратный • Драконы красной масти становятся “дикими” картами на четных сдачах • Если среди открытых карт есть 10, все 7 считаются “мертвыми” и не участвуют в раскладе • Если появляется еще одна 10, предыдущее правило отменяется • Если за игрой наблюдают зрители, 3ки считаются “мертвыми” • Если название месяца не содержит “Р” и дата – двузначное число, соответствующие карты меняются местами (26 августа – 2 становится 6 и наоборот) Самая сложная и запутанная игра во всех мирах и измерениях В.Скив
  • 7. Драконий покер – система в полной интеграции 5/31/2016 2010 DB Blue template 6 Card Dealer UI View Action Modifier #1 #4 #5 Modifier #2 Modifier #3 Poker Table Calculator Шансов на победу у тебя нет. Тананда.
  • 8. Изоляция модулей – Component testing 5/31/2016 2010 DB Blue template 7 Card Dealer UI View Action Modifier #1 #4 #5 Modifier #2 Modifier #3 Poker Table Calculator Требуется усвоить не все условные модификаторы - только те, которые будут действовать при твоей игре Тананда.
  • 9. Изоляция модулей – Component integration testing 5/31/2016 2010 DB Blue template 8 Card Dealer UI View Action Modifier #1 #4 #5 Modifier #2 Modifier #3 Poker Table Calculator Это будет легче, чем если б мы пытались обучить тебя всей игре. Тананда.
  • 10. Изоляция модулей – UI testing 5/31/2016 2010 DB Blue template 9 Card Dealer UI View Action Modifier #1 #4 #5 Modifier #2 Modifier #3 Poker Table Calculator Это будет легче, чем если б мы пытались обучить тебя всей игре. Тананда.
  • 11. Зачем тестировать в изоляции? 5/31/2016 11:42:15 AM 2010 DB Blue template 10 • Уменьшаем количество тестов • Локализация проблемы • Простая конфигурация окружения • Сокращение времени тестов
  • 12. — Заглушка (Stub) — Моделирует типовые ответы на запросы — Конфигурируемые заглушки — Выбор поведения перед тестом — Различные данные для разных тестов — Симулятор модуля (Mock) — Поведение, конфигурируемое программно (из автотестов) — Проверка структуры запросов в API — Управление данными в ответе на запрос — Симулирование корнер-кейсов Как заменить модуль? 5/31/2016 11:42:15 AM 2010 DB Blue template 11
  • 13. — Заглушка (Stub) — Невысокая стоимость — Не должна повторять функциональность заменяемого модуля — Smoke чеки, Performance — Конфигурируемые заглушки — Эволюция заглушки; невысокая стоимость — Статические данные, общие для разных тестов — Симулятор модуля (Mock) — Может стоить дорого в зависимости от дизайна — Необходимо глубокое погружение QA в архитектуру — Функциональные автотесты на всех уровнях — Усложняет рефакторинг Преимущества и недостатки 5/31/2016 11:42:15 AM 2010 DB Blue template 12
  • 14. — Знание и понимание архитектуры приложения тестировщиками (white-box testing) — Разработка архитектуры с учетом интересов тестирования — Тест-дизайн на всех уровнях тестирования — Автоматизация на всех уровнях как часть стратегии тестирования С чего начать? 5/31/2016 11:42:15 AM 2010 DB Blue template 13
  • 15. Тестируем Dragon Poker 5/31/2016 11:42:15 AM 2010 DB Blue template 14 • Каждую пятую сдачу порядок старшинства карт меняется на обратный • Сыграть 5+ партий, проанализировав результаты исходя из того, какие карты будут на столе • Сконфигурировать последовательность карт таким способом, чтобы на 5й партии был ожидаемый расклад, проверить победителя • В симулированном модуле модификатора включить «модификатор активен» Stub vs Configurable stub vs Mock
  • 16. Тестируем Dragon Poker 5/31/2016 11:42:15 AM 2010 DB Blue template 15 • Драконы красной масти становятся дикими картами на четных сдачах • Играть несколько партий, пока драконы красной масти не выпадут на четной и нечетной сдаче • Подготовить тестовые наборы карт для проверки четной и нечетной сдачи • В симулированном модуле модификатора включить «модификатор активен» Stub vs Configurable stub vs Mock
  • 17. Тестируем Dragon Poker 5/31/2016 11:42:15 AM 2010 DB Blue template 16 • Если среди открытых карт есть 10, все 7 считаются «мертвыми» и не участвуют в раскладе • Если появляется еще одна 10, предыдущее правило отменяется • Играть несколько партий, пока среди открытых не попадется одна или несколько 10к • Подготовить тестовые наборы карт для проверки • Конфигурируя симулированный модуль выдачи следующей карты, мы можем написать Data Driven тест Stub vs Configurable stub vs Mock
  • 18. Тестируем Dragon Poker 5/31/2016 11:42:15 AM 2010 DB Blue template 17 • Если за игрой наблюдают зрители, 3ки считаются «мертвыми» • Сконфигурировать окружение без зрителей • Сделать количество зрителей параметром настройки • В симулированном модуле модификатора включить «модификатор активен» Stub vs Configurable stub vs Mock
  • 19. Тестируем Dragon Poker 5/31/2016 11:42:15 AM 2010 DB Blue template 18 • Если название месяца не содержит «Р» и дата – двузначное число, соответствующие карты меняются местами (26 августа – 2 становится 6 и наоборот) • Запускать тесты по определенным дням или использовать машину времени • Установить текущую дату в подсистеме через конфигурацию • Установить текущую дату из автотеста • В симулированном модуле модификатора включить «модификатор активен» Stub vs Configurable stub vs Mock
  • 20. Q&A 5/31/2016 2010 DB Blue template 19 mailto: eugeny.govako@db.com Skype: george.eager
  • 21. Данный материал не является предложением или предоставлением какой-либо услуги. Данный материал предназначен исключительно для информационных и иллюстративных целей и не предназначен для распространения в рекламных целях. Любой анализ третьих сторон не предполагает какого-либо одобрения или рекомендации. Мнения, выраженные в данном материале, являются актуальными на текущий момент, появляются только в этом материале и могут быть изменены без предварительного уведомления. Эта информация предоставляется с пониманием того, что в отношении материала, предоставленного здесь, вы будете принимать самостоятельное решение в отношении любых действий в связи с настоящим материалом, и это решение является основанным на вашем собственном суждении, и что вы способны понять и оценить последствия этих действий. ООО "Дойче Банк Техцентр" не несет никакой ответственности за любые убытки любого рода, относящихся к этому материалу. 20