У меня есть 3 вопроса:
- Что такое CodeCoverage?
- Для чего это полезно?
- Какие инструменты используются для анализ покрытия кода?
У меня есть 3 вопроса:
Вы можете получить очень хорошую информацию из SO WEB SITE
Бесплатные инструменты для покрытия кода
Что такое покрытие кода и как вы его измеряете?
Обложка кода - это измерение количества строк/блоков/дуг вашего кода во время выполнения автоматических тестов. CC собирается с помощью специализированного инструмента для инструментария для добавления трассировки звонки и запуск полного набора автоматических тестов против инструментального продукта. Хорошие инструменты CC предоставят вам не только процент выполненного кода, но также позволят вам просверлить данные и посмотреть, какие строки кода выполнялись в ходе конкретного теста.
Алгоритмы покрытия кода были сначала созданы для решения проблемы оценки исходного кода, напрямую глядя на исходный код. Покрытие кода относится к категории структурных испытаний из-за утверждений, сделанных во внутренних частях программы, а не на выходах системы. Поэтому охват кода направлен на поиск частей кода, которые не стоит тестировать.
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=ART&ObjectId=7580 alt text http://www.codecoveragetools.com/images/stories/software_lifecycle.jpg
Хорошо для
Функциональный охват, направленный на поиск того, сколько функций или процедур было выполнено.
Выполнено выражение или покрытие линии, которое идентифицирует количество строк в исходном коде.
Покрытие условий или охват решений отвечает на вопрос о количестве условий цикла в программе.
Выполнен охват покрытия, который фокусируется на поиске всех возможных путей из заданной начальной точки в коде.
Вступление и выход, который определяет, сколько функций (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-c-c/
Покрытие кода - это мера, используемая в тестирование программного обеспечения. В нем описывается степень, в которой исходный код программа была протестирована. Это форма тестирования, проверяющего код и, следовательно, является формой white box 1. В настоящее время использование покрытия кода распространяется на в области цифрового оборудования, современная методология проектирования который опирается на описание оборудования Языки (ЛПВП).
Пропаганда использования покрытия кода
Инструмент покрытия кода просто хранит отслеживать, какие части вашего кода получить выполненных, а какие нет.
Как правило, результаты являются зернистыми вниз до уровня каждой строки кода. Так в типичной ситуации вы запускаете ваше приложение с охватом кода инструмент, настроенный для его мониторинга. когда вы выходите из приложения, инструмент выдает отчет о покрытии кода который показывает, какие строки кода были казненных, а какие нет. Если вы считаете общее количество строк которые были выполнены и разделены общее количество линий, которые могли бы иметь был выполнен, вы получаете процент. Если вы верите в покрытие кода, чем выше процент, тем лучше. В практика, достигающая 100%, чрезвычайно редко.
Использование инструмента покрытия кода обычно в сочетании с использованием некоторых вид автоматизированного набора тестов. Без автоматическое тестирование, покрытие кода инструмент просто говорит вам, какие функции пользователь пользовался памятью. Такой инструмент гораздо полезнее, когда он измерение полноты набора тестов в отношении кода, который у вас есть написано.
Статьи по теме
Будущее инструментов покрытия кода
Эффективность инструментов покрытия кода при тестировании программного обеспечения
Инструменты
Покрытие кода - это метрика, показывающая, как "хорошо" тестируется исходный код. Существует несколько типов покрытия кода: покрытие линии, покрытие функций, охват веток.
Чтобы измерить охват, вы должны запустить приложение либо вручную, либо путем автоматического тестирования.
Инструменты можно разделить на две категории: - те, которые запускают скомпилированный код в модифицированной среде (например, отладчик), считая требуемые точки (функции, строки и т.д.); - те, которые требуют специальной компиляции - в этом случае результирующий двоичный файл уже содержит код, который фактически выполняет подсчет.
Существует несколько инструментов для измерения и визуализации результата, они зависят от платформы, от исходного кода.
Пожалуйста, прочитайте статью о Wikipedia
Чтобы предоставить вам инструменты, определите, какую ОС и язык вы используете.
Покрытие кода - это мера, используемая при тестировании программного обеспечения. В нем описывается степень, в которой был протестирован исходный код программы.
http://en.wikipedia.org/wiki/Code_coverage
Определение wikipedia довольно хорошо, но в моих собственных словах покрытие кода говорит вам, сколько автоматизированного тестирования вы учли. 100% означает, что когда-либо одна строка кода в вашем приложении покрывается unit test.
NCover - это приложение для .NET
Этот термин относится к тому, насколько хорошо ваша программа охвачена вашими испытаниями. Для получения дополнительной информации см. Следующую статью в википедии:
Другие ответы уже охватывают то, что охватывает код. Думаю, я хотел бы подчеркнуть, что вам нужно быть осторожным, чтобы не относиться к высокому охвату, поскольку подразумевает, что вы протестировали все сценарии. Это не обязательно означает, насколько хорошо вы протестировали код или качество своих тестов, только что вы нанесли определенный процент кода как часть тестов.
Высокое покрытие кода не обязательно означает высокое качество тестирования, но высокое качество тестирования означает высокий уровень покрытия кода
На практике я обычно нацелен на 90-95% охвата кода, который часто достижим. Последние несколько% часто слишком дороги, чтобы их можно было поразить.
Существует множество способов разработки приложений. Один из них - "Экстремальное программирование" или "Тестируемый дизайн (TDD)". В нем говорится, что весь код должен быть протестирован. Покрытие кода - это средство измерения количества тестируемых.
Я хотел бы сделать небольшое замечание об этом: я не думаю, что весь код должен быть протестирован, а также не нужно устанавливать определенный процент покрытия кода. Я также не думаю, что код не должен тестироваться с помощью Unit Tests (код тестирования кода). Я действительно думаю, что нужно решить, что имеет смысл тестировать. По этой причине я обычно не использую покрытие кода.
Одна вещь, которую предоставляют некоторые инструменты, подчеркивает те части, которые протестированы. Таким образом, вы можете столкнуться с некоторым кодом, который не протестирован, но на самом деле должен быть, и это единственное, для чего я его использую.
Хорошие ответы.
Мои два цента - это то, что нет метода тестирования, который ловит все ошибки, но меньшее тестирование никогда не будет ловить больше ошибок, поэтому любое тестирование будет хорошим. На мой взгляд, тестирование покрытия не означает, что был реализован код , но чтобы показать, какой код имеет не, потому что это то, где ошибки любят скрываться.
Если вы объедините его с одним шагом, это очень хороший способ просмотреть код и уловить ошибки. Вот пример.
Другим полезным инструментом для обеспечения качества кода (который охватывает покрытие кода), который я недавно использовал, является Sonar. Вот ссылка http://www.sonarqube.org/