Ложь вверх: громкий заголовок отчёта
Проверяли страницу внешнего проекта. Отчёт открывался цифрой «16 наложений элементов на главной» — такое читается как приговор вёрстке. Пересчёт со строгим фильтром дал ноль: ни одно из шестнадцати не подтвердилось, цифра принадлежала прибору, а не странице.
| Что заявил прибор | Что оказалось на самом деле |
|---|---|
| 16 наложений на главной | 0 после строгого фильтра — ложь целиком |
| Страница не прокручивается вбок | прокрутка колесом уводит страницу вбок до отметки 130 |
| Контраст, переполнение, разрывы слов, размер зон нажатия | контроль пройден — здесь прибор не врал |
Строка про прокрутку интереснее наложений. Замер делался сразу после загрузки, когда страница ещё не отработала скрипты, и в тот момент прокрутки вбок не было. Колесом мыши она берётся. Прибор измерил правду про момент, которого читатель не застаёт.
Момент замера — часть замера. Для страницы «сразу после загрузки», «после отработки скриптов» и «после первого действия читателя» — три разных объекта. Прибор, который не сообщает, какой из них он мерил, выдаёт числа без смысла.
Ложь вниз: за ужесточение фильтра платят слепотой
Напрашивающаяся починка после четырёх классов ложных тревог — затянуть фильтр. Затянули, шум ушёл. Вместе с шумом ушли два настоящих дефекта: их поймали обе vision-модели, которым мы отдали те же кадры, и ни один не прошёл через строгое правило.
| Настройка правила | Ложные тревоги | Пропуски |
|---|---|---|
| Мягкая (как было) | 4 класса | — |
| Строгая (после починки) | наложений — 0 | 2 реальных дефекта |
| Правило + модель по кадрам | снимается фильтром | перекрывается вторым прибором |
Расплата за строгость обнаружилась только потому, что рядом работал прибор другой природы: правило смотрит в структуру страницы, модель — на картинку. Слепые зоны у них разные, и совпадение двух независимых источников стоит дороже аккуратности одного.
Тот же перекос на детекторе персональных данных
Гард ищет персональные данные в наших файлах. На географическом корпусе он дал три находки, и две из них — улицы, названные в честь людей: для правила имя человека в адресе неотличимо от имени человека в контакте.
Обратная сторона всплыла на конструкции «имя плюс суффикс населённого пункта». Казахский язык агглютинативный, суффикс прирастает к корню, и граница слова в правиле не срабатывает — первая версия гарда такие случаи пропускала. Починка оказалась не в ужесточении, а в устройстве словаря: маркеры пришлось перечислять корнями, а не целыми формами.
- Один из маркеров на корпусе переписки дал 2 ложных срабатывания из 2 — слово входило в название ходового груза. Маркер убран целиком.
- Контрольный прогон на корпусе, где персональных данных заведомо нет: 6 файлов, 0 новых ложных срабатываний.
- Каждая находка разбирается поимённо — иначе гард нельзя ни принять, ни отклонить: по трём находкам географического корпуса решение принималось по каждой отдельно.
Как принимаем детектор теперь
- Два контрольных корпуса, а не один. Где находок быть не должно — считаем ложные тревоги; где они точно есть — пропуски. Приёмка только по обоим числам сразу.
- Каждое ужесточение перемеряем на корпусе с дефектами. Тишина после правки фильтра одинаково выглядит и как победа над шумом, и как ослепление.
- Фиксируем момент замера и пишем его в отчёт рядом с числом.
- Второй прибор другой природы. Правило по структуре и модель по изображению ошибаются в разных местах — этим и полезны.
Заметная часть работы по обоим детекторам ушла не на объект, а на разбор поведения самого инструмента. Считаем это нормой: прибор, не проверенный на обе стороны ошибки, измеряет собственные настройки.
Что забрать себе
- У детектора всегда две ошибки, и лечатся они в разные стороны. Отчёт с одним числом — половина картины.
- Громкий заголовок проверяйте первым. Из «16 наложений на главной» не подтвердилось ни одного.
- Язык корпуса меняет устройство правила. Для агглютинативных языков граница слова ненадёжна, маркеры хранятся корнями.
- Правило без верных срабатываний удаляйте. Ноль пользы и постоянный шум — это отрицательная ценность, а не нейтральная.