Нужны ли тесты и примеры в production-версиях дистрибутивов?

Занимался недавно минимизацией дистрибутива Linux — удалял не отвечающие назначению дистрибутива пакеты.Потом прошелся по исходным текстам оставшихся и удивился огромному числу тестовых файлов\каталогов и каталогов с примерами.Я был приятно удивлён, так как ценю надёжное ПО.Я был неприятно удивлён, так как каждый лишний файл, не реализующий функциональность в продакшене, затрудняет сдачу проекта Заказчику.Вот такая шизофрения.imageНи в коей мере не оспариваю важность и нужность тестирования.Тем более не считаю излишним помогать пользователям осваивать пакеты программ на встроенных примерах.

Однако, если мы идём по пути широкого внедрение тестирования вообще и TDD в частности, то давайте будем последовательны.

Я имею в виду следующее.

Если уж при разработке применяется тестовое чистое окружение, в котором программа тестируется перед выкладкой в production, то зачем артефакты тестирования включать в src-пакет, из которого собирается бинарный пакет для развертывания в «боевой обстановке»?

Думаю, в продакшене наличие установленных полных тестов является избыточным. Вполне можно выделить из основного пакета приложения дополнительные *.test.* и *.example.* пакеты, как уже выделены dev-версии пакетов.

Если всё же произойдёт инцидент и нужно будет провести диагностику — вот тогда и можно будет начинать разбираться. Разбиение основного и тестового функционала по нескольким пакетам этому, думаю, не сильно повредит. К тому же, TDD ведь и задуман для того, чтобы в продакшене поменьше сбоило, ведь так?

© Habrahabr.ru