exam

Оценка качества программного обеспечения.

Качество программного обеспечения (ПО) — способность продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям (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)

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

Модель качества в использовании (ISO/IEC 25010)

Оценивает восприятие качества конечными пользователями:

  • результативность — достижение целей пользователя;
  • производительность — затраты ресурсов пользователя;
  • удовлетворённость — эмоциональный отклик;
  • свобода от риска — минимизация угроз для бизнеса/здоровья;
  • покрытие контекста — пригодность для разных сценариев использования.

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

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

Этапы процесса оценки качества

  1. Установление требований:
    • определение характеристик качества для проекта;
    • установка целевых значений метрик;
    • согласование критериев приёмки.
  2. Подготовка к оцениванию:
    • выбор методов и инструментов оценки;
    • разработка тест‑кейсов и сценариев;
    • настройка среды тестирования.
  3. Процедура оценивания:
    • измерение метрик (сбор данных);
    • ранжирование результатов (сравнение с эталоном);
    • комплексная оценка (обобщение данных).
  4. Принятие решений:
    • формирование отчёта о качестве;
    • приоритизация дефектов;
    • планирование улучшений.

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

  • статический анализ: 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), комбинации методов и автоматизированных инструментов позволяет объективно измерять характеристики продукта, выявлять недостатки и принимать обоснованные решения для повышения качества.