1

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

ответ

2

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

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

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

+0

Меня интересует использование теста тестирования пугания и анализа покрытия кода, чтобы найти уязвимости безопасности. Во-первых, я могу запустить приложение в обычных условиях работы и идентифицировать пылевые неиспользуемые коды кода. Затем попытайтесь определить уязвимости в предположении, что наименее охваченный код, вероятно, будет иметь большинство уязвимостей. –

+0

Но точно, что такое «пыльный неиспользуемый путь», когда у вас нет источника? Кажется, что все, что у вас было бы, это «эта инструкция не была выполнена», и вам придется проследить путь (нисходящий ветвление) самостоятельно. Тем не менее, вы не представляете, что это за образ; что-то, связанное с паролями, или что-то связанное с печатью «полный диск»? Итак, что конкретно вы сделали бы со списком неиспользуемых мест обучения? –

+0

Это хороший момент; Я как-то убедил себя, что могу научиться формировать ввод для использования неиспользуемого кода, изучая, как другие входные карты вводят в инструкции. Теперь, когда я думаю об этом больше, это выглядит довольно сложно. –

0

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

1

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

Если у вас есть куча банок, и если вы знаете, какие классы/методы вы используете, вы можете измерить банки с помощью Emma и запустить образец приложения против этих банок.

В моем случае у меня есть банки, которые на самом деле являются проприетарными компонентами (для генерации html-кода), которые наша компания использует для создания своих веб-страниц. У нас есть пример приложения, в котором используются эти компоненты и множество тестов, которые запускаются против примера приложения. Я написал муравьиную задачу, чтобы скопировать зависимости maven в каталог, применить их и запустить тесты против этих инструментальных банок. Эта задача вызывается из ПОМ maven и, следовательно, является частью процесса сборки.

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

Смежные вопросы