Нагрузочное тестирование

13,907 views

Published on

Часто о нагрузочном тестировании рассказывают через призму используемого инструментария, хорошо раскрывая слово «нагрузочное» и часто оставляя слово «тестирование» за кадром. Так давайте же попробуем поговорить о месте именно тестирования в нагрузочном тестировании.

Published in: Technology

Нагрузочное тестирование

  1. 1. <ul><li>танкист </li></ul><ul><li>М арина Широчкина </li></ul>Нагрузочное тестирование с точки зрения тестирования
  2. 2. <ul><li>танкист </li></ul><ul><li>М арина Широчкина </li></ul>Всякое тестирование под нагрузкой с точки зрения тестирования
  3. 3. Спасибо - компании i-Free за гостеприимство - SPB SQA Group в лице Романа Твердохлебова и Алексея Лянгузова – за всё 
  4. 4. О чем будем говорить?
  5. 5. О тестировании. Не инструментах
  6. 6. Бытие определяет сознание <ul><li>Load Runner головного мозга! </li></ul>
  7. 7. А мне оно нужно?
  8. 8. Кому оно еще нужно?
  9. 9. Виды тестирования «под нагрузкой»
  10. 10. ISTQB Glossary говорит нам..
  11. 11. Load Testing по ISTQB <ul><li>Load Testing : A test type concerned with measuring the behavior of a component or system with increasing load, e.g. number of parallel users and/or numbers of transactions to determine what load can be handled by the component or system. See also stress testing. </li></ul>
  12. 12. Load Testing на пальцах
  13. 13. Load Testing – как?
  14. 14. Load Testing отвечает на вопросы: <ul><li>Какова максимально выдерживаемая нагрузка? </li></ul><ul><li>Какой у нас есть запас по прочности? </li></ul><ul><li>Через какое время запаса по прочности не хватит? </li></ul><ul><li>Где наше узкое место? </li></ul>
  15. 15. Performance testing по ISTQB <ul><li>Performance testing : The process of testing to determine the performance of a software product. See also efficiency testing. </li></ul>
  16. 16. Performance testing на пальцах
  17. 17. Performance Testing – как?
  18. 18. Performance Testing – как? Avg(t) < X 2
  19. 19. или 100% < X 3 95% < X 2 90% < X 1
  20. 20. Performance Testing отвечает на вопросы: <ul><li>- Насколько быстро отвечает мой сервис/компонент? </li></ul><ul><li>Насколько быстро он будет отвечать через полгода? </li></ul><ul><li>Когда мой сервис/компонент начнет отвечать слишком медленно? </li></ul>
  21. 21. Resource Utilization Testing по ISTQB <ul><li>Resource utilization testing : The process of testing to determine the resource-utilization of a software product. See also efficiency testing. </li></ul><ul><li>Resource utilization : The capability of the software product to use appropriate amounts and types of resources, for example the amounts of main and secondary memory used by the program and the sizes of required temporary or overflow files, when the software performs its function under stated conditions. [After ISO 9126] See also efficiency. </li></ul>
  22. 22. Resource Utilization Testing на пальцах
  23. 23. Resource Utilization Testing – как ? При Load Testing
  24. 24. Resource Utilization Testing – как ? При Performance Testing
  25. 25. Resource Utilization Testing отвечает на вопросы <ul><li>сколько и каких ресурсов используется при работе сервиса/компонента? </li></ul><ul><li>какой запас по ресурсам у нас есть? </li></ul><ul><li>в какой вид ресурса мы упираемся? Как нам решить эту проблему? </li></ul>
  26. 26. Stress Testing по ISTQB <ul><li>Stress testing : Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements. [IEEE 610] See also load testing. </li></ul>
  27. 27. Stress Testing на пальцах
  28. 28. Stress Testing – как?
  29. 29. Stress Testing отвечает: <ul><li>Как умирает моя система/компонент? </li></ul><ul><li>Как проходит процесс восстановления? </li></ul>
  30. 30. Volume Testing по ISTQB <ul><li>Volume testing : Testing where the system is subjected to large volumes of data. See also resource-utilization testing. </li></ul>
  31. 31. Volume Testing на пальцах
  32. 32. Volume Testing – как? Для каждого V i
  33. 33. Volume Testing отвечает: <ul><li>Как будет работать моя система при продакшен-объёмах данных? </li></ul><ul><li>Что будет с производительностью моей системы при увеличении объемов данных? </li></ul><ul><li>Когда у меня начнутся проблемы из-за объёма данных? </li></ul>
  34. 34. Endurance Testing (Soak Testing) не по ISTQB <ul><li>Endurance testing is usually done to determine if the application can sustain the continuous expected load. </li></ul>
  35. 35. Endurance Testing (Soak Testing) на пальцах
  36. 36. Endurance Testing (Soak Testing) – как?
  37. 37. Endurance Testing (Soak Testing) отвечает: <ul><li>что происходит с моей системой/компонентом под длительной постоянной нагрузкой? </li></ul><ul><li>не ухудшается ли производительность со временем? </li></ul><ul><li>как потребляются ресурсы с течением времени? </li></ul>
  38. 38. Много? Много. <ul><li>Только необходимое и достаточное </li></ul>
  39. 39. Регрессионное тестирование производительности
  40. 40. Одной итерации недостаточно
  41. 41. Regression Testing по ISTQB <ul><li>Regression Testing: Testing of a previously tested program following modification to ensure that defects have not been introduced or uncovered in unchanged areas of the software, as a result of the changes made. It is performed when the software or its environment is changed. </li></ul>
  42. 42. Различия? <ul><li>Только в порождаемых артефактах </li></ul>
  43. 43. Functional Regression
  44. 44. Load Regression
  45. 45. Performance Regression
  46. 46. или
  47. 47. Resource Utilization Regression При серии Load тестов При серии Performance тестов
  48. 48. Volume Regression При серии Load тестов При серии Performance тестов Для каждого V i
  49. 49. Частота? <ul><li>риски (и необходимость) </li></ul><ul><li>стоимость (и возможности) </li></ul>
  50. 50. Разные подходы к формированию моделей нагрузки
  51. 51. Бывает по всякому <ul><li>иногда достаточно ad-hoc -а </li></ul><ul><li>иногда достаточно «черного ящика» </li></ul><ul><li>а иногда нужно посмотреть на систему изнутри </li></ul>
  52. 52. Эксплуатационный подход – как? <ul><li>Просто: оперируем моделью нагрузки в терминах текущей эксплуатации </li></ul>
  53. 53. Эксплуатационный подход – как?
  54. 54. Плюсы и минусы <ul><li>Плюсы: </li></ul><ul><li>не нужно проектировать тесты </li></ul><ul><li>ответ на вопрос «что будет, если мы попадем в продакшен прямо сейчас» </li></ul><ul><li>Минусы: </li></ul><ul><li>неточность результатов </li></ul><ul><li>невозможность сделать какие-либо прогнозы или выводы о запасах, узких местах и т. д. </li></ul>
  55. 55. Пользовательский подход – как? <ul><li>Просто: оперируем моделью нагрузки в терминах пользовательских сценариев использования </li></ul>
  56. 56. «..когда юзеры такие цоп-цоп-цоп..»
  57. 57. Плюсы и минусы <ul><li>Плюсы: </li></ul><ul><li>проектировать тесты довольно просто (и даже Record/Play ) </li></ul><ul><li>можно получить какие-то прогнозы и выводы о запасах, узких местах и т д на соответствующем уровне </li></ul><ul><li>Минусы: </li></ul><ul><li>- не будет работать в некоторых местах вообще ( API ) </li></ul><ul><li>неточность в локализации проблем </li></ul><ul><li>возможно дорогие инструменты </li></ul>
  58. 58. Компонентный подход – как? <ul><li>Просто: оперируем моделью нагрузки в терминах отдельных «звеньев» и компонентов нашей системы, рассматривая каждый из них по отдельности снизу-вверх </li></ul>
  59. 59. Компонентный подход – как?
  60. 60. Плюсы и минусы <ul><li>Плюсы: </li></ul><ul><li>более точные оценки, прогнозы и выводы </li></ul><ul><li>удобно локализовывать проблемы </li></ul><ul><li>Минусы: </li></ul><ul><li>потребуется хорошее знание архитектуры продукта, технологий продукта, инфраструктуры продукта и т . д . </li></ul><ul><li>для специфических продуктов, протоколов и т д, возможно, потребуется подбирать отдельные инструменты </li></ul>
  61. 61. Что выбрать? <ul><li>Риски, приоритеты, возможности, бюджеты – как всегда. </li></ul>
  62. 62. Вопросы?
  63. 63. <ul><li>[email_address] </li></ul><ul><li>танкист </li></ul><ul><li>Служба нагрузочного тестирования </li></ul><ul><li>Яндекс </li></ul><ul><li>Иллюстрации: © Евгений Поляков </li></ul><ul><li>М арина Широчкина </li></ul>

×