Ответ
На практике применял следующие ключевые типы и сценарии тестирования:
1. Модульное тестирование (Unit Testing)
- Инструменты: JUnit 5, Mockito.
- Цель: Проверка изолированной работы отдельных классов или методов.
-
Пример:
@Test void calculateTotalPrice_ShouldReturnCorrectSum() { // Arrange OrderService service = new OrderService(); List<Item> items = List.of(new Item("Book", 10.0), new Item("Pen", 2.5)); // Act double total = service.calculateTotalPrice(items); // Assert assertEquals(12.5, total); }
2. Интеграционное тестирование (Integration Testing)
- Инструменты: Spring Boot Test (
@SpringBootTest), Testcontainers, H2 Database. - Цель: Проверка взаимодействия между компонентами (сервисы, репозитории, внешние API).
- Сценарий: Тестирование сохранения и загрузки сущности через JPA-репозиторий.
3. Функциональное/API-тестирование (Functional/API Testing)
- Инструменты: REST Assured, Postman.
- Цель: Проверка корректности работы REST API эндпоинтов.
- Пример сценария:
POST /api/usersдолжен возвращать201 Createdи созданный объект.
4. Сквозное тестирование (End-to-End Testing)
- Инструменты: Selenium, Cypress.
- Цель: Имитация действий реального пользователя в UI (логин, заполнение формы, навигация).
5. Нагрузочное тестирование (Load Testing)
- Инструменты: JMeter, Gatling.
- Цель: Проверка производительности и стабильности системы под нагрузкой (например, 100 RPS в течение 5 минут).
6. Тестирование безопасности (Security Testing)
- Сценарии: Проверка на уязвимости (SQL-инъекция, XSS), валидация аутентификации и авторизации.
7. Другие ключевые сценарии:
- Тестирование граничных условий и исключений: Пустые коллекции,
null-значения, некорректные форматы данных. - Регрессионное тестирование: Автоматизированные прогоны тестов в CI/CD (Jenkins, GitHub Actions) для проверки, что новые изменения не сломали существующий функционал.