Ответ
Качество ПО — многогранная характеристика. Его оценка строится на совокупности критериев и количественных метрик.
Ключевые критерии качества (на основе стандарта ISO 25010):
| Критерий | Что оценивает | Пример метрики |
|---|---|---|
| Функциональная пригодность | Соответствие требованиям, полнота, правильность. | % реализованных требований, количество блокирующих дефектов. |
| Производительность | Скорость работы, время отклика, использование ресурсов. | Время загрузки страницы (мс), пропускная способность (RPS). |
| Надежность | Стабильность, доступность, отказоустойчивость. | Время наработки на отказ (MTBF), процент доступности (uptime). |
| Удобство использования (Usability) | Простота освоения, эффективность, удовлетворенность. | Время выполнения задачи, оценка по шкале SUS (опрос). |
| Совместимость | Работа в разных средах. | % покрытия браузеров/устройств, успешность интеграций. |
| Безопасность | Защищенность от угроз. | Количество уязвимостей, результаты pentest-ов. |
| Сопровождаемость | Простота анализа, изменения, тестирования. | Цикломатическая сложность кода, покрытие тестами (%). |
Практический пример расчета метрики:
# Расчет покрытия кода тестами (Test Coverage) — метрика сопровождаемости
def calculate_test_coverage(tested_lines: int, total_lines: int) -> float:
"""
Возвращает процент покрытия кода тестами.
"""
if total_lines == 0:
return 0.0
coverage_percentage = (tested_lines / total_lines) * 100
return round(coverage_percentage, 2)
# Пример использования
print(f"Покрытие тестами: {calculate_test_coverage(850, 1000)}%")
# Вывод: Покрытие тестами: 85.0%
Важно: Не существует одной универсальной метрики. Качество оценивается по сбалансированной системе показателей (Scorecard), релевантных для конкретного продукта и этапа его жизненного цикла.