Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,095 views

Published on

Доклад Евгения Говако на конференции SQA Days-19, 20-21 мая 2016 г., Санкт-Петербург

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

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

×