Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeFest 2019. Дмитрий Химион (Avito) — Model Based Testing в связке с Agile development/testing

CodeFest
April 05, 2019

CodeFest 2019. Дмитрий Химион (Avito) — Model Based Testing в связке с Agile development/testing

Автоматизация тестирования в Авито проходит путь эволюционного развития и хочется поделиться текущими результатами в использовании MBT и наиболее успешными решениями, которые могут и другим помочь в развитии автоматизации тестирования. В ходе адаптации Agile-практик разработки в Авито стало очевидно, что классические подходы к автоматизации тестирования себя явно изживают, и ответом стало появление MBT. В докладе будет освещено, как мы получили полное отсутствие авто-тестов, возможность полуавтоматической генерацией модели работы приложения, как проводится регрессионное тестирование приложения и какие дополнения нужны для удобства использования MBT в рамках продуктовой разработки.

CodeFest

April 05, 2019
Tweet

More Decks by CodeFest

Other Decks in Technology

Transcript

  1. План: • Что нас подтолкнуло к MBT? • Короткое интро

    • Базовый принцип работы MBT • Работа с командами – вызовы и решения • Наше решение • Факторы успеха для MBT • Итоги • Вопросы !3
  2. Что послужило толчком к движению в MBT? Кол-во релизов в

    день ⇧2X за год Появляются вопросы: • Всё ли тесты надо прогонять? • Какие надо или не надо прогонять? • Все ли важные бизнес-флоу учитываем? +40% !4
  3. Что послужило толчком к движению в MBT? Появляются вопросы: •

    Всё ли тесты надо прогонять? • Какие надо или не надо прогонять? • Все ли важные бизнес-флоу учитываем? Кол-во релизов в день ⇧2X за год +40% !5
  4. Model Based Testing intro + O(|V||E|) = !9 граф с

    |V| вершинами и |E| ребрами
  5. Базовые методы тестирования: 1. Smoke test 2. Regression test 3.

    Sanity test Команда №2. Старые привычки !25
  6. Базовые методы тестирования: 1. Smoke test 2. Regression test 3.

    Sanity test O(|V||E|) O(smoke-test) O(regression-test) O(sanity-test) Команда №2. Старые привычки !26
  7. Команда №4. Масштаб XXL Привет! Наш контекст: 1. У нас

    есть функционал на ~11000 классов эквивалентностей 2. Есть большие бизнес процессы 3. Есть пара небольших бизнес процессов 4. Наш функционал между собой связан !35
  8. Команда №4. Масштаб XXL !36 Привет! Наш контекст: 1. У

    нас есть функционал на ~11000 классов эквивалентностей 2. Есть большие бизнес процессы 3. Есть пара небольших бизнес процессов 4. Наш функционал между собой связан
  9. Как выглядит наше решение kotlin yEd graphwalker GA graph generator

    module Graph coverage calculator module Test-case generator module !52
  10. Как выглядит наше решение kotlin yEd graphwalker Graph coverage calculator

    module Интеграция с TeamCity Test-case generator module !53 GA graph generator module
  11. Как выглядит наше решение kotlin yEd graphwalker Graph coverage calculator

    module Интеграция с TeamCity Graph-View BitBucket plugin Test-case generator module !54 GA graph generator module
  12. Как выглядит наше решение kotlin yEd graphwalker Graph coverage calculator

    module Интеграция с TeamCity Graph-View BitBucket plugin IDEA plugin Test-case generator module !55 GA graph generator module
  13. Как выглядит наше решение kotlin yEd graphwalker Graph coverage calculator

    module Report Viewer service Интеграция с TeamCity Graph-View BitBucket plugin IDEA plugin Test-case generator module !56 GA graph generator module
  14. Как выглядит наше решение kotlin yEd graphwalker Graph coverage calculator

    module Report Viewer service Интеграция с TeamCity Graph-View BitBucket plugin IDEA plugin Test-case generator module Parallel test runner service !57 GA graph generator module
  15. Подводные камни • Если «модель» похожа на «осьминога», MBT ≳

    BDD • Готовой «экосистемы» MBT нет - ее надо строить • Смена мышления в командах разработки – долгая история !58
  16. • Перестроить mind-set на мышление графами • Разбивать модель продукта

    на подграфы • Продумывать дизайн графа • Алгоритмы - «зеркало» методов тестирования • Удобный инструмент = Успевать за Agile разработкой Факторы успеха !59
  17. • Model based testing – комбинируется с Agile практиками •

    Алгоритмы открывают возможности для тестирования • MBT = небольшая Code-база • Поддержка и развитие не обременительны Итоги MBT !60