Подключиться через MCP →

Введите расчет

Математическая формула

Реклама

Результатов

Плотность дефектов (на KLOC)
2,5
багов/KLOC
Плотность тестов (на LOC) 0,05 tests/LOC
Плотность тестов (на KLOC) 50 tests/KLOC
Плотность дефектов (на LOC) 0,0025 bugs/LOC
Плотность дефектов (на KLOC) 2,5 bugs/KLOC
Нормализованный размер кода 10 000 LOC

Что делает этот калькулятор

Инструмент рассчитывает две распространённые метрики качества программного обеспечения: плотность тестов (сколько тест-кейсов приходится на размер кодовой базы) и плотность дефектов (сколько найденных багов приходится на размер кода). Обе метрики выводятся в расчёте на LOC (Lines Of Code — строки кода) и на KLOC (тысячи строк кода), поскольку именно KLOC является общепринятой отраслевой единицей отчётности. Это универсальная метрика без привязки к стране или региональным правилам.

Как пользоваться

Укажите число выполненных тест-кейсов, количество найденных багов и размер исходного кода. Выберите, в чём задан размер: в «сырых» строках (LOC) или в тысячах строк (KLOC) — калькулятор сам приведёт значение к LOC перед расчётом. Все показатели плотности вычисляются автоматически.

Разбор формулы

Сначала размер кода нормализуется: \( \text{locLines} = \text{loc} \times \text{factor} \), где множитель равен 1 для LOC и 1000 для KLOC. Затем плотность тестов на LOC = число тестов / locLines, а плотность дефектов на LOC = число багов / locLines. Версии на KLOC получаются простым умножением значения на LOC на 1000. Число тестов и число багов — это обычные целые счётчики, они никогда не масштабируются.

$$\begin{gathered} \text{Test Density} = \frac{\text{Test Count}}{L} \times 1000, \qquad \text{Bug Density} = \frac{\text{Bug Count}}{L} \times 1000 \\[1.5em] \text{where}\quad L = \text{Source Lines of Code} \times 1 \;\; (\text{LOC}) \end{gathered}$$

Диаграмма плотности ошибок и плотности тестов в виде долей от строк кода
Обе метрики делят количество (ошибок или тестов) на размер кода, приведённое к значению на KLOC.

Пример расчёта

Допустим, вы прогнали 500 тестов, нашли 25 багов, а ваша кодовая база — 10 KLOC. Нормализованный размер = $$10 \times 1000 = 10\,000 \;\text{LOC}$$ Плотность тестов = $$\frac{500}{10\,000} = 0{,}05 \;\text{теста/LOC}$$ или 50 тестов/KLOC. Плотность дефектов = $$\frac{25}{10\,000} = 0{,}0025 \;\text{бага/LOC}$$ или 2,5 бага/KLOC.

Частые вопросы

Зачем приводить значения и на LOC, и на KLOC? Показатели на LOC получаются очень маленькими и плохо читаются, поэтому в индустрии принято отчитываться в расчёте на KLOC. Информация в них одна и та же — одно значение просто в 1000 раз больше другого.

Почему результат пустой или выводится ошибка? Если LOC равен нулю, плотность математически не определена (деление на ноль), поэтому калькулятор показывает ошибку вместо бесконечности.

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

Последнее обновление: