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

Preview:

DESCRIPTION

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

Citation preview

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

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

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

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

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

Спасибо

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

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

– за всё

3

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

4

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

5

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

6

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

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

7

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

8

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

9

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

10

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

Load Testing на пальцах

12

Load Testing – как?

13

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

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

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

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

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

14

Performance testing по ISTQB

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

15

Performance testing на пальцах

16

Performance Testing – как?

17

Performance Testing – как?

Avg(t) < X2

18

или 100% < X3

95% < X2

90% < X1

19

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

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

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

20

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

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

22

Resource Utilization Testing – как?

При Load Testing

23

Resource Utilization Testing – как?

При Performance Testing

24

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

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

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

25

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

Stress Testing на пальцах

27

Stress Testing – как?

28

Stress Testing отвечает:

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

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

29

Volume Testing по ISTQB

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

30

Volume Testingна пальцах

31

Volume Testing – как?

Для каждого Vi

32

Volume Testing отвечает:

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

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

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

33

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

34

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

35

Endurance Testing (Soak Testing) – как?

36

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

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

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

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

37

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

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

38

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

39

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

40

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

Различия?

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

42

Functional Regression

43

Load Regression

44

Performance Regression

45

или

46

Resource Utilization Regression

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

47

Volume Regression

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

Для каждого Vi

48

Частота?

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

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

49

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

50

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

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

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

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

51

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

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

52

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

53

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

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

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

54

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

55

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

56

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

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

57

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

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

58

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

59

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

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

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

Что выбрать?

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

61

Вопросы?

62

pancakyes@yandex-team.ru

танкист

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

Яндекс

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

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

Recommended