Инструмент, который находит фрагменты кода без тщательного охвата исключительных состояний

#java #testing #code-analysis

#java #тестирование #анализ кода

Вопрос:

Я хотел бы найти хороший инструмент, который проанализирует мой код и найдет возможные проблемы с обработкой отсутствующих исключительных состояний, такие как проверка на нуль, числовые переполнения и т.д..

Какие-либо рекомендации?

Редактировать: это тоже было перенесено на тестирование, т. Е. Как найти места, которые слабо охвачены тестами.

Ответ №1:

Лично я использую PMD и Findbugs:

Между этими двумя есть много совпадений, но вы можете настроить пользовательские наборы правил для них обоих, и вы также можете написать свои собственные правила, если хотите.

К сожалению, то, что могут делать любые инструменты статического анализа в отношении поиска потенциальных проблем с исключительными состояниями, несколько ограничено. Сказав это, оба этих инструмента указали на проблемы в коде, над которым я работал, на отладку которых было бы потрачено много времени, если бы клиент обнаружил проблему после того, как мы выпустили.

[ПРАВИТЬ] Чтобы охватить динамическую часть кода, используйте EclEmma и модульные тесты. EclEmma использует внутри себя Emma, которую вы могли бы использовать и без Eclipse.

Комментарии:

1. Извините за редактирование; но моего добавления было слишком мало, чтобы составить дополнительный ответ, и это было слишком важно, чтобы использовать комментарий.

Ответ №2:

Хорошая IDE, такая как Netbeans или Eclipse, должна делать это настолько широко, насколько это возможно. Сообщения компиляторов также должны помочь.

Остальное зависит от вас (это означает: тестирование, тестирование и еще раз тестирование).