Вы проверяете модульные тесты кода?
После прочтения этого question мне остается задаться вопросом, не делают ли магазины, делающие обзоры кода, также и модульные тесты?
В моем текущем контракте весь код должен быть пересмотрен до фиксации, но исторические модульные тесты не воспринимались всерьез. Это область, к которой я обращаюсь в данный момент, и задавался вопросом, будут ли люди включать модульные тесты с обзором, и если да, то как вы могли бы это сделать, когда опыт разработчиков модульного тестирования довольно низок, причем некоторые из них имеют нулевой опыт?
Ответы
Ответ 1
Если вы собираетесь беспокоиться о unit test, и вы будете беспокоиться о том, чтобы делать обзоры кода, то вам действительно нужно также потрудиться, чтобы просмотреть модульные тесты.
Для меня, если вы собираетесь серьезно относиться к модульному тестированию, ваш тестовый код так же важен, как и ваш код приложения.
Если ваши разработчики испытывают единичное тестирование, то им нужна обратная связь о том, как они должны это делать, будь то в виде обзора кода или какого-либо другого механизма.
Я бы порекомендовал пару-программирование между одним разработчиком с опытом unit test и новичком, а затем просмотрел это, когда рецензент кода был третьим человеком.
Ответ 2
По статистике, модульные тесты являются более ошибочными, потому что они принимаются менее серьезно. Так что да, код просматривает эти buggers.
Ответ 3
Да. Это быстро. Тест должен быть очевиден; если это не так, у вас нет надежного тестового примера.
Один из членов команды переутомлялся (он тестировал тестовые данные для других модульных тестов.)
Это способ проверить покрытие, стиль и общую правильность.
Кроме того, дефекты unit test не так серьезны, как дефекты рабочего кода. Если есть проблемы стиля, вам больше не нужно обсуждать достоинства пробелов вокруг ()
. Вы просто говорите: "У этого есть проблемы стиля на строках 43, 87, 96, но мы все равно его совершаем".
У вас должно быть отставание исправления ошибок unittest, как и любое другое исправление ошибок.
Ответ 4
На моем месте работы мы недавно начали серьезно относиться к блочным испытаниям. В настоящее время мы определяем список элементов, которые нужно просмотреть в наших обзорах кода, и один из этих элементов - это модульные тесты.
Прямо сейчас этот элемент означает только существование модульных тестов. Как только мы это преодолеем, мы более серьезно рассмотрим сами тесты. Не сейчас.
Ответ 5
Я согласен, что модульные тесты также должны быть пересмотрены. Как уже упоминалось другими, слишком много разработчиков экономят на единичном тестировании и тестировании в целом, и, просмотрев их, вы можете только улучшить тестирование и определить области, которые требуют модульного тестирования и какого типа тестирования.
Ответ 6
Код, написанный для модульных тестов, обычно намного проще, чем производственный код (нет, если нет цикла, проверьте только одну вещь...). Таким образом, код unit test менее подвержен ошибкам, и мы не рассматриваем его формально.
Кроме того, мы стремимся использовать Test-Driven Development (TDD), поэтому сначала запускаем все наши скрипты, чтобы сначала сбой, а затем мы записываем код, чтобы он прошел. Это добавляет к качеству наших тестов, хотя я должен признать, что у нас иногда возникали проблемы в модульных тестах.
После того, как разработчики рассмотрят код модульных тестов, они покажут, что модульное тестирование не так сложно и помогает им начать работу.
Один из способов просмотра всего кода unit test, а также всего производственного кода Pair Programming, хотя трудно получить как управление, так и разработчики.
Как и производственный код, код модульных тестов также должен поддерживаться, поэтому следует обратить внимание на то, чтобы он был доступен для чтения и обслуживания.
Ответ 7
Мы официально не проверяем модульные тесты, но это первое место, которое я начинаю при просмотре кода другого человека. Я только поднимаю его на обзорной встрече, если обнаруживаю, что что-то не так с тестом, или это они слишком мало или слишком много тестируют.
(Да, вы можете проверить слишком много. Я видел модульные тесты, которые проверяют, чтобы конструктор возвращал объект с правильным типом.)