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

QA - Комбинаторика в тестировании

F831177123a4ddda9aa1802721f0a0db?s=47 Ozon Tech
January 20, 2022

QA - Комбинаторика в тестировании

F831177123a4ddda9aa1802721f0a0db?s=128

Ozon Tech

January 20, 2022
Tweet

More Decks by Ozon Tech

Other Decks in Technology

Transcript

  1. Комбинаторика в тестировании Белковский Никита

  2. Обо мне Никита Белковский Lead QA Engineer OZON.ru ️ since

    2014 ✈️ -> 🕸 -> 🗄 -> 🚚 🗣 since 2017
  3. Рассматриваем комбинаторику в общем

  4. Что за комбинаторика?

  5. Комбинаторика

  6. 6 >2-wise Pairwise Each choice Base choice AETG Random

  7. Почему?

  8. А вот почему • 2120 –> 10 (7,52316384526264e-34%) • Умеренное

    повышение риска (?) 8 Cohen, David M., et al. "The combinatorial design approach to automatic test generation." IEEE software 13.5 (1996): 83-88.
  9. Эффективность pairwise

  10. Сложности оценки эффективности • Недостаточно исследований, в которых бы выполнялся

    all values testing • Недостаточно информации о характеристиках систем под тестированием (насколько много комбинаторной обработки происходит?) • Недостаточно информации о скиллах тестировщиков • Не до конца понятно, что считать багом / какие баги считать важными 10
  11. Метрики 11

  12. Коэффициент сокращения тесткейсов 2120 –> 10 (7,52316384526264e-34%)

  13. Покрытие как метрика Покрытие Эффективность тестирования? Эффективность нахождения багов? 13

  14. Количество обнаруженных ошибок / отказов 14 𝑒𝑓𝑓𝑒𝑐𝑡𝑖𝑣𝑖𝑡𝑦 = 𝑏𝑢𝑔𝑠𝑜𝑣𝑒𝑟𝑎𝑙𝑙 𝑏𝑢𝑔𝑠𝑓𝑜𝑢𝑛𝑑

  15. Количество обнаруженных ошибок / отказов 15 𝑒𝑓𝑓𝑒𝑐𝑡𝑖𝑣𝑖𝑡𝑦 = 𝑏𝑢𝑔𝑠𝑜𝑣𝑒𝑟𝑎𝑙𝑙 𝑏𝑢𝑔𝑠𝑓𝑜𝑢𝑛𝑑

  16. Bugs overall 16 Bugs overall Post- mortem Другие техники Error

    seeding
  17. Error seeding 17 Product Bug3 Bug2 Bug1

  18. Pairwise vs Random 18

  19. Schroeder's study 19 Создали проект Error seeding Создали наборы тестов

    P. J. Schroeder, P. Bolaki, and V. Gopu, "Comparing the Fault Detection Effectiveness of N-way and Random Test Suites," in Proc. of the Int'l Symposium on Empirical Software Engineering. Redondo Beach, CA, 2004.
  20. Pairwise vs. Random 20 12,288 combinations (212 x 3) Bach,

    James, and Patrick J. Schroeder. "Pairwise testing: A best practice that isn’t." Proceedings of 22nd Pacific Northwest Software Quality Conference. 2004.
  21. Pairwise vs. Random – малые наборы 21 Размер набора pairwise

    тестов Покрытие пар случайной выборкой 4 68.4% 9 65.4% 10-40 82.9% - 99.9% (среднее 95.1%) Dalal, Siddhartha R., and Colin L. Mallows. "Factor-covering designs for testing software." Technometrics 40.3 (1998): 234-243.
  22. Pairwise vs. Random – большие наборы 22 Размер набора pairwise

    тестов (латинские квадраты) Эквивалентный набор рандомных тестов На сколько процентов больше 121 189 56.2% 127 161 26.77% 163 217 33,13% White, Lee J. "Regression Testing of GUI Event Interactions." icsm. Vol. 96. 1996.
  23. Pairwise vs >2-wise 23

  24. Кейс с медицинским оборудованием 68% 98% 2% 32% 15 лет

    наблюдений Недостаточно подробные Решаются pairwise >2-wise 98% отказов в медицинском оборудовании могли быть решены с помощью pairwise Wallace, Dolores R., and D. Richard Kuhn. "Failure modes in medical device software: an analysis of 15 years of recall data." International Journal of Reliability, Quality and Safety Engineering 8.04 (2001): 351-371.
  25. Remote Agent Planner 25 12 5 3 5 20 37

    25 22 32 42 28 27 1 9 24 30 0 5 10 15 20 25 30 35 40 45 Сближение Корректность Интерфейс Двигатель Эффективность по типам тестов 2-way bugs 1-way bugs 2-way + 1-way Оставшися баги Smith, Benjamin D., Martin S. Feather, and Nicola Muscettola. "Challenges and Methods in Testing the Remote Agent Planner." AIPS. 2000.
  26. Remote Agent Planner 26 12 5 3 5 25 20

    37 25 22 104 32 42 28 27 129 1 9 24 30 64 0 20 40 60 80 100 120 140 Сближение Корректность Интерфейс Двигатель Всего Эффективность по типам тестов 2-way bugs 1-way bugs 2-way + 1-way Оставшися баги Smith, Benjamin D., Martin S. Feather, and Nicola Muscettola. "Challenges and Methods in Testing the Remote Agent Planner." AIPS. 2000.
  27. N-wise 27 30 34 41 48 82 29 41 42

    45 88 0 10 20 30 40 50 60 70 80 90 100 2-way 3-way 4-way >4-way Overall N-wise Load Arranger System Data Management and Analysis System P. J. Schroeder, P. Bolaki, and V. Gopu, "Comparing the Fault Detection Effectiveness of N-way and Random Test Suites," in Proc. of the Int'l Symposium on Empirical Software Engineering. Redondo Beach, CA, 2004.
  28. N-wise 28 30 4 7 7 34 29 12 1

    3 43 0 5 10 15 20 25 30 35 40 45 50 2-way 3-way 4-way >4-way Не нашли N-wise Load Arranger System Data Management and Analysis System P. J. Schroeder, P. Bolaki, and V. Gopu, "Comparing the Fault Detection Effectiveness of N-way and Random Test Suites," in Proc. of the Int'l Symposium on Empirical Software Engineering. Redondo Beach, CA, 2004.
  29. “Combinatorial Testing” - D. Richard Kuhn, Raghu N. Kacker, Yu

    Lei, Encyclopedia of Software Engineering, Laplante
  30. Вопросы взаимодействия 30

  31. Взаимодействие переменных 31 Bach, James, and Patrick J. Schroeder. "Pairwise

    testing: A best practice that isn’t." Proceedings of 22nd Pacific Northwest Software Quality Conference. 2004.
  32. Schroeder's study 29 12 1 3 43 0 5 10

    15 20 25 30 35 40 45 50 2-way 3-way 4-way >4-way Не нашли N-wise Data Management and Analysis System P. J. Schroeder, P. Bolaki, and V. Gopu, "Comparing the Fault Detection Effectiveness of N-way and Random Test Suites," in Proc. of the Int'l Symposium on Empirical Software Engineering. Redondo Beach, CA, 2004.
  33. Schroeder's study P. J. Schroeder, P. Bolaki, and V. Gopu,

    "Comparing the Fault Detection Effectiveness of N-way and Random Test Suites," in Proc. of the Int'l Symposium on Empirical Software Engineering. Redondo Beach, CA, 2004.
  34. Проблема предсказателя 34

  35. Проблема предсказателя 35 Подготовка тестирования Выполнение шагов Верификация результатов Bach,

    James, and Patrick J. Schroeder. "Pairwise testing: A best practice that isn’t." Proceedings of 22nd Pacific Northwest Software Quality Conference. 2004.
  36. Неравнозначные тесткейсы 36

  37. Неравнозначные тесткейсы 37 Какой кейс будет чаще всего возникать на

    практике? 12,288 combinations (212 x 3) Bach, James, and Patrick J. Schroeder. "Pairwise testing: A best practice that isn’t." Proceedings of 22nd Pacific Northwest Software Quality Conference. 2004.
  38. Неравнозначные тесткейсы 38 1. По умолчанию 2. Инвертировали Startup Task

    Pane 3. Инвертировали Highlight 4. … Bach, James, and Patrick J. Schroeder. "Pairwise testing: A best practice that isn’t." Proceedings of 22nd Pacific Northwest Software Quality Conference. 2004.
  39. Разные подходы 39

  40. Разные подходы 40 Model 3⁴ 3¹³ 4¹⁵ 3¹⁷ 2²⁹ 4¹

    3³⁹ 2³⁵ 2¹⁰⁰ 10²⁰ AETG 9 15 41 28 10 180 IPO 9 17 34 26 15 212 TConfig 9 15 40 30 14 231 CTS 9 15 39 29 10 210 Jenny 11 18 38 28 16 193 TestCover 9 15 29 21 10 181 DDA ? 18 35 27 15 201 AllPairs [McDowell] 9 17 34 26 14 197 PICT 9 18 37 27 15 210 … … … … … … … https://github.com/jaccz/pairwise/blob/main/efficiency.md
  41. Что делать? 41

  42. Что делать? 42 • Анализировать продукт • Осознанно подбирать параметры

    • Осознанно конфигурировать тесты • Внимательно анализировать результаты тестирования Bach, James, and Patrick J. Schroeder. "Pairwise testing: A best practice that isn’t." Proceedings of 22nd Pacific Northwest Software Quality Conference. 2004.
  43. Each choice testing 43 param1 param2 param3 a 1 X

    b 2 Y c 3 4 5 Test Case param1 param2 param3 1 a 1 X 2 b 2 Y 3 c 3 X 4 a 4 Y 5 b 5 X https://sysgears.com/articles/test-design-techniques-overview/#each-choice
  44. Base choice testing 44 param1 param2 param3 a 1 X

    b 2 Y c 3 Z Test Case param1 param2 param3 1 a 2 Y 2 b 2 Y 3 c 2 Y 4 a 1 Y 5 a 3 Y 6 a 2 X 7 a 2 Z https://sysgears.com/articles/test-design-techniques-overview/#base-choice
  45. Automatic Efficient Test Generator 45 Cohen, David M., et al.

    "The automatic efficient test generator (AETG) system." Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering. IEEE, 1994.
  46. >2-wise “Combinatorial Testing” - D. Richard Kuhn, Raghu N. Kacker,

    Yu Lei, Encyclopedia of Software Engineering, Laplante
  47. Выводы

  48. Что за комбинаторика? • Все комбинации • Случайные комбинации •

    N-wise • Pairwise • Each choice testing • Base choice testing • Automatic Efficient Test Generator • … 48 «Тестирование программного обеспечения. Базовый курс. (3-е издание)» (PDF, постоянно обновляемая версия).
  49. Слепое применение практик не есть хорошо

  50. Большинство отказов вызвано взаимодействием 1 или 2 параметров 50% 98%

  51. Нет детерминированного подхода к тест-дизайну 51

  52. Contacts Вопросы? Materials