Тестовое покрытие кода без исходного кода?

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

4 ответа

Решение

Я думаю, что инструментальные средства кода покрытия инструментов тестирования IBM Rational.

Если у вас есть такой инструмент, но нет доступа к источнику, что конкретно будет означать покрытие кода, кроме 100%?

Если бы у вас не было 100% покрытия, вы бы знали, что ничего не выполняли. Но у тебя не было бы возможности узнать что.

Для скомпилированного кода (не Java) попробуйте Valgrind.

Старый пост... но мои два цента.

Если у вас есть несколько jar-файлов и вы знаете, какие классы / методы вы используете, вы можете использовать jma с помощью Emma и запускать свое приложение-пример для этих jar-файлов.

В моем случае у меня есть фляги, которые на самом деле являются проприетарными компонентами (для генерации HTML-кода), которые наша компания использует для создания своих веб-страниц. У нас есть пример приложения, использующего эти компоненты, и несколько тестов, которые выполняются на примере приложения. Я написал задачу ant для копирования зависимостей maven в каталог, инструментирования их и запуска тестов для этих инструментальных jar-файлов. Эта задача вызывается из POM Maven и, следовательно, является частью процесса сборки.

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

Если у вас есть количество точек входа (общедоступные методы), вы можете проверить покрытие для этого. Я не знаю никакого инструмента для этого, хотя. В противном случае вам придется проверить покрытие кода сборки, и я не знаю, возможно ли это.

Другие вопросы по тегам