На какие категории делятся тест-кейсы по корректности данных?

«На какие категории делятся тест-кейсы по корректности данных?» — вопрос из категории Техники тест-дизайна, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тест-кейсы для проверки обработки данных традиционно делятся на три основные категории:

  1. Позитивное тестирование (Positive Testing):

    • Цель: Проверить, что система корректно обрабатывает валидные данные, соответствующие спецификации.
    • Пример: Ввод email user@example.com в поле регистрации. Ожидается успешное создание аккаунта.
  2. Негативное тестирование (Negative Testing):

    • Цель: Проверить, что система корректно обрабатывает невалидные, ошибочные или неожиданные данные, демонстрируя устойчивость (robustness).
    • Включает: Проверку граничных значений, неверных типов данных, пустых полей, нарушений бизнес-правил.
    • Пример: Ввод userexample.com (без @) в поле email. Ожидается понятное сообщение об ошибке валидации.
  3. Деструктивное тестирование (Destructive Testing):

    • Цель: Проверить реакцию системы на данные, которые могут привести к сбоям, утечкам памяти или нарушениям безопасности.
    • Примеры:
      • SQL-инъекция: Ввод ' OR '1'='1 в поле логина.
      • XSS: Ввод <script>alert('xss')</script> в текстовое поле.
      • Очень большие объемы данных: Загрузка файла размером 10 ГБ.
// Пример негативного тест-кейса на 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 и бизнес-логики.