Тесты как лекарство для души

Опять что-то не то закоммитили и все сломали? Напиши тест. Это полезно для проекта *и* улучшает самочувствие.

30 Oct 2021


...

Слайд

Просматривала старые презентации с митапов и нашла забавный слайд:
“Написание тестов – эффективная сублимация фрустрации от деградации”.


Что я здесь имела в виду?

Когда в проекте что-то ломается, мы частенько испытываем негативные эмоции. (Ок, может быть, не у всех так. Но у тех, кто ничего не чувствует, и проблем нет.)

Например:

  • раздражение (“ну сколько можно”)
  • злость (“почему всегда ломают мой проект!”)
  • гнев (“кто только пускает таких людей в разработку?!”)
  • отчаяние (“это уже который раз, и никогда не закончится”)
  • беспомощность (“неважно насколько я стараюсь, кто-то другой все равно все сломает”)

Что здесь думается?

Во-первых, это нормально – испытывать эмоции по поводу работы.

Во-вторых, важно обходиться с этими эмоциями разумно: так, чтобы не делать хуже ни себе, ни коллегам.

В-третьих, мой ответ на “что делать”: писать тесты. (Или скрипты, или другие инструменты и автоматизации.)

Почему?

  1. Сильные эмоции, особенно гнев, дают прилив энергии.

  2. На этой волне драйва легче чем в другие моменты сделать что-то новое.

  3. Пар эмоций так или иначе надо выпускать; написать новые тесты – это безопасный и полезный способ.

  4. Самочувствие выправляется:
    • “такое больше не повторится никогда
    • никто больше не сделает такую глупость”
    • “попробуйте теперь сломать мой проект”
    • “я могу повлиять на ситуацию”
  5. Проект становится надежнее:
    • ошибки обнаруживаются раньше
    • знание “как должно быть” фиксируется в коде (тестов, скриптов, автоматизаций)

В общем, со всех сторон хорошо.

Моя история

Началось все много лет назад, я была разработчиком в классическом LAMP-проекте, и только-только занялась релизами.

И каждый релиз я сталкивалась с проблемами: или не собирались пакеты, или кронтабы переставали подгружаться, или шаблонизация ломалась из-за незакоммиченных новых файлов, которые использовались в include, или, или, или.

Я огорчалась, злилась, гневалась, а потом начала писать тесты на все то, что ломалось: на консистентность include-ов, на формат и консистентность кронтабов, на использование i18n, на синтаксис DDL.

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

И жить стало веселее. Релизы перестали неожиданно разламываться из-за нелепых причин, а я почувствовала себя спокойнее: я могу повлиять на ситуацию, я контролирую происходящее.

Мораль

Пиши тесты! Это эффективная сублимация фрустрации от деградации. И проекту от этого хорошо.