---
slideOptions:
transition: slide
---
2.2. Инструменты тестирования
====
---
# План занятия
1. Скриншотинг
2. Инструменты в Расширении Google Chrome
3. Графические инструменты
4. Bug Tracking System
5. Тестовая документация
6. Основы нагрузочного тестирования
7. Бэкэнд тестирование
8. Инструменты мониторинга HTTP/HTTPS-трафика
9. Среда разработки
10. Виртуализация
---
# Вспоминаем прошлые занятия
- Методы и виды тестирования ПО
- Основы клиент-серверного взаимодействия
- Техники тест дизайна
- Подготовка тестовых сценариев
---
# Зачем тестировщику инструменты для тестирования?

---
# Скриншотинг: зачем?
Преимущества:
- Качество коммуникации сильно возрастает, потому что можно просто показать, что происходит, вместо попыток объяснить это;
- Пропадает необходимость многократного повторения воспроизводимости ошибки;
- У разработчика есть чёткие доказательства того, что ошибка действительно существует;
- Полезно при ad-hoc и исследовательском тестировании, когда нет чётких инструкций.
---
# Скриншотинг: как?

- Встроенные в браузер: Lightshot screenshot
- Десктопные: Monosnap
---
# Инструменты в расширении Google Chrome

- Просто необходимы для "UI Тестировщиков"
- Значительно помогают в процессе тестирования
---
# Какие расширения выбрать тестировщику?
* Lightshot (screenshot tools)
* Page Ruler
* Grid Ruler
* Page Load Time
* Hola VPN
* Bug Magnet
---
# Зачем тестировщику инструменты для работы с графикой?


* Редактировать картинки
* Уметь создавать UML диаграммы
* Качественно создавать презентации и документацию
---
# Каким графическими инструментами необходимо уметь пользоваться?
* Photoshop
* Gimp
* XMind
---
# BTS - Bug Tracking System

---
# Какие Bug Tracking System бывают?
- Bugzilla
- Mantis
- JIRA
- Trac
- Redmine
---
# Тестовая документация: зачем?

---
# Основные виды тест артефактов:
- Чек Лист
- Тест кейс / Тестовый сценарий
- Чек-лист
- Баги
- Тест план
- Отчёты по тестированию
---
# Тестовая документация: куда?

---
# Основы тестирования производительности

---
**Load Testing** — моделирование ожидаемой нагрузки (несколько пользователей одновременно получают доступ к системе).
**Stress Testing** (Torture Testing) — тестирование за пределами ожидаемой нагрузки с целью определить стабильность всей системы или её части.
**Endurance Testing** — тестирование с постепенным повышением нагрузки в течение продолжительного времени.
**Spike Testing** — тестирование с экстремальным увеличением и уменьшением нагрузки с целью определить поведение системы при больших и резких притоках и оттоках пользователей.
**Volume Testing** (Flood Testing) — подача огромного количества данных в приложение с целью оценить, как с этим справится база данных.
---
# Как грузить?

---
# Зачем тестировать Бэкэнд (API тестирование)?

---
**API тестирование** — тип тестирования, который включает тестирование API (Application Programming Interface) как часть интеграционного тестирования.
Цель — определить, выполняются ли ожидания по функциональности, производительности и безопасности.
В API отсутствует пользовательский интерфейс, поэтому тестирование производится на уровне сообщений.
---
# С помощью чего тестируем Бэкэнд?

---
# Инструменты мониторинга HTTP/HTTPS-трафика
Тестировщик обязан понимать клиент-серверную архитектуру и уметь локализовывать ошибки с её учётом. И если в тестировании веб-приложений для этого обычно хватает консоли разработчика, то для мобильных приложений нужно использовать специализированное ПО (Charles, Wireshark), которое позволит перехватывать и анализировать сетевые запросы.
Одной из программ по перехвату трафика, является десктоп приложение - Wireshark.
**Wireshark** — программа для анализа сетевых протоколов, которая широко используется для захвата сетевых пакетов.

---
# Что такое Среда Разработки и зачем она нужна для QA?
Среда разработки - комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО)
Также для тестировщика мобильных приложений важно освоить на базовом уровне среду разработки (XCode для iOS, Android Studio для Android)

---
# Что делать с Виртуализацией тестировщику?
На сегодня тестировщику необходимо проверять приложения не только на одной операционной системе, также есть необходимость это делать на разных! Но покупать отдельный компьютер, будет не дешево. Для решения этой проблемы есть способ опробовать на одном компьютере сразу несколько операционных систем, причём, при желании, даже одновременно! Называется этот способ - виртуальная машина или виртуальный компьютер.
**Сегодня мы рассмотрим инструмент для виртуализации - VirtualBox от ORACLE**

VirtualBox - очень простой, мощный и бесплатный инструмент для виртуализации, развивающийся благодаря поддержжке знаменитой корпорации ORACLE. Позволяет устанавливать в качестве "гостевой" практически любую современную операционную систему, будь то Windows, MacOS или любой из многочисленных представителей семейства Linux.
---
# Итоги занятия
Мы изучили:
- Скриншотинг и расширения для Google Chrome
- Графические инструменты
- Как работать с Bug Tracking System?
- Как работать с тестовой документацией?
- Основы нагрузочного тестирования
- Бэкэнд тестирование
- Инструменты мониторинга
- Какую Среду разработки использовать тестировщику?
- Виртуализация
---
# Домашнее задание
[ДЗ](https://github.com/netology-code/iqa-homeworks/tree/master/2.2)
---