← Назад ко всем вопросам

Какие негативные сценарии обязательны

1️⃣ Как кратко ответить

Негативные сценарии, которые обязательны для тестирования, включают: ввод некорректных данных, проверка поведения системы при отказе внешних сервисов, тестирование на отказоустойчивость, проверка на обработку ошибок и исключений, тестирование на безопасность, а также проверка на устойчивость к нагрузкам и стресс-тестирование.

2️⃣ Подробное объяснение темы

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

  1. Ввод некорректных данных:

    • Проверка системы на ввод данных, которые не соответствуют ожидаемым. Например, ввод букв в поле, где ожидаются только цифры, или ввод слишком длинных строк.
    • Зачем это нужно: помогает убедиться, что система корректно обрабатывает ошибки ввода и не допускает некорректных данных в базу.
  2. Отказ внешних сервисов:

    • Тестирование поведения системы при недоступности внешних API или сервисов, от которых она зависит.
    • Зачем это нужно: гарантирует, что система сможет корректно обработать ситуацию, когда внешние сервисы недоступны, и не приведет к сбоям.
  3. Тестирование на отказоустойчивость:

    • Проверка, как система справляется с отказами компонентов, например, при отключении базы данных или сервера.
    • Зачем это нужно: позволяет убедиться, что система может продолжать функционировать или корректно восстанавливаться после отказов.
  4. Обработка ошибок и исключений:

    • Проверка, как система обрабатывает различные ошибки и исключения, например, деление на ноль или обращение к несуществующему элементу массива.
    • Зачем это нужно: помогает убедиться, что система не падает при возникновении ошибок и предоставляет пользователю понятные сообщения об ошибках.
  5. Тестирование на безопасность:

    • Проверка системы на уязвимости, такие как SQL-инъекции, XSS-атаки и другие.
    • Зачем это нужно: защищает систему от потенциальных атак и утечек данных.
  6. Устойчивость к нагрузкам и стресс-тестирование:

    • Проверка, как система ведет себя под высокой нагрузкой или в условиях, превышающих нормальные.
    • Зачем это нужно: позволяет убедиться, что система может справляться с пиковыми нагрузками и не выходит из строя.

Пример кода для тестирования ввода некорректных данных:

def test_invalid_input():
    # Предположим, у нас есть функция, которая принимает только целые числа
    def process_input(value):
        if not isinstance(value, int):
            raise ValueError("Invalid input: integer expected")
        return value * 2
​
    try:
        # Пытаемся передать строку вместо числа
        process_input("string")
    except ValueError as e:
        # Проверяем, что выбрасывается корректное исключение
        assert str(e) == "Invalid input: integer expected"
  • def test_invalid_input(): — определяем тестовую функцию для проверки некорректного ввода.
  • def process_input(value): — функция, которая принимает только целые числа.
  • if not isinstance(value, int): — проверяем, является ли входное значение целым числом.
  • raise ValueError("Invalid input: integer expected") — выбрасываем исключение, если входное значение не является целым числом.
  • process_input("string") — пытаемся передать строку, чтобы вызвать ошибку.
  • except ValueError as e: — ловим исключение и проверяем его сообщение.
  • assert str(e) == "Invalid input: integer expected" — убеждаемся, что выбрасывается корректное исключение с ожидаемым сообщением.

Тема: HTTP, REST, SOAP, WebSocket и API
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки