Критерии качества ПО (software product quality)
Мы используем cookie-файлы, чтобы получить статистику, которая помогает нам улучшить сервис для Вас с целью персонализации сервисов и предложений. Вы можете прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом без изменения настроек, вы даёте согласие на использование ваших cookie-файлов.
speech bubble

Критерии качества ПО (software product quality)

Критерии  качества ПО (software product quality)

Качество программного обеспечения определяется с субъективной точки зрения. Для равенства мнений, как команды тестирования, так и заказчика (бизнеса), степень качества определяется по описанным ранее требованиям (Техническому заданию). В противном случае, невозможно определить начало данного критерия и логическое окончание. Определимся с понятиями качества и оценки качества программного обеспечения.

Качество (quality) — уровень, соответствующий требованиям или ожиданиям пользователя, поведения тестируемой системы. 

Качество системы (quality of a system) – степень, удовлетворяющая заявленные и подразумеваемые потребности системы различных заинтересованных сторон и обеспечивающая её ценность.

Качество продукта (software product quality) — комплекс эксплуатационных способностей, особенностей заявленного программного обеспечения, удовлетворяющие предоставленным требованиям или ожиданиям пользователя.

Внешнее качество ПО (external software product quality) – умение удовлетворить ожидания пользователя, использующего продукт. 

Внутреннее качество ПО (internal software product quality) – удобство разработки, тестирования продукта внутренней команды, основанными на жизненном цикле и документации.

В определенных случаях, вы столкнётесь с примерами, когда заказчик смоделирует свои пожелания в виде требований, составленные и интерпретируемые двояко. Хозяин продукта (Product owner) может пропустить банальные, на его взгляд вещи, и ожидать иного результата, нежели тот, которого добился тестировщик по ТЗ.  Для подобных случаев заказчику помогают технические специалисты (инженеры QA) в формировании грамотных требований к продукту, руководствуясь стандартом качества ISO/IEC 25010. 

 

Модель, критерии качества в ISO/IEC 25010

Модель качества является краеугольным камнем системы оценки качества продукции, определяющая критерии качества, учитывающиеся при оценке свойств, программного продукта. Модель в ISO/IEC 25010 включает восемь характеристик и тридцать одну подхарактеристику, показанных на схеме:

Модель качества в ISO/IEC 25010


Критерии оценки качества программного продукта стандарта (гост) ISO/IEC 25010:

  1. Функциональная пригодность (Functional Suitability)
  2. Эффективность производительности (Performance efficiency)
  3. Совместимость (Compatibility)
  4. Удобство использования (Usability)
  5. Надёжность (Reliability)
  6. Безопасность (Security)
  7. Поддерживаемость (Maintainability)
  8. Переносимость (Portability)

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

 

Функциональная пригодность (Functional Suitability)

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

  • Функциональная полнота (Functional completeness) – степень покрытия набора функций, указанных задач и целей конечного пользователя.
  • Функциональная правильность (Functional correctness) – степень продукта или системы, обеспечивающая правильные результаты с необходимым уровнем точности.
  • Функциональная целесообразность (Functional appropriateness) — степень облегчения выполнения задач и целей с помощью функций.

Пример функциональной пригодности: приложение для просмотра кинофильмов должно соответствовать своей цели, а именно: поиск, показ видео по заданным параметрам, возможность получить краткую и полную информацию о просмотренном фильме. 

 

Эффективность производительности (Performance efficiency)

Характеристика представляет производительность по отношению к количеству имеющихся ресурсов, используемых в указанных условиях.

  • Поведение во времени (Time behaviour) — соответствующая требованиям степень времени отклика, обработки и пропускной способности продукта или системы при выполнении своих функций.
  • Использование ресурсов (Resource utilization) – соответствующая требованиям степень количества и типов ресурсов, используемых продуктом или системой при выполнении своих функций.
  • Производительность (Capacity) — соответствующая требованиям степень максимальных пределов параметра.

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

 

Совместимость (Compatibility)

Степень обменивающейся информации с другими продуктами, системами или компонентами и/или выполнять требуемые функции, использующие аналогичную аппаратную или программную среду.

  • Сосуществование (Co-existence) — степень эффективного выполнения продуктом требуемых функций при совместном использовании общей среды и ресурсов с другими разработками без вредного влияния на другие существующие продукты.
  • Совместимость (Interoperability) – степень обмена и использование обмененной информации двух или более систем, продуктов или компонентов.

Пример совместимости: использование google приложения календаря для добавление предстоящих встреч из почтового клиента.  

 

Удобство использования (Usability)

Степень использования системы, продукта определенными пользователями для достижения необходимых целей с эффективностью, действенностью и удовлетворением в определенном контексте использования.

  • Узнаваемость (Appropriateness recognizability) – степень распознания функциональностей пользователями на соответствие их потребностям.
  • Обучаемость (Learnability) — степень использования продукта или системы определенными пользователями для достижения целей обучения разработки или системы с эффективностью и  результативностью.
  • Оперативность (Operability) – степень облегчения эксплуатации и контроля продукта или системы.
  • Защита от ошибок пользователя (User error protection) – степень защиты пользователей от ошибок.
  • Эстетика пользовательского интерфейса (User interface aesthetics) — степень обеспечения пользовательским интерфейсом приятного и удовлетворяющего взаимодействие с пользователем.
  • Доступность (Accessibility) — степень использования пользователями с самым широким диапазоном умений и возможностей для достижения определенной цели в определенном контексте.

Пример юзабилити: пользователю понятны предназначения кнопок, обучение в приложении расположено на страницах, где находится юзер. Вся информация располагается доступно. Неверные введенные данные выдают подсказку и сообщение об ошибке с возможностью корректировки, а не добавлением информации заново. Приложение доступно для пользователей с разным уровнем владения средством взаимодействия (смартфон, компьютер, планшет)

 

Надёжность (Reliability)

Степень выполнения функций в определенных условиях в течение конкретного периода времени.

  • Завершенность (Maturity) – степень удовлетворения требований надёжности при нормальной эксплуатации.
  • Доступность (Availability) – степень нахождения в рабочем состоянии и доступности для использования.
  • Отказоустойчивость (Fault tolerance) — степень работы должным образом, несмотря на наличие аппаратных или программных сбоев.
  • Восстанавливаемость (Recoverability) — степень восстановления затронутых данных в случае сбоя продукта или система.

Пример надёжности: возможность приложения выдерживать стресс нагрузки при наплыве пользователей, обработка DDos-атак, сохранение и восстановление данных после ошибок, отказов и сбоев.

 

Безопасность (Security)

Степень защиты информации и данных и соответствующая типам и уровням авторизации конечных пользователей.

  • Конфиденциальность (Confidentiality) — степень гарантии доступности данных для доверенного круга пользователей.
  • Целостность (Integrity) – степень предотвращения несанкционированного доступа или модификации компьютерных программ.
  • Безотказность (Non-repudiation) – степень  доказательств действий или событий с дальнейшей невозможностью их опровержения.
  • Подотчетность (Accountability) — степень отслеживания действий объекта.
  • Подлинность (Authenticity) – степень идентичности субъекта или ресурса.

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

 

Поддерживаемость (Maintainability)

Характеристика, представляющая степень эффективности и действенности модифицированности и улучшения, исправления или адаптации к изменениям в окружающей среде и требованиям.

  • Модульность (Modularity) — степень изменения одного компонента с оказанием минимального влияния на другие компоненты.
  • Возможность повторного использования (Reusability) — степень использования более чем в одной системе или при создании других компонентов.
  • Анализируемость (Analysability) - степень оценки влияния на продукт или систему предполагаемого изменения одной или нескольких его частей, или диагностирования продукта на наличие недостатков или причин отказов, или идентификации изменяемой части.
  • Модифицируемость (Modifiability) - степень модифицирования без внесения дефектов или ухудшения качества существующего продукта.
  • Тестируемость (Testability) — степень эффективности и действенности тестирования, которые могут быть установлены для системы, продукта или компонента, и выполнение тестов для определения применения этих критериев.

Пример поддерживаемости: при изменении тарифной, налоговой ставки, быстро иметь возможность среагировать, модифировав код и перейти на необходимые ресурсы. С появлением новых версий операционной системы моментально подстроиться. 

 

Переносимость (Portability)

Степень эффективности и результативности переноса из одного оборудования, программного обеспечения или другой операционной среды в другую.

  • Адаптивность (Adaptability) — степень эффективной и действенной адаптации к различному или развивающемуся оборудованию, программному обеспечению или другим операционным средам.
  • Возможность установки (Installability) — степень эффективности и действенности установки и/или удаления в определенной среде.
  • Заменяемость (Replaceability) — степень замены другого указанного программного продукта для аналогичной цели в сопоставимой среде.

Пример переносимости: установка, перенос приложения с одной операционной системы на другую. 

 

Для комментирования необходимо авторизоваться