Как проверить использование динамического класса в очень большом Java-проекте - PullRequest
3 голосов
/ 12 декабря 2011

У меня довольно большой Java-проект с очень низким охватом кода, и я хочу увеличить количество тестовых случаев. Есть ли способ определить, какие классы используются чаще всего во время выполнения? Таким образом, мы можем измерить, какие классы мы должны охватить в первую очередь. Проект - это веб-приложение, работающее через tomcat & websphere, если это важно.

Ответы [ 6 ]

1 голос
/ 12 декабря 2011

Альтернативным подходом будет «профилирование» приложения и прохождение различных рабочих процессов с включенным профилировщиком.Затем вы можете отсортировать загруженные классы, вызовы методов (с подсчетом), чтобы получить представление о том, какие классы используются чаще всего.

1 голос
/ 12 декабря 2011

Да.

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

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

0 голосов
/ 12 декабря 2011

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

Итак, хорошее начало - взглянуть на вашу базу ошибок: есть ли место в коде, которое часто появляется? Или вы знаете фрагмент кода, в котором вы впервые подумали: «Я не хочу это трогать ... когда-либо »

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

Это отличные места для начала с тестовых случаев, потому что это те места, где недостающее покрытие вредит .

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

0 голосов
/ 12 декабря 2011

Спросите разработчика, который знаком с системой, какие части наиболее проблематичны (например, выдают наибольшее количество ошибок, их приходится часто менять, труднее всего добавлять функции и т. Д.).Ответ будет гораздо полезнее любого числового измерения.

0 голосов
/ 12 декабря 2011

Вы смотрели в АОП? По сути, вы пишете некоторые «аспекты», и среда выполнения AOP связывает их с указанными вами классами. Абсолютно ненавязчивый. Одним из применений AOP является тест покрытия. Если вы пойдете по этому пути, вы можете проверить Spring AOP .

0 голосов
/ 12 декабря 2011

В зависимости от настроек сервера, вы можете подключить внешний инструмент профилирования (есть много) для обработки. Вы также можете получить некоторые первые идеи с помощью инструмента jConsole, поставляемого с JDK. Но мой любимый - внимательно изучить источники или статистику веб-приложений, чтобы определить возможные наиболее используемые классы. В конечном итоге вам придется протестировать их все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...