Модульное тестирование (Unit testing)
Модульное тестирование - это автоматизированный тип тестирования, позволяющий проверить валидность работы отдельных модулей приложения.
Основные цели:
- проверить валидную работу каждого модуля (UI-компонента, функции, хука, класса) по отдельности;
- изолирование блоков кода друг от друга, вследствие можно достичь более грамотной декомпозиции кода;
- документация кода, например при погружении в бизнес-логику компонента.
Как проводится?
Разработчики покрывают тест-кейсами приложение, проверяя локально валидацию написанного тест-кейса.
Скриншотное тестирование (SnapShot)
Скриншотное тестирование (SnapShot testing) - это автоматизированный тип тестирования, основанный на сравнении изменений в Node-узлах. Сравнение происходит при прогоне тестов между ранее сгенерированным скриншотом (файлом) отрисованного Node-узла и фактическим Node-узлом, с учетом дочерних элементов.
Основные цели:
- проверка верстки и стилей - обнаруживает непреднамеренные визуальные изменения;
- улучшение отслеживания изменений.
Интеграционное тестирование (Integration)
Интеграционное тестирование (Integration testing) - это автоматизированный тип тестирования логически связанных между собой модулей (компонентов, связанных потоков данных, таких как Redux, Router и т.п.)
Основные цели:
- выявление ошибочных кейсов при взаимодействии модулей;
- проверка обмена данными между модулями, например:
- передача пропсов или других атрибутов между компонентами;
- передача рендер компонентов в зависимости от роута (URL) пользователя;
- управление данными между состоянием и пользовательским интерфейсом (Redux, Zustand, useState, useReducer и т.п.)
- проверка работоспособности с внешними источниками данных (клиент - сервер, API -модулей)
Как проводится?
Разработчики покрывают тест-кейсами приложение, проверяя локально валидацию написанного тест-кейса.
Это изолированные тесты, но с объявленными зависимостями
Сквозное тестирование (E2E)
Сквозное тестирование (End to End) - это заключительный способ проверки функциональности и производительности приложения с точки зрения пользователя. E2E-тестирование имитирует реальное поведение пользователя с системой, чтобы проверить, что все интегрированные части работают бесперебойно.
Основные цели:
- тестирование в максимально приближенном к боевому (production) окружению;
- имитация поведения пользователя с тестируемым ПО;
- проверка пользовательского интерфейса с учетом основных и альтернативных сценариев бизнес логики;
- проверка зависимостей и целостности данных при взаимодействии с другими системами.
Как проводится?
PS: На текущий момент данный этап тестирования реализуется с помощью ручных тестировщиков при приемочном и регресс тестировании.