В прошлом уроке мы разбирали пять характеристик хорошего требования — и одна из них, проверяемость, страдает чаще всего. Хорошая новость: непроверяемость обычно не нужно вычислять заново каждый раз с нуля — она почти всегда выдаёт себя одними и теми же словами. Дальше — конкретный список таких слов и что делать, когда требование вообще ничего не написало словами, а подразумевало.
Чему научишься за этот урок:
— находить в требовании конкретные слова-маркеры неопределённости («быстро», «удобно», «и т.д.» и другие);
— переформулировать маркер в измеримый критерий;
— распознавать четыре источника требований, которые не написаны словами, но подразумеваются.
Маркеры неопределённости
Маркер неопределённости — это слово или конструкция, которая почти всегда сигналит: здесь требование непроверяемо или неоднозначно. Таких маркеров четыре вида.
- Расплывчатые прилагательные. «Быстро», «удобно», «красиво», «интуитивно понятно». Ни одно из этих слов не содержит числа, состояния или действия, которое можно зафиксировать в тест-кейсе.
- Расплывчатые перечисления. «И т.д.», «и другие», «при необходимости», «в случае надобности». Список обрывается, не сказав, что именно осталось за кадром.
- Пассивный залог без указания субъекта. «Данные должны обрабатываться» — кем обрабатываться? В какой момент? При каком событии? Пассивная форма прячет и исполнителя, и условие срабатывания.
- Незакрытые ссылки. «Это должно работать как обычно» — а как именно «обычно»? Ссылка на неявный прецедент, который нигде не расписан, оставляет решение на усмотрение того, кто реализует требование.
Метод работы с маркером простой: не пытаться додумать, что имелось в виду, а прямо спросить или заменить маркер на измеримый критерий. «Быстро» → «ответ сервера не более 2 секунд». «Удобно» → конкретное действие в 1 клик или чёткий чек-лист юзабилити. «И т.д.» → явный полный список без сокращений.
Маркер -> измеримая замена: +---------------------------+---------------------------------------------+ | "быстро" | ответ сервера не более 2 секунд | +---------------------------+---------------------------------------------+ | "удобно" | нужное действие выполняется за 1 клик, | | | либо конкретный чек-лист юзабилити | +---------------------------+---------------------------------------------+ | "и т.д." | явный полный список вариантов без сокращений | +---------------------------+---------------------------------------------+ | "данные должны | система X обрабатывает данные Y при событии | | обрабатываться" (пассив) | Z (указан исполнитель и момент) | +---------------------------+---------------------------------------------+ | "работать как обычно" | явно повторить точное правило из раздела, | | (незакрытая ссылка) | на который идёт отсылка | +---------------------------+---------------------------------------------+ | "интуитивно понятно" | пользователь находит нужную функцию не | | | более чем за N кликов без подсказки | +---------------------------+---------------------------------------------+
Источники неявных требований
Маркеры ловят то, что написано плохо. Но есть требования, которые вообще не написаны словами, — они подразумеваются сами собой, и их приходится достраивать из контекста, а не ждать, что кто-то распишет. Источников четыре.
- Отраслевые стандарты. Для веб-формы подразумевается работа в основных браузерах, даже если это нигде не написано. Требование «форма должна отправляться» молча включает в себя «и в Chrome, и в Safari, и в Firefox».
- Правовые нормы. Форма, которая собирает email и телефон, молча подразумевает соответствие законодательству о персональных данных (152-ФЗ в РФ) — даже если ни одно требование об этом не упоминает.
- Пользовательские конвенции. Кнопка «Отмена» должна отменять действие, а не подтверждать его — этого никто не пишет отдельным требованием, но любой пользователь ждёт именно такого поведения.
- Согласованность с уже существующим поведением продукта. Если в одном разделе продукта поле обязательно для заполнения, а в требовании к похожему полю в другом разделе явно не сказано иное — по умолчанию ожидается то же самое поведение, а не произвольно другое.
Практика на полигоне: находим маркеры
На нашем учебном полигоне в задаче на проверку промокода дано требование: «Форма должна быстро и удобно проверять промокод, а в случае ошибки выводить понятное сообщение». На вид требование как требование — есть даже условие на случай ошибки. При разборе по списку маркеров видно три слова-ловушки: «быстро», «удобно», «понятное сообщение» — ни одно из них не даёт числа или конкретного состояния.
Рабочая замена: «быстро» → «результат проверки промокода отображается не более чем через 1 секунду после ввода»; «удобно» → «поле промокода находится на той же странице оплаты, без перехода на отдельный экран»; «понятное сообщение» → конкретный текст ошибки, например «Промокод не найден» или «Промокод уже использован», а не общее «Ошибка». После такой замены у требования появляется три отдельных проверяемых условия вместо одного расплывчатого.
Итог:
— маркеры неопределённости — конкретный, выучиваемый список слов (расплывчатые прилагательные, расплывчатые перечисления, пассив без субъекта, незакрытые ссылки), по которым можно быстро найти дыры в требовании;
— каждый маркер переформулируется в измеримый критерий по одному и тому же методу: заменить общее слово на число, состояние или явный список;
— неявные требования нужно достраивать из контекста (стандарты, законы, пользовательские конвенции, согласованность продукта), а не ждать, что их распишут словами.
Контрольный вопрос. В требовании написано: «Форма оплаты должна работать быстро». К какому виду маркеров неопределённости относится слово «быстро»?
Подсказка: Слово не содержит числа или состояния, которое можно зафиксировать в тест-кейсе, — это качественная, а не количественная оценка.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. В требовании к способам оплаты написано: «Доступны карта, СБП и т.д.». К какому виду маркеров неопределённости относится «и т.д.»? Ответь двумя словами.
Подсказка: Список обрывается, не сказав явно, что именно осталось за кадром.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Требование гласит: «Данные о платеже должны обрабатываться». Не указано, кто обрабатывает и при каком событии. К какому виду маркеров это относится?
Подсказка: Обрати внимание на форму глагола — действие есть, а исполнитель и момент срабатывания не названы.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. В требовании написано: «Уведомление об оплате должно отправляться как обычно». К какому виду маркеров относится фраза «как обычно»? Ответь двумя словами.
Подсказка: Фраза отсылает к какому-то прецеденту, но не расписывает, что конкретно этот прецедент означает.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Требование «Ответ на запрос промокода должен приходить быстро» нужно переформулировать в измеримый критерий. Какой из вариантов ниже действительно измерим?
Подсказка: Измеримый критерий содержит конкретное число или единицу времени, а не оценочное слово.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. «Удобно», «красиво», «интуитивно понятно» — как называется этот вид маркеров неопределённости? Ответь двумя словами.
Подсказка: Все три слова — это оценочные определения без числа или конкретного состояния.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Требование к веб-форме нигде не упоминает список браузеров, но подразумевается, что форма должна работать в основных браузерах. Как называется источник этого неявного требования? Ответь двумя словами.
Подсказка: Это источник, связанный с общепринятыми техническими нормами для данного типа продукта, а не с законом или пользовательскими ожиданиями.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. В требовании «Форма должна быстро и удобно проверять промокод, а в случае ошибки выводить понятное сообщение, и т.д.» есть несколько маркеров неопределённости. Какие фрагменты действительно являются маркерами (выбери все подходящие)?
Выберите все верные варианты.
Подсказка: Проверь каждый фрагмент: содержит ли он число, конкретное состояние или явный список — или это оценочное слово без измерения.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Задание. Требование «Промокод должен проверяться удобно» нужно переформулировать в измеримый критерий. Предложи одну конкретную измеримую замену для слова «удобно».
Критерий приёмки: ответ содержит конкретное измеримое условие — либо число кликов/шагов, либо явное расположение элемента на экране, либо конкретный пункт чек-листа юзабилити (например: «поле промокода находится на той же странице оплаты, без перехода на отдельный экран»), а не повтор слова «удобно» другими словами вроде «приятно» или «просто».
Подсказка: Подумай, что именно пользователь должен увидеть или сделать, чтобы можно было сказать «это удобно» — переведи ощущение в действие или расположение.
✅ Готово, если: ответ раскрывает то, что просит критерий приёмки в задании выше.
Онлайн-проверка ответа появится позже
Задание. На полигоне в разделе оплаты все поля формы обязательны для заполнения. В требовании к разделу записи на курс про поле «Комментарий к заявке» ничего не сказано про обязательность. Какой источник неявных требований подсказывает, что поле «Комментарий к заявке», скорее всего, тоже должно быть необязательным или обязательным по аналогии с уже принятым в продукте поведением (а не как получится)? Назови источник и объясни одним предложением, почему он здесь применим.
Критерий приёмки: назван источник «согласованность с уже существующим поведением продукта» (или явный эквивалент этой формулировки); дано объяснение, что раз явно не сказано иное, поведение нового поля должно соответствовать уже принятому в других разделах продукта, а не выбираться произвольно.
Подсказка: Вспомни четыре источника неявных требований — какой из них говорит про поведение, унаследованное от других разделов продукта.
✅ Готово, если: ответ раскрывает то, что просит критерий приёмки в задании выше.
Онлайн-проверка ответа появится позже
Задание. На учебном полигоне в задаче на проверку промокода дано требование: «Форма должна быстро и удобно проверять промокод, а в случае ошибки выводить понятное сообщение». Найди ВСЕ маркеры неопределённости в этом требовании (их минимум три) и для КАЖДОГО предложи измеримую замену.
Критерий приёмки: найдены минимум три маркера — «быстро», «удобно», «понятное сообщение» (или эквивалентные формулировки для тех же трёх фрагментов); для каждого маркера дана отдельная измеримая замена, содержащая конкретное число, состояние или явный текст (например: «быстро» → результат отображается не более чем через 1 секунду; «удобно» → поле находится на странице оплаты без перехода на отдельный экран; «понятное сообщение» → конкретный текст ошибки вида «Промокод не найден» вместо общего «Ошибка»); общие фразы без числа/конкретики не засчитываются как измеримая замена.
Подсказка: Пройди по требованию слово за словом и проверь каждое прилагательное и оценочное словосочетание на список из четырёх видов маркеров.
✅ Готово, если: ответ раскрывает то, что просит критерий приёмки в задании выше.
Онлайн-проверка ответа появится позже
Что дальше
Маркеры неопределённости и источники неявных требований помогают найти дыры в отдельном требовании. Но правка формулировок — это ручная, штучная работа уже после того, как дефект найден. Следующий урок — о том, почему выгоднее ловить такие дефекты как можно раньше, ещё в тексте требования, и что это в принципе за отдельный вид тестирования — статическое.
