Как автотесты и GitHub Actions помогают улучшать свои пет-проекты

ed839a6699466a1af9580ca75d484b59

Привет. Сегодня поговорим о том, как я в последние 2 недели поправил свои пет-проекты, а также исправил серьёзные ошибки благодаря автотестам и налаженному CI/CD через GitHub Actions.

Какие проекты были подвергнуты изменениям?

Были подвергнуты многие мои петы. Начиная от самого заброшенного пета, и заканчивая самым интересным для меня. В основном, я дорабатывал слой БД, поправил сервисный слой, и многое другое.

Почему ручное тестирование — это (необходимое) зло?

  1. Ручное тестирование ухудшает производительность разработчика, так как ему приходится вместо того, чтобы писать код, постоянно заходить в Postman, и тестировать API. Spring MockMvc делает это автоматически — достаточно написать тест, и запускать регулярно при серьёзных (и не только) изменениях.

  2. А что с тестированием конкретной логики приложения? Spring Boot Test включает и инструменты для юнит-тестирования — JUnit, Mockito, и многое другое.

  3. А как создать полноценное окружение для интеграционного тестирования? TestContainers позволяет создать контейнеризированное окружение для запуска полноценных сервисов — таких как PostgreSQL, например.

Ручное тестирование, разумеется, тоже необходима, но критические узлы кода всё-таки желательно покрыть тестами, чтобы уменьшить вероятность возникновения серьёзных ошибок — особенно уровня инцидента с Crowdstrike.

Что я получил от такого опыта?

  1. Облегчил себе тестирование API и сервисного слоя.

  2. Исправил несколько серьёзных ошибок (которые были вызваны моей невнимательностью, а также активному применению карго-культа).

  3. Улучшил в целом качество кода.

Вывод

Автотесты — это лучшее, что было в моей жизни. Именно это позволило сосредоточиться на коде, и не тратить время на рутину, которую можно автоматизировать.

Также для улучшении качества кода я использую плагин Amplicode. Этот плагин позволил мне улучшить качество кода в слое БД, облегчить работу с Spring, и в принципе улучшить свою жизнь. А OpenIDE позволило мне получить лицензионно чистую версию IDEA, которая полностью идентична по опыту с оригинальной Intellij IDEA.

Это не реклама. Это мой опыт.

© Habrahabr.ru