Здоровые тест-привычки |
20.12.2021 00:00 |
Автор: Кристин Джеквони (Kristin Jackvony) Каждый пытавшийся заняться своим здоровьем знает, что здоровье начинается со здоровых привычек: уход за зубами, регулярный спорт, здоровая диета, и так далее. Быстрые решения вроде таблеток для похудения и вялой пробежки вокруг квартала улучшают ситуацию на время, но на получение долгоиграющих результатов работают только здоровые привычки. Недавно я осознала, что то же самое верно и для качества ПО! Недостаточно хвастать новенькой системой управления кейсами или внедрять последний тест-фреймворк: настоящее качество ПО – это результат здоровых тест-привычек! Ниже – шесть здоровых тест-привычек, которые стоит внедрить в вашей команде. Привычка 1: проверяйте ваши ночные тесты и исправляйте все падения Многие тестировщики пишут автотесты, предназначенные для ночного запуска. Однако сколько из них проверяют и исправляют упавшие тесты? Зачастую наши ночные прогоны становятся хранилищами посредственных тестов; если большая часть проходит успешно, то мы предполагаем, что все в порядке, и игнорируем нестабильные тесты. При таком тест-наборе вы никогда не узнаете, что у вас действительно есть проблемы. Поставьте своей целью ноль нестабильных тестов. Проверяйте ваши ночные прогоны с утра, и перепроверяйте все падения. Если вы заметите ложноотрицательные результаты в конкретных тестах, исправьте их, чтобы они были стабильными. В результате вы получите ночные тесты, на которые действительно можно положиться. Привычка 2: запускайте юнит- и интеграционные тесты с каждым билдом Надеюсь, что разработчики вашей команды пишут юнит-тесты для своего кода! Когда юнит-тесты запускаются при каждом коммите кода, они дают крайне быструю обратную связь. Интеграционные тесты тоже очень полезны, помогая команде отследить потенциальную потерю связи с базой данных или API другой команды. Настройте вашу систему билдов так, чтобы каждый билд запускал ваши юнит- и интеграционные тесты, и падал, если тесты падают. Вам понравится то, как этот подход бережет вас от багов на проде. Привычка 3: настройте регулярные проверки безопасности Проблемы безопасности могут возникнуть неожиданно. Недавно злоумышленники начали активно искать и эксплуатировать пакетные уязвимости. Один из способов избежать уязвимых пакетов или других дыр в вашем коде – это периодическое сканирование кода. На рынке множество автоматизированных инструментов сканирования, как платных, так и бесплатных. Вы можете настроить их на еженедельный запуск и предупреждение о любых возможных уязвимостях. Не забывайте, что вы можете настраивать вашу собственную автоматизацию безопасности, чтобы следить за контролем доступа и плохой конфигурацией безопасности. Привычка 4: прогоняйте нагрузочные тесты перед релизом Знаете ли вы, как ваше приложение ведет себя под нагрузкой? Надеюсь, что вы прогоняли нагрузочные тесты хотя бы раз. Но помните, что каждый раз, когда поведение приложения меняется – к примеру, добавляется новый API или меняется запрос к базе данных, - производительность может тоже измениться. Здоровая привычка к нагрузочному тестированию включает проверку нагрузки перед релизом любых изменений. Если производительность значительно просела, это надо исследовать и внести необходимые изменения. Привычка 5: регулярно пингуйте ваш API То, что вчера вечером ваш API верно работал, и то, что он верно работал в прошлый деплой, не значит, что он верно работает прямо сейчас. Все, что угодно, может вызывать проблемы у API. Возможно, кто-то в IT случайно поменял правило брандмауэра. Может быть, API третьих сторон, на который полагается ваш API, упал. Когда происходит нечто подобное, стоит узнавать об этом раньше ваших пользователей. Отличная здоровая привычка – настроить пинг-проверку вашего API. Вы можете настроить специальный эндпойнт здоровья, возвращающий положительные или отрицательные результаты, или пользоваться имеющимся GET-запросом. Вне зависимости от метода эту проверку нужно запускать раз в несколько минут, чтобы она сообщала вам, если что-то идет не так. Привычка 6: настройте мониторинг и предупреждения Скольких проблем ваша команда могла бы избежать, если бы вы были заранее предупреждены о них? Возможно, вы столкнулись с ситуацией, когда сервер достиг пика своей производительности и перестал отвечать на запросы. Или база данных переполнена и отказывает в записи новых данных. Настройка мониторинга и системы предупреждений означает, что вы узнаете о проблеме до того, как она станет катастрофой и навредит вашим пользователям. Важно убедиться, что вас не уведомляют слишком часто! Если вы получаете слишком много уведомлений, то вы начнете страдать от "слепоты к уведомлениям" и перестанете вообще обращать на них внимание. Поработайте с командой, чтобы определить, о чем нужны уведомления, и убедитесь, что вы по очереди на них реагируете, чтобы ответственность не лежала на одних плечах. Легко увидеть, как подобные здоровые тест-привычки улучшают качество ПО! Это не так захватывающе, как покупка нового тест-инструментария, но это дешевле и эффективнее. |