Ответ
Тест-кейсы для проверки обработки данных традиционно делятся на три основные категории:
-
Позитивное тестирование (Positive Testing):
- Цель: Проверить, что система корректно обрабатывает валидные данные, соответствующие спецификации.
- Пример: Ввод email
user@example.comв поле регистрации. Ожидается успешное создание аккаунта.
-
Негативное тестирование (Negative Testing):
- Цель: Проверить, что система корректно обрабатывает невалидные, ошибочные или неожиданные данные, демонстрируя устойчивость (robustness).
- Включает: Проверку граничных значений, неверных типов данных, пустых полей, нарушений бизнес-правил.
- Пример: Ввод
userexample.com(без@) в поле email. Ожидается понятное сообщение об ошибке валидации.
-
Деструктивное тестирование (Destructive Testing):
- Цель: Проверить реакцию системы на данные, которые могут привести к сбоям, утечкам памяти или нарушениям безопасности.
- Примеры:
- SQL-инъекция: Ввод
' OR '1'='1в поле логина. - XSS: Ввод
<script>alert('xss')</script>в текстовое поле. - Очень большие объемы данных: Загрузка файла размером 10 ГБ.
- SQL-инъекция: Ввод
// Пример негативного тест-кейса на Java (JUnit 5) для проверки валидации email
@Test
@DisplayName("Регистрация с email без символа '@' должна возвращать ошибку")
void registration_WithInvalidEmail_ShouldReturnBadRequest() {
RegistrationRequest invalidRequest = new RegistrationRequest("invalid.email", "Password123!");
Response response = given()
.contentType(ContentType.JSON)
.body(invalidRequest)
.when()
.post("/api/register");
assertEquals(400, response.getStatusCode());
assertTrue(response.getBody().asString().contains("Invalid email format"));
}
Эти категории являются основой техник тест-дизайна, таких как анализ граничных значений и классы эквивалентности, и применяются для тестирования UI, API и бизнес-логики.