25/05/2022

Понятие качества, международные стандарты качества

Рассматриваем классификацию международных стандартов качества и характеристики качества по стандарту ISO/IEC 25010

Качество программного обеспечения (Software Quality) по ISTQB

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

Типы стандартов

Международные стандарты:

  • ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)
  • IEEE(Institute of Electrical and Electronic Engineers.)
  • CMM(Capability Maturity Model - Модель Зрелости Процессов)/CMMI(Capability Maturity Model Integration - Интегрированная Модель Зрелости Процессов)

Национальные

  • ГОСТ (применяется на уровне СНГ)
  • ГОСТ Р(РФ), СТБ(Беларуссия), ДСТУ(Украина)
  • BS (British Standard - применяются в Европе)

Отраслевые (межнациональные)

  • DO-178B

Псевдостандарты - "Стандарты де-факто" - стандарты которые были разработаны некоторыми организациями, а потом широко распространились среди какой то отрасли и(или) среди какой-то группы специалистов.

  • PMBOK - Project Menegement Body Of Knoledge, SWEBOK - SoftWare Enginering Body Of Knoledge Не имеют юридической силы. Могут иногда использоваться для сертификации, но эта сертификация не очень формальная и держится на уважении к какой-то организации.

Локальные стандарты внутри организации

  • регламенты, правила, методики

Имеют для отдельно взятой организации такую же силу как и внешние стандарты. Чаще всего разрабатываются на основе какого-то общепринятого стандарта, модифицированного под нужды конкретной организации.

Модели

  • MSF, RUP, XP

Стандарты для людей

  • ISTQB - International Software Testing Qualifications Board - подтверждает, что человек(специалист) обладает нужными характеристиками.

Определение качества ПО по международным стандартам

ISO/IEC 25010:2011 (ГОСТ Р ИСО/МЭК 25010-2015) Systems and software Quality Requirements and Evaluation (SQuaRE) - Продуктовый стандарт

Требования и оценка качества систем и программного обеспечения (SQuaRE). Модели качества систем и программных продуктов

Серия международных стандартов ISO/IEC 25000, также известных как SQuaRE (System and Software Quality Requirements and Evaluation), определяет характеристики, по которым оценивается качество программного продукта.

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

  • функциональная пригодность
  • уровень производительности
  • совместимость
  • удобство использования
  • надежность
  • безопасность
  • удобство сопровождения
  • портативность

Стандарт ISO/IEC 25010 является серьезным пересмотром стандарта ISO/IEC 9126. В новый стандарт добавлены дополнительные характеристики и подхарактеристики, которые более подробно описывают процесс качества программного продукта, а также введены уточнения и перегруппировка характеристик для более ясного их понимания.

Качество программного обеспечения (software quality): Степень удовлетворения программным продуктом заявленных и подразумеваемых потребностей при использовании в указанных условиях.

1061-1998 IEEE Standard for Software Quality Metrics Methodology

Качество программного обеспечения - это степень, в которой ПО обладает требуемой комбинацией свойств.

ISO 9000:2000 Quality Management and Quality Assurance

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

Характеристики качества ПО по стандарту ISO/IEC 25010

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

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

  • функциональная полнота (functional completeness): Степень покрытия совокупностью функций всех определенных задач и целей пользователя.
  • функциональная корректность (functional correctness): Степень обеспечения продуктом или системой необходимой степени точности корректных результатов.
  • функциональная целесообразность (functional appropriateness): Степень функционального упрощения выполнения определенных задач и достижения целей.

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

  1. Уровень Производительности (Performance Efficiency)

Производительность относительно суммы использованных при определенных условиях ресурсов1.

  • временные характеристики (time behaviour): Степень соответствия требованиям по времени отклика, времени обработки и показателей пропускной способности продукта или системы.
  • использование ресурсов (resource utilization): Степень удовлетворения требований по потреблению объемов и видов ресурсов продуктом или системой при выполнении их функций.
  • потенциальные возможности (capacity): Степень соответствия требованиям предельных значений параметров2 продукта или системы.
  1. Совместимость (Compatibility)

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

  • сосуществование (совместимость) (co-existence): Способность продукта совместно функционировать с другими независимыми продуктами в общей среде с разделением общих ресурсов и без отрицательного влияния на любой другой продукт.
  • функциональная совместимость (интероперабельность) (interoperability): Способность двух или более систем, продуктов или компонент обмениваться информацией и использовать такую информацию.
  1. Удобство Использования (Usability)

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

  • определимость пригодности (appropriateness recognizability): Возможность пользователей понять, подходит ли продукт или система для их потребностей, сравним ли с функциональной целесообразностью (functional appropriateness). Определимость пригодности зависит от возможности распознать уместность продукта или функций системы от первоначальных впечатлений о продукте или системе и/или от какой-либо связанной с ними документации.
  • изучаемость (learnability): Возможность использования продукта или системы определенными пользователями для достижения конкретных целей обучения для эксплуатации продукта или системы с эффективностью, результативностью, свободой от риска и в соответствии с требованиями в указанном контексте использования.
  • управляемость (operability): Наличие в продукте или системе атрибутов, обеспечивающих простое управление и контроль.
  • защищенность от ошибки пользователя (user error protection): Уровень системной защиты пользователей от ошибок.
  • эстетика пользовательского интерфейса (user interface aesthetics): Степень "приятности" и "удовлетворенности" пользователя интерфейсом взаимодействия с пользователем.
  • доступность (accessibility): Возможность использования продукта или системы для достижения определенной цели в указанном контексте использования широким кругом людей с самыми разными возможностями3.
  1. Надежность (Reliability)

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

  • завершенность (maturity): Степень соответствия системы, продукта или компонента при нормальной работе требованиям надежности.
  • готовность (availability): Степень работоспособности и доступности системы, продукта или компонента. В общем, готовность можно оценить как долю общего времени, в течение которого система, продукт или компонент находятся в работающем состоянии. Готовность, таким образом, определяется сочетанием завершенности, которая определяет частоту отказов, отказоустойчивости и восстанавливаемости, которая, в свою очередь, определяет продолжительность времени бездействия после каждого отказа.
  • отказоустойчивость (fault tolerance): Способность системы, продукта или компонента работать как предназначено, несмотря на наличие дефектов программного обеспечения или аппаратных средств.
  • восстанавливаемость (recoverability): Способность продукта или системы восстановить данные и требуемое состояние системы в случае прерывания или сбоя. В некоторых случаях после сбоя вычислительная система находится в нерабочем состоянии некоторое время, продолжительность которого определяется ее восстанавливаемостью.
  1. Защита, защищенность (Security)

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

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

Жизнестойкость (survivability) (степень, в которой продукт или система продолжают выполнять свою миссию, предоставляя основные услуги своевременно, несмотря на присутствие атак) обеспечивается восстанавливаемостью.

Защищенность, иммунитет (immunity) (степень устойчивости продукта или системы к атакам) обеспечивается целостностью.

Защищенность (security) вносит свой вклад в доверие (trust).

  • конфиденциальность (confidentiality): Обеспечение продуктом или системой ограничения доступа к данным только для тех, кому доступ разрешен.
  • целостность (integrity): Степень предотвращения системой, продуктом или компонентом несанкционированного доступа или модификации компьютерных программ или данных.
  • неподдельность (non-repudiation): Степень, с которой может быть доказан факт события или действия таким образом, что этот факт не может быть отвергнут когда-либо позже.
  • отслеживаемость (accountability): Степень, до которой действия объекта могут быть прослежены однозначно.
  • подлинность (authenticity): Степень достоверности тождественности объекта или ресурса требуемому объекту или ресурсу.
  1. Сопровождаемость, модифицируемость (Maintainability)

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

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

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

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

  • модульность (modularity): Степень представления системы или компьютерной программы в виде отдельных блоков таким образом, чтобы изменение одного компонента оказывало минимальное воздействие на другие компоненты.
  • возможность многократного использования (reusability): Степень, в которой актив может быть использован в нескольких системах или в создании других активов.
  • анализируемость (analysability): Степень простоты оценки влияния изменений одной или более частей на продукт или систему или простоты диагностики продукта для выявления недостатков и причин отказов, или простоты идентификации частей, подлежащих изменению. Конкретная реализация продукта или системы может включать в себя механизмы анализа собственных дефектов и формирования отчетов об отказах и других событиях.
  • модифицируемость (modifiabiIity): Степень простоты эффективного и рационального изменения продукта или системы без добавления дефектов и снижения качества продукта.
    • Реализация модификации включает в себя кодирование, разработку, документирование и проверку изменений.
    • Модульность и анализируемость могут оказывать влияние на модифицируемость.
    • Модифицируемость - это сочетание изменяемости и устойчивости.
  • тестируемость (testability): Степень простоты эффективного и рационального определения для системы, продукта или компонента критериев тестирования, а также простоты выполнения тестирования с целью определения соответствия этим критериям.
  1. Переносимость, мобильность (Portability)

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

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

  • адаптируемость (adaptability): Степень простоты эффективной и рациональной адаптации для отличающихся или усовершенствованных аппаратных средств, программного обеспечения, других операционных сред или условий использования. В адаптируемость входит и масштабируемость внутренних потенциальных возможностей (например, экранных полей, таблиц, объемов транзакции, форматов отчетов и т.д.). Адаптация может быть выполнена как специализированным техническим персоналом, так и рабочим или операционным персоналом и конечными пользователями. Если система должна быть адаптирована конечным пользователем, то адаптируемость соответствует пригодности для индивидуализации, как это определено в ИСО 9241-110.
  • устанавливаемость (installability): Степень простоты эффективной и рациональной, успешной установки и/или удаления продукта или системы в заданной среде. В случае если продукт или система должны устанавливаться конечным пользователем, устанавливаемость может повлиять на результирующие функциональную целесообразность и управляемость.
  • взаимозаменяемость (replaceability): Способность продукта заменить другой конкретный программный продукт для достижения тех же целей в тех же условиях. Взаимозаменяемость новой версии программного продукта важна для пользователя при обновлении продукта. Во взаимозаменяемость могут быть включены атрибуты как устанавливоемости, так и адаптируемости. Понятие было введено как отдельная подхарактеристика из-за ее важности. Взаимозаменяемость снижает риск блокировки таким образом, что, например, при стандартизации форматов файлов допускается применение других программных продуктов вместо используемого.

Источники информации

  1. ГОСТ Р ИСО/МЭК 25010-2015

  2. Тестирование ПО: Стандарты в области тестирования и их применение на практике

Дополнительно можно посмотреть:

Computer Science Center: Лекция 13. Качество ПО


  1. Ресурсы могут включать в себя другие программные продукты, конфигурацию программного и аппаратного обеспечения системы и материалы (например, бумагу для печати, носители)
  2. В качестве параметров могут быть возможное количество сохраняемых элементов, количество параллельно работающих пользователей, емкость канала, пропускная способность по транзакциям и размер базы данных
  3. В диапазон возможностей входят ограничения возможностей, связанные с возрастом