Что такое принцип "Ноль-не ноль" в тестировании?
☝ Принцип "Ноль-не ноль" в тестировании говорит о том, что ноль на входе не всегда даёт ноль на выходе и наоборот. Это важная концепция для тестирования, потому что она помогает понять, как система будет вести себя в разных ситуациях, особенно при работе с "непредсказуемыми" или некорректными данными.
1 Ноль на входе, не ноль на выходе
Если в поисковой системе не ввести запрос (передать "нулевой" запрос), система может вернуть все доступные данные. То есть "нулевой" запрос приводит к не нулевому результату (например, все записи).
2 Не ноль на входе, ноль на выходе
Если запрос не находит результатов (например, мы ищем данные, которых нет в базе), на выходе мы получим пустой результат — ноль.
💡 Почему это важно?
Этот принцип помогает тестировщикам проверить, как система обрабатывает крайние случаи и какие результаты она выдаёт при неожиданных или некорректных данных.
Этот принцип подчеркивает, что при обработке данных системой "нулевой" вход (например, отсутствие данных или пустой ввод) не всегда должен приводить к нулевому или пустому выходу. То же касается и противоположного случая — не все запросы с ненулевыми данными должны приводить к ненулевым результатам.
Принцип "Ноль-не ноль" помогает протестировать систему на её способность обрабатывать различные типы вводных данных и предсказывать неожиданные или нестандартные ответы, что важно для обеспечения устойчивости и надежности ПО.
Примеры:
1. Ноль на входе, не ноль на выходе:
- Поиск без запроса: Когда пользователь не вводит текст в поле поиска и нажимает кнопку "поиск" (например, в интернет-магазине), система может вернуть список всех товаров. То есть, мы вводим "нулевой" запрос (пустое поле), а на выходе получаем полный список товаров. Это пример того, как отсутствие данных на входе приводит к значимому результату на выходе.
- Пустая форма (запрос на создание нового элемента): Если мы отправляем форму с пустыми полями (например, форму для создания нового пользователя), система может создать "пустого" пользователя с автоматически сгенерированными значениями (например, с временным именем "Пользователь 1"). В данном случае мы передаем "нулевые" данные, но система может выдать результат, отличающийся от пустоты.
- Пустой запрос в базе данных: При отсутствии условий в SQL-запросе (например, "SELECT * FROM users WHERE age =") база данных может вернуть весь список пользователей, даже если не было передано никакого значения для поля "age". В данном случае запрос с "нулевым" значением возвращает данные.
2. Не ноль на входе, ноль на выходе:
- Поиск по несуществующему запросу: Когда пользователь вводит запрос, который не имеет совпадений в базе данных (например, поиск по имени "Иванов" в базе, где нет таких данных), система вернет пустой результат (например, "ничего не найдено"). В данном случае мы вводим ненулевой запрос, но на выходе получаем пустую строку, то есть "ноль".
- Запрос с неверными параметрами: При попытке провести операцию в системе, где введены некорректные или несуществующие данные (например, вводить номер телефона в формате, который не поддерживается), система может вернуть ошибку или пустой ответ. Например, пользователь пытается купить товар, но введенный код скидки не существует — в результате система не применяет скидку, и итоговая цена остается такой же, как и без скидки (ноль изменения).
- Проверка баланса пользователя: Например, если у пользователя на счету ноль денег, система может отобразить "0", хотя был введен запрос с положительным числом — результат будет ноль, потому что на счету нет средств.
3. Смешанные случаи:
- Пустой запрос в API: Если API запроса не получает параметров или передаются "нулевые" значения (например, пустая строка или значение null), ответ может быть не пустым. Например, API может вернуть весь список объектов или стандартный набор данных. Таким образом, ноль на входе не всегда приводит к нулю на выходе.
- Отправка пустой формы на сервер: Когда пользователь отправляет форму без заполненных данных, сервер может обработать запрос и вернуть ошибку о необходимости заполнения обязательных полей, а не пустой ответ.
4. Ноль на входе, ноль на выходе (естественное поведение системы):
- Попытка получить несуществующий ресурс: Запрос на удаление несуществующего объекта в базе данных может вернуть ответ, что объект не найден и ничего не удалено. То есть, на входе был запрос с ненулевым значением (идентификатор ресурса), а на выходе система вернула "нулевой" результат — ничего не произошло.
- Пустой запрос с нулевыми результатами: Например, запрос на поиск по тегам, которых нет в базе данных (например, поиск по тегу "не существует"), может вернуть пустой список — ноль на входе и ноль на выходе.
Зачем важно учитывать принцип «Ноль-не ноль»?
Этот принцип необходим для того, чтобы гарантировать правильность работы системы при самых разных вводных данных:
- Обработка нулевых значений (пустых, пустых строк или несуществующих данных) в реальной жизни — частая ситуация.
- Он помогает обнаружить ошибки и дефекты, когда система неверно реагирует на пустые или неожиданно сформированные запросы.
- Тестирование на основе этого принципа помогает убедиться, что система будет правильно работать в любых случаях, даже когда пользователь не введет данных или введет ошибочные значения.
✍ Подпишитесь на канал QA❤4Life, чтобы быть в курсе последних IT-событий и не пропустить ещё больше полезных материалов! https://t.me/QA4Life