16.5. Измерение покрытия кода
16.5. Измерение покрытия кода
Очень полезно знать, какие части программы не были протестированы, а следовательно, нуждаются в автономных тестах. Иногда и сам инструмент для замера покрытия может обнаружить ошибки. Допустим, в программе есть предложение if, которое «должно» исполняться примерно в половине всех случаев. Если выясняется, что оно не исполняется никогда, значит, имеет место ошибка.
Командную утилиту rcov (и соответствующую библиотеку) написал Маурисио Фернандес (Mauricio Fernandez). Устанавливается она в виде gem-пакета.
В простейшем случае для ее запуска достаточно указать имя вашей программы в качестве параметра:
rcov myfile.rb
Одновременно с исполнением вашей программы rcov будет собирать статистику. По умолчанию она создает каталог coverage, в котором вы найдете HTML-файлы. В файле index.html представлены сводные результаты и ссылки на исходные тексты, где строки, которые хотя бы раз исполнялись, подсвечены.
Из-за цветового кодирования трудно привести черно-белый снимок с экрана. Но сам инструмент настолько прост, что, потратив пару минут, вы сможете увидеть все сами.
Хотя программа rcov полезна даже в стандартном режиме, она понимает порядка 30 различных параметров. Можно указать каталог для выходных файлов, образцы имен файлов, для которых собирать и не собирать статистику, задать режим сортировки по именам файлов и многое другое. Можно выводить результаты в текстовом виде и даже запросить цветную диаграмму покрытия. Рекомендую прочитать поставляемую документацию, запросить справку командой rcov -h и… получать удовольствие.
Можно использовать rcov и в качестве библиотеки для написания аналогичных инструментов анализа. Ее API состоит из трех основных классов:
• Rcov::FileStatistics позволяет отличить исполняемые предложения от комментариев (и тем самым уточнить статистику покрытия);
• Rcov::CodeCoverageAnalyzer применяется для трассировки выполнения, возвращает информацию о покрытии и счетчики выполненных предложений;
• Rcov::CallSiteAnalyzer нужен для того, чтобы понять, где определены методы и откуда они вызываются.
Обсуждение API далеко выходит за рамки этого раздела. Почитайте документацию и начинайте экспериментировать.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Измерение производительности
Измерение производительности Каждое приложение выполнялось на хост-системе по пять раз. Перед каждым запуском приложения физическая память очищалась, чтобы исключить повышение показателей производительности за счет файлов и программ, кэшированных в памяти или файлах
ПРИЛОЖЕНИЕ А Измерение производительности
ПРИЛОЖЕНИЕ А Измерение производительности А.1. Введение В основной части книги мы перечислили шесть средств передачи сообщений:? неименованные каналы (pipes);? именованные каналы (FIFO);? очереди сообщений Posix;? очереди сообщений System V;? двери;? SunRPC.Кроме того, мы указали пять
Измерение радиуса
Измерение радиуса Для измерения радиуса предназначена команда DIMRADIUS. После ее запуска AutoCAD предлагает выбрать дугу или окружность. Когда вы это сделаете, AutoCAD измерит радиус дуги и выдаст запрос о расположении текстового значения размера (внутри или снаружи дуги).
Измерение углов
Измерение углов Для определения линейного размера AutoCAD должен располагать двумя опре деляющими точками. При проставлении значений углов следует указать три точки для определения углового размера: вершину и две конечные точки. Угловые размеры проставляются с помощью
Анализ покрытия
Анализ покрытия Это современный метод и для его использования вам понадобится специальное программное обеспечение. Анализ покрытия (coverage analysis) представляет собой запись в журнал того, какие операторы приложения были "покрыты", т.е. выполнены. Если при тестировании
Измерение радиуса
Измерение радиуса Для измерения радиуса предназначена команда DIMRADIUS. Чтобы ее активизировать с помощью ленты, щелкните на стрелке справа от кнопки Linear (Линейный) на вкладке Annotate (Аннотация) в группе Dimensions (Размеры) и выберите способ задания размеров Radius (Радиус). После
Измерение углов
Измерение углов Для определения линейного размера AutoCAD должен располагать двумя определяющими точками. При проставлении значений углов следует указать три точки для определения углового размера: вершину и две конечные точки. Угловые размеры проставляются с помощью
Измерение психологических характеристик
Измерение психологических характеристик Сказанное выше о методах измерения признаков почерка во многом относится и к измерению психологических характеристик. Их степень также меняется от О до 1, то есть от полного отсутствия до абсолютно явного присутствия. В сущности,
5.3.3.1 Измерение
5.3.3.1 Измерение Для измерения выбранные метрики применяются к программной продукции. Результатом являются значения в масштабах
Информация и ее измерение
Информация и ее измерение Основная характеристика устройств памяти – это их объем. Единица измерения объема запоминающих устройств – байт (1 байт = 8 битам). Бит – это наименьший объем информации, которую может обработать компьютер. Для передачи 1 бита используется один
ПЕРЕПИСКА: Измерение интеллектов
ПЕРЕПИСКА: Измерение интеллектов Автор: Илья ЩуровТему номера, посвященную тестированию интеллекта, Леонид Левкович-Маслюк подготовил еще в начале лета (см. "КТ" #737), и почти сразу же мы решили, что если на нее будут интересные отзывы (а мы их ждали), то сделаем по ним