Что такое Покрытие Кода?

В man-странице git stash вы можете прочитать это (в разделе «Обсуждение» сразу после описания «Опции»):

Шкатулка представлена ​​в виде коммита, дерево которого записывает состояние рабочего каталога, и его первым родителем является коммит в HEAD при создании тайника.

Таким образом, вы можете рассматривать stash (например, stash@{0} является первым / верхним тайном) как коммит слияния и использовать:

$ git diff stash@{0}^1 stash@{0} -- 

Объяснение: stash@{0}^1 ярлык означает первого родителя данного тайник, который, как указано в объяснении выше, является коммитом, при котором изменения были спрятаны Мы используем эту форму "git diff" (с двумя коммитами), потому что stash@{0} / refs/stash является коммитом слияния, и мы должны указать git, против какого родителя мы хотим использовать diff. Более загадочно:

$ git diff stash@{0}^! -- 

также должны работать (см. Справочную страницу git rev-parse для объяснения синтаксиса rev^! в разделе «Задание диапазонов»).

Аналогично, вы можете использовать git checkout , чтобы извлечь один файл из тайника:

$ git checkout stash@{0} -- 

или сохранить его под другим именем:

$ git show stash@{0}:  >  

или

$ git show stash@{0}:./ > 

( обратите внимание , что здесь < полное имя файла > является полным путем к файлу относительно верхнего каталога проекта (думаю: относительно stash@{0})) .


Возможно, вам потребуется защитить stash@{0} от расширения оболочки, т. е. использовать "stash@{0}" или 'stash@{0}'.

11
задан joe 30 September 2009 в 10:24
поделиться

8 ответов

Вы можете получить очень хорошую информацию на САЙТЕ SO

Бесплатные инструменты покрытия кода

Что такое покрытие кода и как ВЫ его измеряете?

Покрытие кода

1149533] - это измерение того, сколько строк / блоков / дуг вашего кода выполняется во время выполнения автоматических тестов. CC собирается с помощью специализированного инструмента, который позволяет инструментировать двоичные файлы для добавления вызовов трассировки и запуска полного набора автоматических тестов. приборный продукт. Хорошие инструменты CC предоставят вам не только процент выполненного кода, но также позволят вам детализировать данные и увидеть, какие именно строки кода были выполнены во время конкретного теста.

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

http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=ART&ObjectId=7580 альтернативный текст http://www.codecoveragetools.com/images/stories/software_lifecycle.jpg[12113ptingIts Подходит для

  1. Функционального покрытия, направленного на определение количества выполненных функций или процедур.

  2. Выполнено покрытие оператора или строки, которое определяет количество строк в исходном коде.

  3. Покрытие условий или покрытие решений отвечает на вопрос о количестве выполненных в программе условий цикла.

  4. Покрытие пути, которое фокусируется на поиске всех возможных путей от заданной начальной точки в коде, было выполнено.

  5. Покрытие входа и выхода, которое определяет, сколько функций (C / C ++, Java) или процедур (Pascal) выполнялись от начала до конца.

ИНСТРУМЕНТЫ

http://www.codecoveragetools.com/

http://java-source.net/open-source/code-coverage

http: / /www.codecoveragetools.com/index.php/coverage-process/code-coverage-tools-java.html

http://open-tube.com/10-code-coverage-tools-cc/

http://csharp-source.net/open-source/code-coverage[12125 providedhttp://www.kdedevelopers.org/node/3190[12126estive

13
ответ дан 3 December 2019 в 04:53
поделиться

Из статьи википедии

Покрытие кода мера, используемая в тестирование программного обеспечения. Он описывает степень, в которой исходный код программа была протестирована. Это форма тестирования, которое проверяет код напрямую и поэтому является формой тестирование белого ящика 1 . В настоящее время использование покрытия кода распространяется на область цифрового оборудования, современная методология проектирования который полагается на описание оборудования языков (HDL).

Пропаганда использования покрытия кода

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

Обычно результаты детализированы вниз на уровне каждой строчки кода. Так в типичной ситуации вы запускаете ваше приложение с покрытием кода инструмент настроен для его мониторинга. когда вы выходите из приложения, инструмент создаст отчет о покрытии кода который показывает, какие строки кода были казнены, а какие нет. Если вы подсчитываете общее количество строк которые были выполнены и разделены на общее количество строк, которые могли иметь выполнено, вы получаете процент. Если вы верите в покрытие кода, чем выше процент, тем лучше. В практика, достижение 100% чрезвычайно редко.

Использование инструмента покрытия кода обычно сочетается с использованием некоторых своего рода автоматизированный набор тестов. Без автоматическое тестирование, покрытие кода инструмент просто сообщает вам, какие функции пользователь-человек не забыл использовать. Такой инструмент гораздо полезнее, когда он измерение того, насколько полон ваш набор тестов относительно кода, который у вас есть написано.

Статьи по теме

Будущее инструментов покрытия кода

Эффективность инструментов покрытия кода при тестировании программного обеспечения

Инструменты

Инструменты покрытия открытого исходного кода на Java

4
ответ дан 3 December 2019 в 04:53
поделиться

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

http://en.wikipedia.org/wiki/Code_coverage

Определение в Википедии довольно хорошее, но, по моим собственным словам, покрытие кода говорит вам, сколько автоматизированного тестирования вы провели. 100% будет означать, что любая строка кода в вашем приложении покрывается модульным тестом.

NCover - это приложение для .NET

2
ответ дан 3 December 2019 в 04:53
поделиться

Покрытие кода - это показатель, показывающий, насколько «хорошо» протестирован исходный код. Существует несколько типов покрытия кода: покрытие строк, покрытие функций, покрытие ветвей.

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

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

Существует несколько инструментов для измерения и визуализации результата, они зависят от платформы, от языка исходного кода.

] Прочтите статью в Википедии

Чтобы предоставить вам инструменты, укажите, для какой ОС и какой язык вы используете.

3
ответ дан 3 December 2019 в 04:53
поделиться

Этот термин указывает на то, насколько хорошо ваша программа покрывается вашими тестами. См. Следующую статью в Википедии для получения дополнительной информации:

http://en.wikipedia.org/wiki/Code_coverage

1
ответ дан 3 December 2019 в 04:53
поделиться

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

High Code Покрытие не обязательно означает высокое качество тестирования, но высокое качество тестирования означает высокое покрытие кода

На практике я обычно стремлюсь к охвату кода 90-95%, что часто достижимо. Последние несколько% часто слишком дороги, чтобы их стоило попытаться использовать.

0
ответ дан 3 December 2019 в 04:53
поделиться

Есть много способов разработки приложений. Один из них - «Экстремальное программирование» или «Дизайн через тестирование (TDD)». В нем говорится, что весь код должен быть протестирован. Покрытие кода - это средство измерения того, сколько проверено.

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

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

0
ответ дан 3 December 2019 в 04:53
поделиться

Хорошие ответы

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

Если вы объедините его с пошаговым выполнением, это очень хороший способ просмотреть код и выловить ошибки. Вот пример.

0
ответ дан 3 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: