Перейти к содержанию

Тестирование

Если тесты настолько важны, то почему ими покрыто не 100 % кодовой базы проекта?

100 % тестового покрытия говорят скорее о стремлении к красивым цифрам, нежели о стремлении минимизации ошибок и максимизации качества программного продукта.

Причин тому несколько:

  • Тестами покрывается каждый метод каждой структуры — далеко не всё требуется проверять, например: методы в структурах после кодогенерации (потому что они проверены при создании самой кодогенерации);
  • Тестами покрываются все методы каждого класса, участвующего в общей бизнес-логике — в этом случае повторно проверяется работа методов, которые уже были проверены в рамках других тестов;
  • Даже если считать нормой, что одна бизнес-логика проверяется разными тестами, то поддерживать такие тесты в актуальном состоянии при изменениях в проекте относительно дорого (потому что на изменение одного метода придётся поправить несколько тестов).

Важен баланс: минимум усилий на поддержку тестов при максимуме эффективности их проверок.

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

Поэтому в проекте есть тесты: - На бизнес-логику конкретных модулей; - На поведение сервиса в целом при взаимодействии с ним посредством API-методов.