Загадочный хлеб

Цель команды QA — не просто качественное тестирование.

И даже не тестирование правильных вещей правильными способами.

Настоящая цель — помогать командам создавать работающее программное обеспечение. Тестирование — лишь один из инструментов для достижения этой цели. Это не единственный инструмент, и зачастую это не лучший инструмент.

Многие компании сосредотачиваются только на тестировании и покрытии. Это ошибка.

У тестирования есть конкретные задачи:

  • Автоматизированные тесты обеспечивают быструю обратную связь по важным функциям.
  • Исследовательское тестирование помогает понять, как ведет себя ПО.

Однако многие команды используют тестирование, чтобы исправить всё подряд. Они используют его, чтобы закрыть пробелы, оставленные плохим планированием. Они используют его вместо мониторинга и наблюдаемости (observability).

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

Представьте, что ваше ПО — это хлеб. Ингредиенты — это то, что вам нужно еще до написания кода:

  • Четкое определение того, что должна делать программа.
  • Согласованное понимание того, как выглядит качество.
  • Понимание рисков и ограничений.

Если вы возьмете не ту муку или забудете про соль, никакое изменение формы не исправит тесто.

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

Покрытие тестами говорит вам о том, куда вы заглянули. Оно не говорит о том, важно ли то, на что вы посмотрели. Показатель покрытия в 80% не означает, что ваше ПО высококачественное. Это может означать лишь то, что у вас слишком много бесполезных тестов.

Перестаньте гнаться за показателями покрытия. Вместо этого задайте себе следующие вопросы:

  • В каких моментах поведение нашего ПО остается неизвестным?
  • Какой самый быстрый способ это выяснить?

Иногда ответом является тест. Часто ответом является разговор. Вам нужно задавать вопросы, которые все считают очевидными.

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

ИИ делает эту задачу еще сложнее. Теперь можно генерировать код и тесты без какого-либо реального понимания сути. Показатели покрытия растут, но качество остается низким. Вы пропускаете стадию замешивания теста и сразу отправляете всё в печь.

Тестирование — это лишь средство достижения цели. Покрытие — всего лишь косвенный показатель. Настоящая работа происходит на стадии «теста». Не пропускайте её.

Источник: https://dev.to/susanne_abdelrahman/mystery-bread-2526

Дополнительное обучающее сообщество: https://t.me/GyaanSetuAi