Download - Марина Широчкина: Тестирование
![Page 1: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/1.jpg)
![Page 2: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/2.jpg)
Марина Широчкина Руководитель группы тестирования
Тестирование Обзорная лекция
![Page 3: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/3.jpg)
Что это такое и с чем его едят?
Введение
![Page 4: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/4.jpg)
4
Тестирование – процесс сравнения ожидаемых результатов с полученными.
![Page 5: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/5.jpg)
5
Тестирование – набор инженерных практик, нацеленных на раннее обнаружение дефектов.
![Page 6: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/6.jpg)
6
Тестирование – способ предоставления и получения обратной связи: как технологической, так и продуктовой.
![Page 7: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/7.jpg)
7
Пример продуктовой обратной связи
• «Здесь нельзя грабить корованы!» (с) пользователь
![Page 8: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/8.jpg)
8
Пример продуктовой обратной связи
• «Здесь нельзя грабить корованы!» (с) пользователь
• «Оно делает не то, что надо!» (с) менеджер
![Page 9: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/9.jpg)
9
Пример продуктовой обратной связи
• «Здесь нельзя грабить корованы!» (с) пользователь
• «Оно делает не то, что надо!» (с) менеджер
• «Я не могу использовать разработанный тобой API, он не возвращает все необходимые данные.»
(с) коллега-разработчик
![Page 10: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/10.jpg)
10
Пример технической обратной связи
• «Поддержка продукта при такой архитектуре будет слишком сложна.»
(с) системный архитектор
![Page 11: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/11.jpg)
11
Пример технической обратной связи
• «Поддержка продукта при такой архитектуре будет слишком сложна.»
(с) системный архитектор
• «Ребята, оно падает каждые полчаса, я не буду это поддерживать.»
(с) системный администратор
![Page 12: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/12.jpg)
12
Пример технической обратной связи
• «Поддержка продукта при такой архитектуре будет слишком сложна.»
(с) системный архитектор
• «Ребята, оно падает каждые полчаса, я не буду это поддерживать.»
(с) системный администратор
• «Эта реализация не выдержит предполагаемой нагрузки.»
(с) кто-то битый жизнью
![Page 13: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/13.jpg)
13
Раннее обнаружение проблем – залог здорового сна.
![Page 14: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/14.jpg)
Народная мудрость
Баг лучше поймать сразу же после его создания.
Уровни тестирования
![Page 15: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/15.jpg)
15
Unit-тесты – тесты, проверяющие корректность работы отдельных модулей программы.
![Page 16: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/16.jpg)
16
![Page 17: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/17.jpg)
17
![Page 18: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/18.jpg)
18
Входные (тестовые) данные
Выходные данные (полученный результат)
![Page 19: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/19.jpg)
19
Плюсы unit-тестов
• Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания».
![Page 20: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/20.jpg)
20
Плюсы unit-тестов
• Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания».
• Могут служить документацией к коду.
![Page 21: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/21.jpg)
21
Плюсы unit-тестов
• Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания».
• Могут служить документацией к коду.
• Упрощают процесс рефакторинга.
![Page 22: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/22.jpg)
22
Минусы unit-тестов
• Их надо писать.
![Page 23: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/23.jpg)
23
Минусы unit-тестов
• Их надо писать.
• Их надо уметь писать.
![Page 24: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/24.jpg)
24
Минусы unit-тестов
• Их надо писать.
• Их надо уметь писать.
• Их надо поддерживать.
![Page 25: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/25.jpg)
25
Даже если все компоненты по отдельности работают правильно, то это ещё ничего не значит.
![Page 26: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/26.jpg)
26
Интеграционные тесты – тесты, проверяющие корректность взаимодействия отдельных модулей друг с другом.
![Page 27: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/27.jpg)
27
![Page 28: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/28.jpg)
28
![Page 29: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/29.jpg)
29
![Page 30: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/30.jpg)
30
Плюсы интеграционных тестов
• Находят баги, которые не могут быть обнаружены unit-тестами.
![Page 31: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/31.jpg)
31
Плюсы интеграционных тестов
• Находят баги, которые не могут быть обнаружены unit-тестами.
• Запускаются после сборки проекта и позволяют быстро обнаружить проблемы взаимодействия.
![Page 32: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/32.jpg)
32
Минусы интеграционных тестов
• все минусы unit-тестов
![Page 33: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/33.jpg)
33
Даже если все компоненты по отдельности работают правильно и корректно взаимодействуют друг с другом – это ещё ничего не значит.
![Page 34: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/34.jpg)
34
Приёмочные тесты – тесты, проверяющие работоспособность системы целиком. В реальном окружении, с реальными данными, на реальных сценариях.
![Page 35: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/35.jpg)
35
Железка
OS
![Page 36: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/36.jpg)
36
Плюсы приёмочных тестов
• Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами
![Page 37: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/37.jpg)
37
Плюсы приёмочных тестов
• Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами
• Позволяют оценить работоспособность продукта целиком
![Page 38: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/38.jpg)
38
Плюсы приёмочных тестов
• Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами
• Позволяют оценить работоспособность продукта целиком
• На этом уровне с продуктом могут ознакомиться будущие пользователи
![Page 39: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/39.jpg)
39
Минусы приёмочных тестов
• Самые высокоуровневые – сложнее локализовывать проблему
![Page 40: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/40.jpg)
40
Минусы приёмочных тестов
• Самые высокоуровневые – сложнее локализовывать проблему
• Занимают больше времени
![Page 41: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/41.jpg)
41
Минусы приёмочных тестов
• Самые высокоуровневые – сложнее локализовывать проблему
• Занимают больше времени
• Обнаруживают проблемы с некоторой задержкой
![Page 42: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/42.jpg)
42
Что же выбрать?
![Page 43: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/43.jpg)
Каждому виду багов – свой вид тестирования
Виды тестирования
![Page 44: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/44.jpg)
44
«АААА! Ничего не работает»
![Page 45: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/45.jpg)
45
Функциональное тестирование – проверка работы кода/продукта на соответствие требованиям. Проверка логики работы.
![Page 46: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/46.jpg)
46
«Не работает у части пользователей»
![Page 47: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/47.jpg)
47
Конфигурационное тестирование на клиенте – проверка работоспособности на различных конфигурациях. Для веб-сайтов – в разных браузерах.
![Page 48: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/48.jpg)
48
«Мы это выкатили, и оно перестало работать!»
![Page 49: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/49.jpg)
49
Конфигурационное тестирование сервер-сайда – проверка работоспособности в окружении, максимально идентичном продакшену (железка, OS, утилиты, библиотеки, конфиги, версии).
![Page 50: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/50.jpg)
50
«Всё сломалось, когда туда пришли пользователи»
![Page 51: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/51.jpg)
51
Нагрузочное тестирование – проверка работоспособности под нагрузкой (одновременная обработка большого потока запросов).
![Page 52: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/52.jpg)
52
«Работает, но страшно тормозит»
![Page 53: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/53.jpg)
53
Тестирование производительности – проверка скорости работы системы.
![Page 54: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/54.jpg)
54
Причём:
• Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы
![Page 55: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/55.jpg)
55
Причём:
• Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы
• То же самое – под нагрузкой
![Page 56: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/56.jpg)
56
Причём:
• Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы
• То же самое – под нагрузкой
• В пользовательских условиях (сетевые условия)
![Page 57: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/57.jpg)
57
«Всё было хорошо, пока не пришли злые китайские хакеры»
![Page 58: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/58.jpg)
58
Тестирование безопасности –
![Page 59: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/59.jpg)
59
«А как этим пользоваться?»
![Page 60: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/60.jpg)
60
купил айфон а чо с ним делать где кнопки чтобы нажимать и как мне позвонить сереге а вот и он звонит и чо
![Page 61: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/61.jpg)
61
Тестирование юзабилити – тестирование удобства использования. Коридорный вариант доступен всем.
![Page 62: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/62.jpg)
62
«Оно работало, а потом вдруг упало»
![Page 63: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/63.jpg)
63
Тестирование стабильности – тестирование стабильности работы под нагрузкой, длительное время.
![Page 64: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/64.jpg)
64
Всё?
![Page 65: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/65.jpg)
65
Ещё много…
• Volume тестирование • Stress/Recovery тестирование • Spike тестирование • Localization тестирование • Compatibility тестирование И т. д. И т. п.
![Page 66: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/66.jpg)
66
Какие выбрать?
![Page 67: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/67.jpg)
67
Исходя из специфики вашего проекта.
![Page 68: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/68.jpg)
68
Способы тестирования
![Page 69: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/69.jpg)
69
Ручное тестирование – выполнение тестов вручную или с помощью скриптов. Ручной анализ результатов.
![Page 70: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/70.jpg)
70
Плюсы и минусы ручного подхода
Плюсы • Более информативно – замечаются дефекты рядом
![Page 71: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/71.jpg)
71
Плюсы и минусы ручного подхода
Плюсы • Более информативно – замечаются дефекты рядом
Минусы • Долго
![Page 72: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/72.jpg)
72
Плюсы и минусы ручного подхода
Плюсы • Более информативно – замечаются дефекты рядом
Минусы • Долго • Дорого
![Page 73: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/73.jpg)
73
Автоматическое тестирование – выполнение с помощью скриптов или инструментов. Оценка результатов проводится автоматически.
![Page 74: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/74.jpg)
74
Плюсы и минусы неручного подхода Плюсы • Удобно и легко
![Page 75: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/75.jpg)
75
Плюсы и минусы неручного подхода Плюсы • Удобно и легко
Минусы • Тесты нужно писать и поддерживать
![Page 76: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/76.jpg)
76
Плюсы и минусы неручного подхода Плюсы • Удобно и легко
Минусы • Тесты нужно писать и поддерживать • Тесты выполняются «в лоб»
![Page 77: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/77.jpg)
77
Плюсы и минусы неручного подхода Плюсы • Удобно и легко
Минусы • Тесты нужно писать и поддерживать • Тесты выполняются «в лоб» • Сами тесты/скрипты/инструменты могут содержать баги и порождать ложные результаты
![Page 78: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/78.jpg)
78
Разумная комбинация методов – залог успеха.
![Page 79: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/79.jpg)
79
Инструменты
Функциональное, приемочное тестирование: Selenium (web app): http://seleniumhq.org/ TestComplete (desktop app): http://smartbear.com/products/qa-tools/automated-testing-tools Функциональное, unit тестирование: подбирается под используемый язык, см http://clck.ru/4bsKa Нагрузочное тестирование/тестирование производительности: Яндекс.Танк: https://github.com/yandex-load/yandex-tank Jmeter: http://jmeter.apache.org/
![Page 80: Марина Широчкина: Тестирование](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55a0a38d1a28ab69778b4594/html5/thumbnails/80.jpg)
80
Инструменты
Как сымитировать плохую сеть: Fiddler: http://www.fiddler2.com/fiddler2/ Charles: http://www.charlesproxy.com/ Утилита tc: man tc Большой зоопарк разнообразных браузеров: http://browsershots.org/