#java #testing #code-analysis
#java #тестирование #анализ кода
Вопрос:
Я хотел бы найти хороший инструмент, который проанализирует мой код и найдет возможные проблемы с обработкой отсутствующих исключительных состояний, такие как проверка на нуль, числовые переполнения и т.д..
Какие-либо рекомендации?
Редактировать: это тоже было перенесено на тестирование, т. Е. Как найти места, которые слабо охвачены тестами.
Ответ №1:
Лично я использую PMD и Findbugs:
Между этими двумя есть много совпадений, но вы можете настроить пользовательские наборы правил для них обоих, и вы также можете написать свои собственные правила, если хотите.
К сожалению, то, что могут делать любые инструменты статического анализа в отношении поиска потенциальных проблем с исключительными состояниями, несколько ограничено. Сказав это, оба этих инструмента указали на проблемы в коде, над которым я работал, на отладку которых было бы потрачено много времени, если бы клиент обнаружил проблему после того, как мы выпустили.
[ПРАВИТЬ] Чтобы охватить динамическую часть кода, используйте EclEmma и модульные тесты. EclEmma использует внутри себя Emma, которую вы могли бы использовать и без Eclipse.
Комментарии:
1. Извините за редактирование; но моего добавления было слишком мало, чтобы составить дополнительный ответ, и это было слишком важно, чтобы использовать комментарий.
Ответ №2:
Хорошая IDE, такая как Netbeans или Eclipse, должна делать это настолько широко, насколько это возможно. Сообщения компиляторов также должны помочь.
Остальное зависит от вас (это означает: тестирование, тестирование и еще раз тестирование).