exam

Критерии качества программного продукта.

Качество программного продукта — совокупность характеристик, определяющих способность ПО выполнять возложенные на него функции и удовлетворять потребности пользователей. Критерии качества позволяют объективно оценить продукт и сравнить его с требованиями и отраслевыми стандартами.

Основной нормативной базой для оценки качества ПО служат международные и российские стандарты:

  • ISO/IEC 25010:2011 (ГОСТ Р ИСО/МЭК 25010‑2015) — определяет 8 ключевых характеристик качества;
  • ISO/IEC 25000 — семейство стандартов SQuaRE (Software Product Quality Requirements and Evaluation);
  • ГОСТ Р ИСО/МЭК 9126‑93 — ранняя модель качества ПО.

Основные критерии качества ПО (по ISO/IEC 25010)

  1. Функциональная пригодность — способность ПО выполнять требуемые функции:
    • полнота функционала (наличие всех необходимых функций);
    • корректность реализации (соответствие спецификации);
    • соответствие функциональным требованиям;
    • функциональная совместимость (взаимодействие с другими системами).
  2. Производительность (эффективность) — рациональное использование ресурсов:
    • время отклика (задержка между запросом и ответом);
    • пропускная способность (количество операций в единицу времени);
    • масштабируемость (способность работать при росте нагрузки);
    • ресурсоёмкость (потребление CPU, памяти, сетевого трафика).
  3. Надёжность — бесперебойная работа в заданных условиях:
    • безотказность (вероятность работы без сбоев);
    • устойчивость к ошибкам (способность сохранять работоспособность при некорректных данных);
    • восстанавливаемость (время восстановления после сбоя);
    • доступность (процент времени работоспособности системы).
  4. Удобство использования (юзабилити) — лёгкость освоения и работы:
    • понятность интерфейса (интуитивная навигация);
    • простота обучения (скорость освоения для новых пользователей);
    • удобство эксплуатации (эффективность выполнения типовых задач);
    • доступность для пользователей с ограниченными возможностями.
  5. Защищённость — защита от несанкционированного доступа и атак:
    • конфиденциальность данных (защита от утечки);
    • целостность информации (защита от несанкционированных изменений);
    • аутентификация (проверка подлинности пользователей);
    • авторизация (контроль прав доступа);
    • аудит действий (ведение логов безопасности).
  6. Сопровождаемость — простота внесения изменений и поддержки:
    • анализируемость кода (лёгкость поиска и исправления ошибок);
    • модифицируемость (простота добавления новых функций);
    • тестируемость (возможность автоматизированного тестирования);
    • стабильность (устойчивость к побочным эффектам при изменениях);
    • ремонтопригодность (скорость устранения дефектов).
  7. Переносимость (мобильность) — лёгкость переноса на другие платформы:
    • адаптируемость (способность работать в разных окружениях);
    • простота установки (автоматизация развёртывания);
    • замещаемость компонентов (возможность замены отдельных модулей);
    • совместимость с разными ОС, браузерами, устройствами.
  8. Совместимость — взаимодействие с другими системами и компонентами:
    • операционная совместимость (работа с разными версиями ПО);
    • интеграция с внешними сервисами (API, базы данных);
    • поддержка стандартов обмена данными.

Дополнительные критерии оценки

  • Качество документации:
    • полнота описания функционала;
    • актуальность информации;
    • понятность инструкций;
    • наличие примеров использования.
  • Экономическая эффективность:
    • стоимость владения (TCO — Total Cost of Ownership);
    • окупаемость инвестиций (ROI);
    • затраты на сопровождение.
  • Соответствие стандартам:
    • отраслевым (PCI DSS, HIPAA);
    • нормативным (152‑ФЗ, GDPR);
    • техническим (IEEE, W3C).
  • Пользовательский опыт (UX):
    • удовлетворённость пользователей (NPS, SUS);
    • эмоциональная реакция на интерфейс;
    • снижение количества ошибок пользователя.

Количественные метрики для оценки критериев

КритерийМетрикаФормула/Способ измерения
Функциональная полнотаПокрытие требованийобщее число требованийреализованные требования​×100%
ПроизводительностьВремя откликаСреднее время обработки запроса (мс)
НадёжностьMTBF (Mean Time Between Failures)Среднее время между сбоями (часы)
СопровождаемостьПлотность дефектовLOCчисло дефектов​×1000 (дефектов на 1 000 строк кода)
ЗащищённостьУязвимостиКоличество уязвимостей по CVSS (Common Vulnerability Scoring System)
Удобство использованияSUS (System Usability Scale)Средний балл по анкете (1–100)
ПереносимостьПлатформыЧисло поддерживаемых ОС/устройств
Качество кодаПокрытие тестамиобщее число строкстроки, покрытые тестами​×100%

Методы оценки критериев качества

  1. Тестирование:
    • функциональное (проверка требований);
    • нагрузочное (оценка производительности);
    • юзабилити‑тестирование (оценка удобства);
    • тестирование безопасности (поиск уязвимостей);
    • регрессионное (проверка стабильности после изменений).
  2. Статический анализ кода:
    • проверка стиля кодирования;
    • поиск потенциальных ошибок;
    • оценка сложности кода (цикломатическая сложность).
  3. Динамический анализ:
    • профилирование производительности;
    • мониторинг использования памяти;
    • анализ сетевого трафика.
  4. Экспертная оценка:
    • code review (ревизия кода);
    • аудит архитектуры;
    • UX‑экспертиза интерфейса.
  5. Обратная связь от пользователей:
    • опросы и анкеты (NPS, SUS);
    • сбор отзывов через формы обратной связи;
    • анализ обращений в техподдержку.

Инструменты для оценки критериев качества

  • функциональность: Selenium, Postman, SoapUI;
  • производительность: JMeter, Gatling, k6;
  • надёжность: Chaos Engineering (Gremlin), мониторинговые системы;
  • юзабилити: UserTesting, Hotjar, Crazy Egg;
  • безопасность: OWASP ZAP, Burp Suite, Nessus;
  • сопровождаемость: SonarQube, ESLint, Pylint;
  • документация: Doxygen, Sphinx, Swagger;
  • мониторинг: Prometheus, Grafana, New Relic.

Вывод: критерии качества программного продукта охватывают широкий спектр характеристик — от технической реализации до пользовательского опыта. Комплексная оценка по всем критериям позволяет создать ПО, которое не только выполняет свои функции, но и удовлетворяет ожиданиям пользователей, соответствует стандартам и остаётся эффективным в долгосрочной перспективе.