🐞🔍 Тестирование. Основные понятия



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



💠 Основные виды тестирования



По запуску кода

● Статическое тестирование — тестирование без фактического выполнения кода

● Динамическое тестирование — не может быть осуществлено без запуска программного кода приложения.



По доступу к коду

● Белый ящик – с использованием доступа к исходному коду

● Чёрный ящик – без использования доступа к исходному коду



По уровню тестирования

● Модульное – проводится над отдельным компонентом системы

● Интеграционное – проверка взаимодействия нескольких компонентов или систем

● Системное – показывает, соответствует ли готовая система функциональным и нефункциональным требованиям

● Приёмочное (UAT) – выполняется самим заказчиком



По степени автоматизации

● Ручное

● Автоматизированное



По целям тестирования различают функциональное и нефункциональное тестирование. К нефункциональному тестированию относят:

● Нагрузочное тестирование – проверка поведения системы при плановой повышенной и пиковой нагрузке

● Стрессовое тестирование – проверка работы системы в критических условиях

● Тестирование удобства использования (usability testing)

● Тестирование безопасности

● Регрессионное тестирование — повторное тестирование уже проверенной ранее функциональности после внесения изменений в код приложения, для уверенности в том, что эти изменения не внесли ошибки в областях, которые не подверглись изменениям.



Тестовые стенды

Среда разработки (Dev) – за данную среду отвечают разработчики, в ней они пишут код, проводят отладку, исправляют ошибки

Среда тестирования (Test) – среда, в которой работают тестировщики

Интеграционная среда (Integration Env) – среда, в которой проводят тестирование взаимодействующих друг с другом систем

Предпрод (Preprod Env) – среда, которая максимально приближена к продакшену. Здесь проводится заключительное тестирование функционала.

Продакшн среда (Prod Env) – среда, в которой работают пользователи.



Этапы тестирования

1️⃣ Анализ требований – позволяет выяснить, какие возможные сложности могут возникнуть при тестировании. Также на этом этапе можно выявить возможные несоответствия или недостаточно ясные требования, которые требуют уточнения у разработчиков или заказчика

2️⃣ Планирование тестирования – выбор методов тестирования, определение ресурсов, сроков

3️⃣ Тест-дизайн – разработка тест-кейсов. Тест-кейс — это алгоритм действий, которые требуется совершить для проверки работы системы. Может иметь следующие атрибуты: ID, название, предусловия, шаги, ожидаемый результат, фактический результат, статус

4️⃣ Подготовка к тестированию – включает создание тестового окружения, подготовку тестовых данных, написание автотестов, деплой приложения на тестовом стенде

5️⃣ Выполнение тестирования – Сначала выполняется интеграционное или даже сразу системное тестирование, зависит от специфики тестирования в конкретной компании. Модульное тестирование обычно выполняется разработчиком при написании кода с помощью unit-тестов

6️⃣ Формирование результатов – подготовка отчёта о тестировании, содержащего информацию о результатах выполнения тест-кейсов и о выявленных дефектах



📎 Материалы

1. Фундаментальная теория тестирования

2. Как устроен процесс тестирования

3. Какие бывают этапы и виды тестирования

4. Как писать тест-кейсы

5. Большой учебник по тестированию

6. Курс по тестированию The 100-Year QA-Textbook — полезно и для аналитиков

7. Видео по видам тестирования



#тестирование #развитие