Качество программного обеспечения (ПО) — способность продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям (ISO/IEC 25000:2014). Оценка качества — процесс измерения характеристик ПО и сравнения их с требуемыми показателями.
Нормативная база
Основные стандарты для оценки качества ПО:
- ISO/IEC 25010:2011 (ГОСТ Р ИСО/МЭК 25010‑2015) — определяет 8 характеристик верхнего уровня качества продукта и модель качества в использовании;
- ISO/IEC 25000 (SQuaRE) — семейство стандартов для требований и оценки качества;
- ГОСТ Р ИСО/МЭК 9126‑93 — ранняя модель качества ПО;
- IEEE Std 610.12‑1990 — глоссарий терминов по инженерии ПО.
Основные характеристики качества ПО (по ISO/IEC 25010)
- Функциональная пригодность — способность выполнять заявленные функции. Подхарактеристики:
- полнота функционала;
- корректность реализации;
- соответствие функциональным требованиям.
- Производительность — эффективность использования ресурсов. Подхарактеристики:
- время отклика;
- пропускная способность;
- масштабируемость.
- Совместимость — способность взаимодействовать с другими системами. Подхарактеристики:
- функциональная совместимость;
- совместимость с платформами;
- совместимость версий.
- Удобство использования (юзабилити) — лёгкость освоения и работы. Подхарактеристики:
- понятность интерфейса;
- простота навигации;
- доступность для пользователей с ограничениями.
- Надёжность — бесперебойная работа в заданных условиях. Подхарактеристики:
- безотказность;
- устойчивость к ошибкам;
- восстанавливаемость.
- Защищённость — защита от несанкционированного доступа. Подхарактеристики:
- конфиденциальность данных;
- целостность информации;
- аутентификация и авторизация.
- Сопровождаемость — простота внесения изменений. Подхарактеристики:
- анализируемость кода;
- модифицируемость;
- тестируемость.
- Переносимость (мобильность) — лёгкость переноса на другие платформы. Подхарактеристики:
- адаптируемость;
- простота установки;
- замещаемость компонентов.
Модель качества в использовании (ISO/IEC 25010)
Оценивает восприятие качества конечными пользователями:
- результативность — достижение целей пользователя;
- производительность — затраты ресурсов пользователя;
- удовлетворённость — эмоциональный отклик;
- свобода от риска — минимизация угроз для бизнеса/здоровья;
- покрытие контекста — пригодность для разных сценариев использования.
Методы оценки качества ПО
- Тестирование:
- функциональное (проверка соответствия требованиям);
- нагрузочное (оценка производительности);
- юзабилити‑тестирование (оценка удобства);
- тестирование безопасности;
- регрессионное (проверка стабильности после изменений).
- Статический анализ кода:
- проверка стиля кодирования;
- поиск потенциальных ошибок;
- оценка сложности кода (цикломатическая сложность).
- Динамический анализ:
- профилирование производительности;
- мониторинг использования памяти;
- анализ сетевого трафика.
- Экспертная оценка:
- code review (ревизия кода);
- аудит архитектуры;
- UX‑экспертиза интерфейса.
- Опросы и анкетирование пользователей:
- NPS (Net Promoter Score);
- SUS (System Usability Scale);
- сбор обратной связи через формы.
- Метрический анализ:
- количество строк кода (LOC);
- плотность дефектов (дефектов на 1 000 LOC);
- покрытие кода тестами (%);
- технический долг (оценка затрат на исправление недостатков).
Этапы процесса оценки качества
- Установление требований:
- определение характеристик качества для проекта;
- установка целевых значений метрик;
- согласование критериев приёмки.
- Подготовка к оцениванию:
- выбор методов и инструментов оценки;
- разработка тест‑кейсов и сценариев;
- настройка среды тестирования.
- Процедура оценивания:
- измерение метрик (сбор данных);
- ранжирование результатов (сравнение с эталоном);
- комплексная оценка (обобщение данных).
- Принятие решений:
- формирование отчёта о качестве;
- приоритизация дефектов;
- планирование улучшений.
Инструменты для оценки качества
- статический анализ: SonarQube, ESLint, Pylint, Checkstyle;
- тестирование: JUnit, pytest, Selenium, JMeter, Postman;
- юзабилити: UserTesting, Hotjar, Crazy Egg;
- мониторинг производительности: New Relic, Datadog, Prometheus;
- аудит безопасности: OWASP ZAP, Burp Suite, Nessus;
- управление тестированием: TestRail, qTest, Zephyr;
- метрики кода: SourceMonitor, Understand, CodeSonar.
Количественные метрики качества
| Метрика | Формула | Цель измерения |
|---|---|---|
| Покрытие кода тестами | общее число строкстроки, покрытые тестами×100% | Оценка полноты тестирования |
| Плотность дефектов | LOCчисло дефектов×1000 | Качество кода |
| Время отклика | Среднее время обработки запроса (мс) | Производительность |
| Доступность системы | общее времявремя работы×100% | Надёжность |
| Удовлетворённость пользователей (SUS) | Средний балл по анкете (1–5) | Юзабилити |
| Технический долг | Оценка в часах/днях на исправление | Сопровождаемость |
Лучшие практики оценки качества
- внедряйте оценку качества на всех этапах разработки (DevOps/DevSecOps);
- автоматизируйте тестирование и анализ кода в CI/CD‑пайплайне;
- используйте комбинацию методов (статический анализ + тестирование + обратная связь);
- устанавливайте реалистичные целевые значения метрик для проекта;
- регулярно пересматривайте критерии качества по мере развития продукта;
- вовлекайте конечных пользователей в оценку юзабилити и функциональности;
- документируйте результаты оценки и планы улучшений;
- сравнивайте показатели с отраслевыми бенчмарками.
Вывод: оценка качества ПО — непрерывный процесс, требующий системного подхода. Использование стандартов (например, ISO/IEC 25010), комбинации методов и автоматизированных инструментов позволяет объективно измерять характеристики продукта, выявлять недостатки и принимать обоснованные решения для повышения качества.