Oct 24 16:29 · AI content
Один тест пропустил три ошибки. Почему зелёной галочки недостаточно
В небольшом проверяемом эксперименте есть правило доставки: ниже суммы 5 000 условных денежных единиц доставка стоит 500, начиная с 5 000 — бесплатно. Все суммы целые; это учебный пример, а не тариф магазина.
Проверка только одна: для суммы 6 000 доставка должна быть бесплатной.
Правильная функция проходит тест. Но его проходят и три ошибочных варианта: бесплатная доставка всегда; платная доставка ровно на пороге; неправильная стоимость ниже порога.
Почему тест ничего не заметил
Все варианты правильно отвечают на единственный заданный вопрос. Код проверки работает, но выбранный пример не отличает правильное решение от этих ошибок.
Вместо просьбы «добавь ещё тестов» полезно назвать возможные дефекты и проверить, замечает ли их набор испытаний.
Три случая вместо одного
В нашем примере ожидаемые результаты такие:
— сумма 4 999: доставка 500;
— сумма 5 000: доставка 0;
— сумма 6 000: доставка 0.
— сумма 5 000: доставка 0;
— сумма 6 000: доставка 0.
Этот набор пропускает правильную функцию и отклоняет каждый из трёх ошибочных вариантов. Проверка выполнена в Node.js; речь только об этой модели правила, без оценки реального магазина или сравнения моделей.
Такая техника похожа на ручной начальный шаг мутационного тестирования: намеренно меняем реализацию и наблюдаем, какие проверки обнаружили изменение. Описание подхода и терминов:
https://stryker-mutator.io/docs/General/faq/
https://stryker-mutator.io/docs/General/faq/
Что спросить при проверке кода
Если помощник написал и функцию, и тест, он может дважды пропустить одну границу. Согласие этих двух частей само по себе не подтверждает требование.
Сформулируйте запрос конкретно: «Назови три правдоподобные ошибки в этом правиле. Внеси каждую отдельно и покажи, какое утверждение падает».
Начните с одного важного правила: права доступа, граница тарифа, отклонение неверного импорта. Ожидаемый результат должен следовать из требований. Если его никто не может объяснить, сначала уточните само правило.
Соберите подтверждения перед выпуском
В Launch Control Desk можно записать сценарий, ожидаемый результат, фактическую проверку, ответственного и оставшийся риск. Это локальный инструмент подготовки небольшого запуска, а не автоматический тестировщик.
В комплекте приложение RU/EN, инструкции и примеры. Распакуйте ZIP и откройте index.html. Выгружайте JSON-копии отдельно.
1 190 ₽ разово, без обязательной подписки внутри приложения.
Купить Launch Control Desk:
https://boosty.to/swiftuidev/posts/68708fd5-1dad-4ed3-ac0c-3356d796a00f?utm_source=boosty&utm_medium=post&utm_campaign=tests_20261024
Купить Launch Control Desk:
https://boosty.to/swiftuidev/posts/68708fd5-1dad-4ed3-ac0c-3356d796a00f?utm_source=boosty&utm_medium=post&utm_campaign=tests_20261024
Я Даниил Корнилов, автор Kornilov Tools. Подпишитесь на блог и Telegram: показываю проверяемые примеры, разбираю ошибки в продуктах и выпускаю инструменты для разработчиков и фрилансеров.
https://t.me/SwiftUIDaily
https://t.me/SwiftUIDaily
Какую ошибочную реализацию ваши тесты сейчас пропустят?
kornilovtools