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

Что такое negative testing

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

Negative testing — это метод тестирования программного обеспечения, направленный на проверку его поведения в условиях некорректного или неожидаемого ввода данных. Цель — убедиться, что система корректно обрабатывает ошибки и не выходит из строя при получении неверных данных.

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

Negative testing, или негативное тестирование, — это процесс проверки программного обеспечения на устойчивость к ошибкам и некорректным данным. В отличие от позитивного тестирования, где проверяется, что система работает правильно при корректных входных данных, негативное тестирование фокусируется на том, как система справляется с ошибками и аномалиями.

Зачем нужно негативное тестирование?

  1. Устойчивость системы: Обеспечивает, что система не выйдет из строя при некорректных данных.
  2. Безопасность: Помогает выявить уязвимости, которые могут быть использованы злоумышленниками.
  3. Качество: Повышает общее качество продукта, гарантируя, что он ведет себя предсказуемо в любых условиях.

Где применяется?

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

Как работает негативное тестирование?

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

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

Пример кода

Рассмотрим пример негативного тестирования на Java, где мы проверяем метод, который должен выбрасывать исключение при делении на ноль.

public class Calculator {
    // Метод для деления двух чисел
    public int divide(int numerator, int denominator) {
        // Проверка делителя на ноль
        if (denominator == 0) {
            // Если делитель равен нулю, выбрасываем исключение
            throw new ArithmeticException("Cannot divide by zero");
        }
        // Возвращаем результат деления
        return numerator / denominator;
    }
}
​
public class CalculatorTest {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
​
        try {
            // Попытка деления на ноль
            calculator.divide(10, 0);
        } catch (ArithmeticException e) {
            // Ожидаемое поведение: исключение должно быть поймано
            System.out.println("Test passed: " + e.getMessage());
        }
    }
}
  • Calculator: Класс, содержащий метод divide, который выполняет деление двух чисел.
  • divide: Метод, который принимает числитель и знаменатель. Если знаменатель равен нулю, выбрасывается исключение ArithmeticException.
  • CalculatorTest: Класс для тестирования метода divide.
  • try-catch блок: Используется для проверки, выбрасывается ли исключение при делении на ноль. Если исключение поймано, тест считается пройденным.

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

Тема: Тестирование
Стадия: Tech

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

Твои заметки