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

63
танкист Марина Широчкина Нагрузочное тестирование с точки зрения тестирования

description

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

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

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

танкистМарина Широчкина

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

точки зрения тестирования

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

танкистМарина Широчкина

Всякое тестирование под нагрузкой с точки зрения тестирования

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

Спасибо

- компании i-Free за гостеприимство

- SPB SQA Group в лице Романа Твердохлебова и Алексея Лянгузова

– за всё

3

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

О чем будем говорить?

4

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

О тестировании. Не инструментах

5

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

Бытие определяет сознание

6

Load Runner головного мозга!

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

А мне оно нужно?

7

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

Кому оно еще нужно?

8

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

Виды тестирования«под нагрузкой»

9

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

ISTQB Glossary говорит нам..

10

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

Load Testing по ISTQB

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.

11

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

Load Testing на пальцах

12

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

Load Testing – как?

13

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

Load Testing отвечает на вопросы:

- Какова максимально выдерживаемая нагрузка?

- Какой у нас есть запас по прочности?

- Через какое время запаса по прочности не хватит?

- Где наше узкое место?

14

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

Performance testing по ISTQB

Performance testing: The process of testing to determine the performance of a software product. See also efficiency testing.

15

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

Performance testing на пальцах

16

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

Performance Testing – как?

17

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

Performance Testing – как?

Avg(t) < X2

18

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

или 100% < X3

95% < X2

90% < X1

19

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

Performance Testing отвечает на вопросы:- Насколько быстро отвечает мой сервис/компонент?

- Насколько быстро он будет отвечать через полгода?

- Когда мой сервис/компонент начнет отвечать слишком медленно?

20

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

Resource Utilization Testing по ISTQBResource utilization testing: The process of testing to determine the resource-utilization of a software product. See also efficiency testing.

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.21

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

Resource Utilization Testingна пальцах

22

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

Resource Utilization Testing – как?

При Load Testing

23

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

Resource Utilization Testing – как?

При Performance Testing

24

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

Resource Utilization Testing отвечает на вопросы- сколько и каких ресурсов используется при работе сервиса/компонента?

- какой запас по ресурсам у нас есть?

- в какой вид ресурса мы упираемся? Как нам решить эту проблему?

25

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

Stress Testing по ISTQB

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.

26

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

Stress Testing на пальцах

27

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

Stress Testing – как?

28

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

Stress Testing отвечает:

- Как умирает моя система/компонент?

- Как проходит процесс восстановления?

29

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

Volume Testing по ISTQB

Volume testing: Testing where the system is subjected to large volumes of data. See also resource-utilization testing.

30

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

Volume Testingна пальцах

31

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

Volume Testing – как?

Для каждого Vi

32

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

Volume Testing отвечает:

- Как будет работать моя система при продакшен-объёмах данных?

- Что будет с производительностью моей системы при увеличении объемов данных?

- Когда у меня начнутся проблемы из-за объёма данных?

33

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

Endurance Testing (Soak Testing)не по ISTQBEndurance testing is usually done to determine if the application can sustain the continuous expected load.

34

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

Endurance Testing (Soak Testing)на пальцах

35

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

Endurance Testing (Soak Testing) – как?

36

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

Endurance Testing (Soak Testing) отвечает:

- что происходит с моей системой/компонентом под длительной постоянной нагрузкой?

- не ухудшается ли производительность со временем?

- как потребляются ресурсы с течением времени?

37

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

Много? Много.

Только необходимое и достаточное

38

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

Регрессионное тестирование производительности

39

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

Одной итерации недостаточно

40

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

Regression Testing по ISTQB

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.

41

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

Различия?

Только в порождаемых артефактах

42

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

Functional Regression

43

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

Load Regression

44

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

Performance Regression

45

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

или

46

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

Resource Utilization Regression

При серии Load тестов При серии Performance тестов

47

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

Volume Regression

При серии Load тестов При серии Performance тестов

Для каждого Vi

48

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

Частота?

- риски (и необходимость)

- стоимость (и возможности)

49

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

Разные подходы к формированию моделей нагрузки

50

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

Бывает по всякому

- иногда достаточно ad-hoc-а

- иногда достаточно «черного ящика»

- а иногда нужно посмотреть на систему изнутри

51

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

Эксплуатационный подход – как?

Просто: оперируем моделью нагрузки в терминах текущей эксплуатации

52

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

Эксплуатационный подход – как?

53

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

Плюсы и минусы

Плюсы:- не нужно проектировать тесты- ответ на вопрос «что будет, если мы попадем в продакшен прямо сейчас»

Минусы:- неточность результатов- невозможность сделать какие-либо прогнозы или выводы о запасах, узких местах и т. д.

54

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

Пользовательский подход – как?Просто: оперируем моделью нагрузки в терминах пользовательских сценариев использования

55

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

«..когда юзеры такие цоп-цоп-цоп..»

56

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

Плюсы и минусыПлюсы:- проектировать тесты довольно просто (и даже Record/Play)- можно получить какие-то прогнозы и выводы о запасах, узких местах и т д на соответствующем уровне

Минусы:- не будет работать в некоторых местах вообще (API) - неточность в локализации проблем- возможно дорогие инструменты

57

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

Компонентный подход – как?

Просто: оперируем моделью нагрузки в терминах отдельных «звеньев» и компонентов нашей системы, рассматривая каждый из них по отдельности снизу-вверх

58

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

Компонентный подход – как?

59

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

Плюсы и минусы

Плюсы:- более точные оценки, прогнозы и выводы- удобно локализовывать проблемы

Минусы:- потребуется хорошее знание архитектуры продукта, технологий продукта, инфраструктуры продукта и т. д.- для специфических продуктов, протоколов и т д, возможно, потребуется подбирать отдельные инструменты60

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

Что выбрать?

Риски, приоритеты, возможности, бюджеты – как всегда.

61

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

Вопросы?

62

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

[email protected]

танкист

Служба нагрузочного тестирования

Яндекс

Иллюстрации: © Евгений Поляков

Марина Широчкина