Качество ПО (Software Quality)
Качество ПО – набор характеристик продукта или сервиса, которые характеризуют его способность удовлетворить установленным или предполагаемым потребностям заказчика. Понятие качества имеет разные интерпретации в зависимости от конкретной системы и требований к программному продукту. Кроме того, в разных источниках таксономия и модели качества отличаются. Каждая модель имеет различное число уровней и общее число характеристик качества.
Стандарт ISO 9126-01 рассматривает внешние и внутренние характеристики качества. Первые отображают требования к функционирующему программному продукту. Для того чтобы количественно определить критерии качества, по которым будет осуществляться проверка и подтверждение соответствия ПО заданным требованиям, определяются соответствующие внешние измеряемые свойства (внешние атрибуты) ПО и метрики, к которым относятся . модели оценки атрибутов и диапазоны изменения значений соответствующих атрибутов. Метрики, применение которых возможно только для работающего на компьютере ПО, используются на стадии тестирования или функционирования, называются внешними метриками.
Внутренние характеристики качества и внутренние атрибуты ПО используются при составлении плана достижения необходимых внешних характеристик качества для конечного программного продукта. Для квантификации внутренних характеристик качества используются метрики проверки соответствия промежуточных продуктов внутренним требованиям к качеству, которые получаются на этапах предыдущих тестированию (определение требований, проектирование, кодирование).
Внешние и внутренние характеристики качества отображают свойства самого ПО (работающего или не работающего), а также взгляд заказчика и разработчика на это ПО. Непосредственного конечного пользователя ПО интересует эксплуатационное качество ПО – совокупный эффект характеристик качества, который измеряется в сроках использования результата, а не свойств самого ПО. Это понятия шире, чем любая отдельная характеристика (например, удобство использования или надежность).
Окончательная оценка качество проводится в соответствии со стандартом ISO 15504-98 [15]. Качество может повышаться за счет постоянного улучшения используемого продукта, в связи с процессами обнаружения, устранения и предотвращения сбоев/ дефектов в ПО.
Область знаний «Качество ПО (Software Quality)» состоит из следующих разделов:
– концепция качества ПО (Software Quality Concepts),
– определение и планирование качества (Definition & Planning for Quality),
– деятельности и техники гарантии качества и V&V(Activities and Techniques for Software Quality Assurance, Validation –V & Verification – V),
– измерения в анализе качества ПО (Measurement in Software Quality Analysis).
При рассмотрении данной области знаний представлен обширный материал по изучению проблемы качества ПО и путей его достижения в процессе проектной деятельности групп разработчиков.
Концепция качества ПО включает внешние и внутренние характеристики качества, их метрики, а также модели качества, определенные на множестве внешних и внутренних характеристик, которые определены в стандартах качества [16] – это шесть характеристик и для каждого из них 4-5 атрибутов. К характеристикам качества относятся:
– функциональность,
– надежность,
– удобства использования,
– эффективность,
– сопровождаемость,
– переносимость.
Базовая модель качества включает эти характеристики и относится к любому типу программных продуктов. При разработке требований заказчик формулирует те требования к качеству, которые наиболее подходят для заказываемого программного продукта.
Определение и планирование качества ПО
основывается на положениях стандартов в этой области, составлении планов графиков работ и процедурах проверки и др. План обеспечения качества включает набор действий для проверки процессов обеспечения качества (верификация, валидация и др.) и формирование документа по управлению качеством.
Управления качеством применяется к процессам, продуктами и ресурсам, а также включает требования к процессам и их результатам.
Планирование качества включает:
– определение продукта в терминах заданных характеристик качества;
– планирование процессов для получения требуемого качества;
– выбор методов оценки планируемых характеристик качества и установления соответствия продукта сформулированным требованиям.
В стандарте 12207 определены специальные процессы: обеспечения качества, верификации, аттестации (валидации), совместного анализа, аудита. Области ядра знаний SWEBOK (пп.1.7 и 1.8) предлагают методы разработки программных продуктов в организациях, занимающихся ПО.
Деятельности и техники гарантии качества включают: инспекцию, верификацию и валидацию ПО.
Инспекция ПО – анализ и проверка различных представлений системы и ПО (спецификаций, архитектурных схем, диаграмм, исходного кода и др.) и выполняется на всех этапах ЖЦ разработки ПО.
Верификация ПО – процесс обеспечения правильной реализации ПО, которое соответствует спецификациям, выполняется на протяжении всего жизненного цикла. Верификация дает ответ на вопрос, правильно ли создана система.
Валидация – процесс проверки соответствия ПО функциональным и нефункциональным требованиям и ожидаемым потребностям заказчика.
Верификация и валидация в целом начинаются выполняться на ранних стадиях ЖЦ и ориентированы на качество. Они планируются и обеспечиваются определенными ресурсами с четким распределением ролей. Проверка основывается на использовании соответствующих техник тестирования для обнаружения тех или иных дефектов и сбора статистики. В результате собранных данных проводится оценка правильности реализации требований и работы ПО в заданных условиях.
Измерение в анализе качества ПО основывается на: сборе данных при выполнении процессов создания продукта на заданных ресурсах; определении метрик оценки процессов, ПО и моделей их измерения; документировании измерений и др. Для оценки фактических характеристик качества продукта проводится тестирование ПО путем исполнения кода на тестовых данных, сбора статистики и проведения анализа выходных результатов и полученных рабочих характеристик ПО.
Тесты разрабатываются для имитации работы системы в режиме тестирования с реальными входными данными для проверки правильности работы ПО и сбора данных о числе отказов, дефектах, ошибках и т.п.
В процессе тестирования ПО обнаруживаются разного рода ошибки, которые могут повлиять на получение правильного результата. Исходя из полученных в ПО ошибок устанавливается несоответствие количества реализованных функций, заданных в спецификациях на систему, а также оцениваются нефункциональные характеристики системы, заданные в требованиях (производительность, надежность и др.) с помощью данных, собранных на этом процессе. Проводятся также следующие типы оценок: управление планам, инспекциями, прогонами, аудитами. Сущность управления состоит в принятии решений о необходимости внесения изменений для устранения ошибок, определении адекватности планов и требований, оценки рисков и др.
Целью инспекций является обнаружение различных аномальных состояний в ПО независимыми специалистами команды экспертов и с привлечением авторов промежуточного или конечного продукта. Эксперты инспектирует выполнение требований, интерфейсы, входные данные и т.п., а затем документируют обнаруженные отклонения в проекте.
Назначением аудита является независимая оценка продуктов и процессов на соответствие регулирующим и регламентирующим документам (планам, стандартам и др.), формулирование отчета о случаях несоответствия и предложений для их корректировки.
Таким образом, данная область знаний SWEBOK представляет методологию проведения мероприятий по достижению высокого качества ПО. Рассматриваются характеристики и атрибуты качества, согласно стандарта ISO 9126-98, и приведены способы их достижения на процессах ЖЦ ПО. Определяются виды и техники анализа ПО, прогонки системы на тестах и методы оценки показателей качества.