Разделы портала

Онлайн-тренинги

.
Логические ошибки для тестировщиков, часть 10: двусмысленность
08.11.2023 00:00

Автор: Кристин Джеквони (Kristin Jackvony)
Оригинал статьи
Перевод: Ольга Алифанова

Двусмысленность – это техника, позволяющая заморочить людям голову при помощи неточного языка. В английском языке множество слов, имеющих несколько значений – скажем, «light» может означать «светлый», а может «легкий». Двусмысленность можно также применять, будучи намеренно неоднозначным, говоря о времени или количестве. Дети отлично пользуются двусмысленностью, как мы увидим в примере ниже.

Когда я была намного моложе, то давала уроки игры на рояле, а студентами в основном были дети. Каждый из них получал книгу упражнений, из которой я брала задание на неделю. Я ожидала, что каждый студент будет практиковаться пятнадцать минут в день, шесть дней в неделю, и в книжке была специальная табличка, куда можно было заносить время практики.

Мне открылось множество способов двусмысленно описать практику игры на пианино! Когда мать ребенка спрашивала дочку, практиковалась ли она, то могла получить ответ «Да». При детальном изучении вопроса оказывалось, что она практиковалась, но вчера. Другие ученики отмечали время, проведенное на скамейке за роялем в разглядывании улицы, как «практику». Некоторые действительно играли, но не то, что было задано – и тоже называли это «практикой». Один креативный юноша записал одну пятнадцатиминутную сессию и проигрывал ее на магнитофоне ежедневно, чтобы мама слышала, как он «занимается».

То же самое происходит и в тестировании. Множество терминов используется двояко, чтобы сообщить о глубине проведенного тестирования, которая на деле отсутствовала. Вот примеры:

  • «Покрытие кода»: команда хвастается 95%-ым покрытием кода, хотя многие юнит-тесты просто возвращают true вне зависимости от своего состояния.
  • «Покрытие автоматизации»: утверждение о 100% покрытии автоматизации может означать, что прогоняется всего десять ручных тестов – и все они автоматизированы.
  • «Тест-план»: может значить что угодно, и многостраничный документ, и идею для нескольких тестов, которая озарила тестировщика, пока он мыл голову.
  • «Сводная таблица результатов тестирования»: это инструмент, который демонстрирует прошлые успехи и провалы и подсвечивает нестабильные тесты, или же просто разноцветная страничка, на которой нет никакой значимой информации?
  • «Непрерывный деплой»: в некоторых командах это значит «при коммите кода он автоматически идет на прод», а в некоторых – «после подачи запроса на контроль изменений код оценивается, принимается и ставится в расписание, а затем идет на прод».

Могу продолжать бесконечно. Даже вокруг слова «тестирование» ведутся горячие споры. Автоматизированные скрипты, которые проверяют функциональность приложения – это «тесты» или «проверки»? Я говорю не об общих определениях для всех и каждого. Я говорю о том, что очень легко быть двусмысленным, создавая ложное впечатление о качестве ПО.

Как тестировщики, мы обязаны нашим пользователям быть честными, говоря о своем тестировании. Это значит, что надо сообщать команде о своей деятельности, используя ясные определения и метрики.

Обсудить в форуме