0
Модульное и нагрузочное
тестирование

Влад Алюков
О чём
 Модульное тестирование
 Нагрузочное тестирование

2
Модульное
тестирование

3
Зачем?
 Документация
 Более лёгкое внесение изменений

 Качество кода
 Уменьшение количества итераций Разработка >
Тес...
Документация

5
Простое внесение изменений

6
Сложность

7
Преимущества
 Скорость
 Надёжность

 Стабильность

8
Скорость

9
Надёжность

10
Недостатки
 Гарантируют работоспособность на уровне модуля

11
UNIT test

12
Testing Pyramid

13
Как?
 Тестовый фрэймворк
 Mock/Stub

 DocTests
 CodeCoverage

14
xUnit

unit test framework {lang}

15
Анатомия теста

16
Репорты
 Html Report
 xUnit Report

 text report

17
Mock/Stub
 Hardware
 Внешние зависимости

 Базы данных

18
Различия
 Mock ― эмуляция объекта
 Stub ― заглушка для объекта

19
Mock (example)

20
DocTest

21
DocTest недостатки
 Развесистая документация
 Нецелевое использование docstring

 Неудобно работать с фикстурами

22
Анализ существующих
тестов

23
Анализ покрытия

24
Анализ покрытия

25
Mutation Testing

26
Принцип

27
Недостатки

28
Статический анализ кода
 Связанность кода
 Опасные конструкции

 Опечатки
 Копипаст

 Утечки памяти
 Code Convention...
Практики написания тестов

30
TDD
 Отслеживание прогресса
 Документирование

 Архитектура “в нагрузку”
 Очевидные ориентиры и стимулы

31
TDD

32
BDD

33
BDD
 В первую очередь ― валидация

34
BDD
 Когда документация важна
 Регрессионное тестирование

 Приёмочные тесты

35
Достоинства
 Виден прогресс
 Понижает порог вхождения

36
Недостатки
 Много текста
 Условно человекочитаемый формат

37
Антипаттерны

38
False Positive
 assertTrue(True)

39
Зависимый
 Зависит от окружения
 Зависит от других тестов

40
Inspector
 Использует знание о структуре объектов
(reflection api)

41
GodTest
 Задействует много посторонних объектов
и подсистем

42
Счётчик

43
Медленные тесты

44
Вопросы?

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

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

47
SLA

48
Нервные пользователи

49
Цели
 Поиск узких мест
 Оценка допустмых пределов

 Определение границ QoS

50
Стратегия
 Проработка модели нагрузки
 Создание профилей нагрузки

 Генерация нагрузки
 Мониторинг тестируемых систем
...
Профили нагрузки

52
Модель нагрузки
 Список профилей нагрузки
 Интенсивность выполнения операции

 Зависимость интенсивности операций
от вр...
Профиль нагрузки
 Определение сценариев нагрузки
 Определение точек нагрузки

 Определение количества пользователей

54
Точки нагрузки
 Определение точек нагрузки
 Технические точки нагрузки

 Функциональные точки нагрузки

 Определение и...
Технические точки нагрузки
 Работа с базой (модификация сущностей)
 Задействуют несколько подсистем приложения

56
Функциональные точки нагрузки
 Критический важные функции вашего приложения
 Регистрация

 Логин
 Основные бизнес-кейс...
Анализ результатов

58
Метрики
 Время отклика
 Количество ошибок

 Disk IO (tps, kb/t)
 RAM (memory use)

 CPU
 LA

59
LoadAverage
 Количество процессов в очереди
 Временной интервал 1/5/15 минут

60
Время ответа
 Стремится к нормальному распределению
 С наименьшим среднеквадратичным отклонением

61
Нормальное распределение

62
Квадратичное отклонение

63
Квантиль

64
Типичные проблемы
 Input/Output
 Недостаточно производительный генератор
нагрузки

65
Типичные ошибки

66
Прогрев

67
Среднее арифметическое

68
Только протоколы

69
Достойные инструменты
 multi-mechanize
 locustio

 jmeter
 grinder

 tsung

70
Вопросы?

71
Спасибо за внимание
Влад Алюков
v.alyukov@corp.mail.ru
Upcoming SlideShare
Loading in...5
×

Тестирование осень 2013 лекция 4

196

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
196
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Тестирование осень 2013 лекция 4"

  1. 1. Модульное и нагрузочное тестирование Влад Алюков
  2. 2. О чём  Модульное тестирование  Нагрузочное тестирование 2
  3. 3. Модульное тестирование 3
  4. 4. Зачем?  Документация  Более лёгкое внесение изменений  Качество кода  Уменьшение количества итераций Разработка > Тестирование > Разработка 4
  5. 5. Документация 5
  6. 6. Простое внесение изменений 6
  7. 7. Сложность 7
  8. 8. Преимущества  Скорость  Надёжность  Стабильность 8
  9. 9. Скорость 9
  10. 10. Надёжность 10
  11. 11. Недостатки  Гарантируют работоспособность на уровне модуля 11
  12. 12. UNIT test 12
  13. 13. Testing Pyramid 13
  14. 14. Как?  Тестовый фрэймворк  Mock/Stub  DocTests  CodeCoverage 14
  15. 15. xUnit unit test framework {lang} 15
  16. 16. Анатомия теста 16
  17. 17. Репорты  Html Report  xUnit Report  text report 17
  18. 18. Mock/Stub  Hardware  Внешние зависимости  Базы данных 18
  19. 19. Различия  Mock ― эмуляция объекта  Stub ― заглушка для объекта 19
  20. 20. Mock (example) 20
  21. 21. DocTest 21
  22. 22. DocTest недостатки  Развесистая документация  Нецелевое использование docstring  Неудобно работать с фикстурами 22
  23. 23. Анализ существующих тестов 23
  24. 24. Анализ покрытия 24
  25. 25. Анализ покрытия 25
  26. 26. Mutation Testing 26
  27. 27. Принцип 27
  28. 28. Недостатки 28
  29. 29. Статический анализ кода  Связанность кода  Опасные конструкции  Опечатки  Копипаст  Утечки памяти  Code Convention 29
  30. 30. Практики написания тестов 30
  31. 31. TDD  Отслеживание прогресса  Документирование  Архитектура “в нагрузку”  Очевидные ориентиры и стимулы 31
  32. 32. TDD 32
  33. 33. BDD 33
  34. 34. BDD  В первую очередь ― валидация 34
  35. 35. BDD  Когда документация важна  Регрессионное тестирование  Приёмочные тесты 35
  36. 36. Достоинства  Виден прогресс  Понижает порог вхождения 36
  37. 37. Недостатки  Много текста  Условно человекочитаемый формат 37
  38. 38. Антипаттерны 38
  39. 39. False Positive  assertTrue(True) 39
  40. 40. Зависимый  Зависит от окружения  Зависит от других тестов 40
  41. 41. Inspector  Использует знание о структуре объектов (reflection api) 41
  42. 42. GodTest  Задействует много посторонних объектов и подсистем 42
  43. 43. Счётчик 43
  44. 44. Медленные тесты 44
  45. 45. Вопросы? 45
  46. 46. Нагрузочное тестирование 46
  47. 47. Нагрузочное тестирование 47
  48. 48. SLA 48
  49. 49. Нервные пользователи 49
  50. 50. Цели  Поиск узких мест  Оценка допустмых пределов  Определение границ QoS 50
  51. 51. Стратегия  Проработка модели нагрузки  Создание профилей нагрузки  Генерация нагрузки  Мониторинг тестируемых систем  Анализ результатов 51
  52. 52. Профили нагрузки 52
  53. 53. Модель нагрузки  Список профилей нагрузки  Интенсивность выполнения операции  Зависимость интенсивности операций от времени выполнения 53
  54. 54. Профиль нагрузки  Определение сценариев нагрузки  Определение точек нагрузки  Определение количества пользователей 54
  55. 55. Точки нагрузки  Определение точек нагрузки  Технические точки нагрузки  Функциональные точки нагрузки  Определение интенсивности выполнения операций 55
  56. 56. Технические точки нагрузки  Работа с базой (модификация сущностей)  Задействуют несколько подсистем приложения 56
  57. 57. Функциональные точки нагрузки  Критический важные функции вашего приложения  Регистрация  Логин  Основные бизнес-кейсы 57
  58. 58. Анализ результатов 58
  59. 59. Метрики  Время отклика  Количество ошибок  Disk IO (tps, kb/t)  RAM (memory use)  CPU  LA 59
  60. 60. LoadAverage  Количество процессов в очереди  Временной интервал 1/5/15 минут 60
  61. 61. Время ответа  Стремится к нормальному распределению  С наименьшим среднеквадратичным отклонением 61
  62. 62. Нормальное распределение 62
  63. 63. Квадратичное отклонение 63
  64. 64. Квантиль 64
  65. 65. Типичные проблемы  Input/Output  Недостаточно производительный генератор нагрузки 65
  66. 66. Типичные ошибки 66
  67. 67. Прогрев 67
  68. 68. Среднее арифметическое 68
  69. 69. Только протоколы 69
  70. 70. Достойные инструменты  multi-mechanize  locustio  jmeter  grinder  tsung 70
  71. 71. Вопросы? 71
  72. 72. Спасибо за внимание Влад Алюков v.alyukov@corp.mail.ru
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×