Свободный текстовый поиск, интегрированный с покрытием кода - PullRequest
0 голосов
/ 07 сентября 2008

Существует ли какой-либо инструмент, который позволит мне выполнять поиск свободного текста по коду системы, но только по коду, который фактически был выполнен во время определенного вызова?

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

Для чего бы то ни было, я хотел это в Perl и Java, но я хотел бы знать, есть ли в каких-либо языках система, поддерживающая эту функцию.

1 Ответ

1 голос
/ 07 сентября 2008

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

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

Так что из инструмента покрытия вы можете получить такой отчет:

T- if(sometest)
   {
x     somecode;
   }
   else
   {
-     someother_code;
   }

Обозначение T- указывает, что оператор if только когда-либо оценивается как true, и поэтому выполняется только первая часть кода. Более поздняя запись 'x' указывает, что эта строка была выполнена.

Вы должны быть в состоянии сформировать регулярное выражение, которое соответствует только тогда, когда первый столбец содержит T, F или x, чтобы вы могли захватить все выполненные операторы управления и выполненные строки.

Иногда вы будете получать информацию о покрытии только в каждой контрольной точке, что затем требует, чтобы вы проанализировали файл C и отметили строки выполнения самостоятельно. Не так просто, но и не невозможно.

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

-Adam

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