Если ваше намерение состоит только в том, чтобы найти тривиально неправильные тесты, а именно те, в которых отсутствует какое-либо утверждение assert
, то могут выполнять такие проверки, как PMD. Скорее всего, вы получите некоторые ложные срабатывания, в частности, для тестов, где реальная цель теста состоит просто в том, чтобы убедиться, что SUT не выдает исключение (случай, упомянутый в комментариях Питера Лоури).
Однако в тестах гораздо больше проблем, которые не так просто найти: утверждение может быть просто неправильным (assertTrue(isPrime(9))
), или утверждение может касаться только части соответствующих аспектов (например, когда работа с рациональными числами, проверка только числителя, но не знаменателя).
Для выявления таких проблем с качеством также существуют подходы, такие как тестирование мутаций, которые могут в некоторой степени помочь. И, во-первых, при написании тестов: использование первого процесса разработки гарантирует, что тест по крайней мере один раз провалился.
Однако у комплекта тестов могут быть дополнительные проблемы, которые связаны не с набором выполняемых тестов, а с нефункциональными критериями качества: время выполнения теста, ремонтопригодность набора тестов, выразительность результатов диагностики в случае провала теста и т. д.
Если вы заинтересованы в обнаружении подобных проблем, я бы сказал, что отзывы неизбежны.