Что такое принцип ноль не ноль
Перейти к содержимому

Что такое принцип ноль не ноль

  • автор:

Что такое принцип ноль не ноль

// Основной класс для проверок: «Ноль / не ноль»

A) Ноль на входе — Число —> 5/0

B) Ноль на входе — Длина строки —> Ольга / 1 пробел, 2 пробела, пустое поле

— Авторизация —> Авторизован / Не авторизован
— Посещение —> Заходил на сайт / Ранее не заходил
— Аватар —> Загружал / Ещё не загружал
— Деньги снимал —> Да / Нет

D) Ноль на выходе

— После совершения покупки баланс уйдет в ноль.
— После обработки поле станет пустым.
— Поиск вернет ноль результатов (хотя на входе у нас непустая строка поиска).
— Отчет на указанную дату будет пустым (опять же, дата на входе была указана не-ноль).

Классы эквивалентности: будни Золушки 2015/07 okiseleva.blogspot.com
Класс эквивалентности «Ноль-не ноль» 2016/12 okiseleva.blogspot.com
Классы эквивалентности для имен 2019/10 okiseleva.blogspot.com
Заблуждения программистов об именах Habr-146901
Ивану кредит не давать! 2019/10 okiseleva.blogspot.com
Классы эквивалентности для строки, которая обозначает число software-testing.ru
Классы эквивалентности для населенных пунктов в адресах 2019/10 okiseleva.blogspot.com

c Несколько простых правил:

Если область определения параметра — диапазон, то имеет смысл выделение трех классов эквивалентности: слева от диапазона (невалидные значения), сам диапазон (валидные значения) и справа от диапазона (снова невалидные). При выделении классов нужно использовать включающие границы с целью однозначности и точности: одно и то же значение не может относиться к двум классам одновременно.
Если область определения — набор неупорядоченных данных, то всегда можно выделить как минимум два класса — валидные и невалидные значения. Полученное разбиение можно «дробить» дальше. Например, множество латинских букв можно разбить на два подмножества: латиница в верхнем и нижнем регистре соответственно.

Класс эквивалентности «Ноль-не ноль»

Именно в нуле любят собираться ошибки. На сайте вроде просто поле, а где-то внутри система делит на него при подсчете процента покупки. Подставил ноль — все сломалось. Профит! Баг! Или продуман только позитивный сценарий — всегда заказывают больше нуля книг / пицц / настолок. Ввел ноль, а код обработки значения не написан. Опять сломалось… Или оставил поле пустым, а система тебе БАЦ, и эксепшен…

Поэтому тестируй ноль! Где? Давайте посмотрим.

Поле ввода — цифры есть

Числовое поле

Тут все просто. Если видим числовое поле, пробуем ноль

3

Число книг: ноль / не ноль.

Кол-во пар обуви: ноль / не ноль.

Возраст пациента: ноль / не ноль.

Номер заказа: ноль / не ноль.

Выручка в рублях: ноль / не ноль.

Коэффициент похожести: ноль / не ноль.

2

Заказ книг на OZON. Количество товара — числовое поле

Это логично, такую проверку делают многие. Легко найти число в числовом поле!

Но что, если поле не числовое? Сразу затык.

Длина строки

Можно ли применить классы эквивалентности «ноль-не ноль» там, где числа исходно нет? Если мы вводим не числа, а буквы?

Тут нет чисел, только строковые поля

Конечно, можно! Кладем наше поле на числовую ось и получаем класс «длина строки». Та-а-а-ак, допустимое имя по ТЗ — от 3 до 6 символов. Окей, а как насчет нуля? Что будет, если оставить строку пустой? Так мы применяем класс «ноль-не ноль».

Длина имени: ноль / не ноль.

Длина эл почты: ноль / не ноль.

Длина пароля: ноль / не ноль.

Длина названия организации: ноль / не ноль.

Состояние объекта — цифр нет

Легко подставить ноль туда, где есть цифры. Несложно положить символьную строку на числовую ось и найти границы по длине строки. Что будет, если оставить строку пустой? А если заполнить? А если ввести только один символ (пограничное значение)?

Число книг: ноль / не ноль.

Символов в имени: ноль / не ноль.

Сложно применить класс «ноль / не ноль» там, где вроде бы нет цифр. И даже длины строки нет. В итоге тестировщик Вася ловит баг, но не может потом воспроизвести. Потому что не локализовал, не нашел точное условие → не записал его в шаги → задачу отложили → спустя месяц по шагам автора уже не воспроизводится, потому что его учетку удалили. А проблема была в ней, ведь Вася оплачивал продукты по PayPal до того, как возможность прикрыли. И забыли отмигрировать данные. На новой учетке даже возможности оплатить по PayPal нету (ноль) → баг не воспроизведется, ведь нам нужна учетка, где количество оплат по PayPal «не ноль».

И сидят Вася с Петей-разработчиком, копаются в логах, пытаются понять, как воспроизвести проблему. Или еще хуже — пожимают плечами, «А! Видимо, само починилось в рамках другой задачи» и закрывают баг как Cannot reproduce. И душа спокойна — теперь то работает! До тех пор, пока у реального пользователя баг не выстрелит. И тогда начнется паника, БЛОКЕР-приоритеты и все такое. А потом Петя поймет, в чем дело было, да даст Васе подзатыльник — сразу надо было про «ноль-не ноль» думать!

Учитесь видеть «ноль-не ноль» не только в числах и длине строк, но и в состояниях объекта:

Пользователь авторизован / не авторизован.

Заходил на сайт ранее / не заходил.

Заполнял профиль / не заполнял.

Аватарку загружал / не грузил.

Деньги снимал / не снимал.

Это самые крутые примеры класса, потому что о них не задумываются. Их пропускают. И именно поэтому их надо проверять. Как при поиске багов, так и при локализации конкретной ошибки: «Так-с, упало. А это всегда так или только при первом просмотре (раньше не смотрел — ноль, уже видел — не ноль)?».

Ноль на выходе

Не забывайте — ноль может быть не только на входе, но и на выходе!

— Ввести ноль в числовое поле,

— Оставить строку символов пустой.

— После совершения покупки баланс уйдет в ноль.

— После обработки поле станет пустым.

— Поиск вернет ноль результатов (хотя на входе у нас непустая строка поиска).

— Отчет на указанную дату будет пустым (опять же, дата на входе была указана не-ноль).

Пример

Посмотрим на примере Дадаты. Там куча нестандартных мест для проверки нашего класса «ноль-не ноль».

При регистрации у нас три унылых символьных поля, там все просто — поле заполнено или нет. Давайте найдем все классы с нулем для обработки файлов!

После авторизации появляется форма загрузки — https://dadata.ru/clean/.

4

1. Выбор файла (а вдруг пустой?)

Выбираем файл — Дадата отображает структуру. Если она вдруг неправильно определила тип, его всегда можно изменить в выпадающем списке:

5

2. Структура. Тут можно найти ноль?

Проверив структуру, переходим к предварительному результату. Если все ок, оплачиваем и получаем итоговый файл.

6

3. Предварительные результаты.
Они могут быть пусты, или баланс нулевой

— Файл может быть пустой: ноль строк, ноль колонок. Ок.

— Система распознает первую строку как шапку. А что, если у нас будет ноль «значимых» строк?

— Мы платим за обработку — а что, если у нас ноль рублей на счету? А что, если после обработки у нас станет ноль или даже меньше? Помним о том, что ноль может быть не только на входе, но и на выходе.

— А что, если у нас на выходе будет ноль данных? Если мы под видом ФИО пришлем фигню из серии “12345”? Да, колонки будут, но пустые же!

— А что, если на выходе вообще ничего? Присмотритесь к структуре, там же есть кнопка «Исключить столбец»! А что, если мы исключим все столбцы и получим на выходе ноль?

7

Столбцы можно исключать. И получить НОЛЬ на выходе!

Проверьте себя, найдите все нули в:

— форме обработки по одному человеку;

Чур, спойлеры в комментах не писать! =)

Просто в следующий раз, тестируя свою систему, вспомните о том, что ноль есть не только в числах и длинах полей. Ищите его там, где другие не ищут!Другие примеры:
— Период сегодня-вчера, если он длится 0 дней
— Применение класса «ноль-не ноль» при подключении к JMS
— Как пустой JSON вешает библиотечку Axis

Что такое принцип ноль не ноль

Класс эквивалентности «Ноль-не ноль» Именно в нуле любят собираться ошибки. На сайте вроде просто поле, а где-то внутри система делит на него при подсчете процента… Подробнее » Что такое принцип ноль не ноль

Что такое простейший поток

  • автор: admin
  • 27.07.2023

2.7.2. Простейший поток Среди всех возможных потоков при исследовании СМО особую роль играет поток, который называется простейшим. Такое название потока связано с тем, что математическое… Подробнее » Что такое простейший поток

Что такое правило ладони

  • автор: admin
  • 27.07.2023

Методы определения площади ожога 1). Правило ладони(метод И.И. Глумова) применяется для оценки небольших ожогов: площадь ладони человека = 1% площади его тела. 2). Правило “девяток”(метод… Подробнее » Что такое правило ладони

Что такое поляризация клеток

  • автор: admin
  • 27.07.2023

6 Пассивные электрические свойства биообъектов 6.1 Электропроводность клеток и тканей для постоянного тока Электропроводность L – это величина, обратная сопротивлению проводника (R): Сопротивление выражается формулой:… Подробнее » Что такое поляризация клеток

Что такое потеря напряжения в проводах

  • автор: admin
  • 27.07.2023

Потери напряжения в проводах При передаче электрической энергии по коротким проводам сопротивлением их можно пренебречь. При большой длине их (L>10 М) сопротивлениемпроводов пренебрегать нельзя, так… Подробнее » Что такое потеря напряжения в проводах

Что такое принцип ноль не ноль

Класс эквивалентности «Ноль-не ноль» Именно в нуле любят собираться ошибки. На сайте вроде просто поле, а где-то внутри система делит на него при подсчете процента… Подробнее » Что такое принцип ноль не ноль

Что такое простейший поток

  • автор: admin
  • 27.07.2023

2.7.2. Простейший поток Среди всех возможных потоков при исследовании СМО особую роль играет поток, который называется простейшим. Такое название потока связано с тем, что математическое… Подробнее » Что такое простейший поток

Что такое присоединение в электроустановках

  • автор: admin
  • 27.07.2023

Что представляет собой бригада? Численность бригады и её состав должны определяться исходя из условий выполнения работы, а также возможности обеспечения надзора за членами бригады со… Подробнее » Что такое присоединение в электроустановках

Что такое приведенный автомат

  • автор: admin
  • 27.07.2023

Продолжение функций и на слова Пусть — алфавит. Определение. Словом длины , , над алфавитом называется любая конечная последовательность длины элементов множества . Для обозначения… Подробнее » Что такое приведенный автомат

Что такое проводники и диэлектрики

  • автор: admin
  • 27.07.2023

Проводники и диэлектрики в электрическом поле Внесение некоторого вещества в электрическое поле может привести к существенному его изменению; это обусловлено тем, что вещество составляют заряженные… Подробнее » Что такое проводники и диэлектрики

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *