Качество программного обеспечения: стандарты и оценка. Технологическое обеспечение качества программного обеспечения
Качество программного обеспечения (ПО) определяется на основе изучения внешних и внутренних особенностей продукта. Внешнее качество определяется по тому, как оно работает в режиме реального времени, насколько продуктивно для пользователей. Вторая особенность фокусируется на внутренних аспектах, которые зависят от качества написанного кода. Пользователь больше сосредотачивается на том, как ПО работает на внешнем уровне, качество которого может поддерживаться только в том случае, если специалист написал хороший программный код.
Качество программного обеспечения
В настоящее время существует два важных подхода, которые используются для определения качества ПО:
- Управление дефектами.
- Атрибут качества.
Все, что не соответствует требованию клиента, попадает в разряд дефектов. Команда разработчиков, которая не в состоянии полностью понять требования клиента, будет допускать ошибки проектирования.
В управлении дефектами их категории определяются на основе серьезности. Количество проблем с ПО подсчитывается и принимаются меры, согласно установленной серьезности. Контрольные диаграммы могут быть созданы для измерения возможностей процесса разработки.
Качество программного обеспечения значительно улучшилось за последние два десятилетия. Одна из причин этого заключается в том, что компании используют новые технологии, такие как объектно-ориентированную разработку и инструменты CASE. Кроме того, можно наблюдать растущую важность внедрения методов управления на производстве.
Управление качеством ПО делится на три основных направления:
- Гарантия. Разработка основ организационных мероприятий и стандартов качества программного обеспечения..
- Планирование. Выбор соответствующих стандартов и адаптация под конкретный программный проект.
- Контроль. Определение процессов, которые гарантируют, что разработка ПО соответствует стандартам качества.
Политика организации SQA
Политика организации в отношении качества программного обеспечения должна выполнять следующие требования:
- Соответствие целям и задачам организации.
- Приверженность общим концепциям обеспечения качества.
- Приверженность стандартам качества, принятым организацией.
- Обязательства выделять адекватные ресурсы.
- Стремление к постоянному улучшению качества и производительности организации.
Чтобы были выполнены все требования стандарта, компании назначают ответственного по качеству. Обязанности данного сотрудника:
- Ответственность за подготовку годовой программы мероприятий и бюджета SQA.
- Организация разработки планов развития системы SQA.
- Общий контроль за выполнением ежегодной программы регулярных мероприятий и запланированных проектов развития.
- Определение соответствия программы мероприятий характеристикам и объему услуг субподрядчика и закупок ПО, запланированных на будущий год.
- Презентация и пропаганда вопросов SQA для исполнительного руководства.
- Изучение предложений, подготовленных отделом SQA для ежегодной программы мероприятий, проверка потенциала предложения для достижения целей.
Концепции высокого уровня
Качественные характеристики - это концепции высокого уровня, которые отражают важные аспекты и не подвергаются прямой оценке качества программного обеспечения. Вместо этого в плане должны быть определены соответствующие показатели, которые можно использовать для определения одной или нескольких характеристик.
Например, при оценке синтаксического анализатора XML можно использовать набор тестов на соответствие XML W3C. Он включает в себя тесты, разработанные для удовлетворения всех направлений контроля, а также рекомендации W3C Extensible Markup Language (XML) с особым акцентом на требованиях к обработке ошибок в правильности или достоверности документов XML. Таким образом процент пройденных тестовых случаев используется, как метрика для оценки следующих характеристик рассматриваемого XML-анализатора:
- Перспектива пользователя.
- Функциональность.
- Надежность и отказоустойчивость.
С точки зрения пользователя есть несколько важных характеристик, отвечающих на следующие вопросы:
- Кто предоставляет полный спектр необходимых функций по назначению?
- Надежно ли работает ПО для получения необходимых результатов при правильном использовании?
- Функционирует ли программа безопасно и надежно в случае неправильного ввода?
- Легко ли использовать программный продукт?
- ПО функционирует быстро или кажется излишне медленным?
- Хорошо ли сочетается программа с другим продуктом, который использует пользователь?
Считая, что вопросы качества пользователю важны, ИТ-группа, отвечающая за развертывание и обслуживание ПО, может столкнуться с другими проблемами:
- Защита от вредоносных атак.
- Качество использования вычислительных ресурсов.
Некачественными ресурсами считаются те, которые требует больше памяти и вычислительной мощности, чем необходимо.
ИСО обеспечивает эту модель двумя новыми категориями высшего уровня, связанными с технологическим обеспечением качества программного обеспечения.
Требования ISO 9126 к продукту
ISO 9126 является международным стандартом для оценки ПО. Он разделен на четыре части, в которых рассматриваются следующие темы:
- Внешние показатели.
- Внутренние показатели.
- Модель качества.
- Показатели качества программного обеспечения.
Первая часть ISO 9126 является расширением предыдущего стандарта, выполненного McCall (1977), Boehm (1978) и FURPS в определении набора характеристик качества.
Документация ISO 9126 является объектом авторского права. Модель качества ISO 9126-1 определяет 6 основных характеристик:
- Функциональность.
- Надежность.
- Юзабилити.
- КПД.
- Ремонтопригодность.
- Портативность.
Функциональность продукта
Функциональность является основной целью любого продукта или услуги. Чем больше возможностей использования товара, тем сложнее становится определить его функциональность. Для ПО может быть указан список того, что для него доступно.
Некоторые перечисленные характеристики ПО (например, удобство) присутствуют только в определенной степени, то есть не просто «включен» или «отключен». Многие люди путают общую функциональность процесса и программного продукта. Часто это связано с тем, что диаграммы потоков данных (DFD) и другие инструменты моделирования могут отражать функциональность процесса, как набор преобразованных данных в data out.
ISO 9126-1 и другие модели качества не помогают измерить общие затраты или выгоды процесса, а исследуют только программный компонент. Взаимосвязь между функциональными возможностями ПО в рамках общего бизнес-процесса выходит за рамки ISO 9126.
Следующие возможности атрибутов характеризуют полезность ПО в данной среде. Каждая из них может быть измерена только при наличии соответствующих программ системы.
Характеристики надежности и юзабилити
Как только система программного обеспечения начинает функционировать, характеристика надежности определяет ее способность поддерживать предоставление своих услуг в определенных условиях в течение конкретных периодов времени. Одним из аспектов этой характеристики является отказоустойчивость. Например, если сеть отключается в течение 20 секунд, то система должна быть в состоянии восстановить и продолжить работу.
Способность учиться использовать систему (обучаемость) является одной из основных характеристик юзабилити.
КПД связан с системными ресурсами, применяемыми при предоставлении необходимой функциональности. Объем дискового пространства, память и сеть являются хорошими показателями КПД. Как и в случае ряда других критериев, существуют совпадения между ними. Например, удобство использования системы влияет на ее производительность.
Ремонтопригодность и портативность
Способность идентифицировать и исправить ошибку в программном компоненте - это то, к чему относится характеристика ремонтопригодности. На ее показатели влияет читаемость или сложность кода, а также модульность. Это то, что помогает идентифицировать причину неисправности, чтобы затем устранить ее.
Характеристики ремонтопригодности:
- Анализируемость - выявляет основную причину отказа.
- Изменчивость - определяет усилия, которые прилагаются к модификации кода для устранения ошибки.
- Стабильность - демонстрирует, насколько стабильна система в работе, когда в нее вносятся изменения.
- Тестируемость - определяет, сколько усилий идет на тестирование системы.
- Переносимость - способность системы адаптироваться к изменениям в ее среде.
- Адаптируемость - насколько легко система адаптируется к изменениям, внесенным в спецификации.
- Скорость установки - насколько легко система может быть установлена.
- Возможность замены - насколько легко можно заменить компонент системы.
- Стоимость качества ПО. Она очень важна. Когда разработчик решит провести тестирование для своего продукта, он на самом деле собирается потратить время, деньги и усилия на ее проверку.
- Пригодность - определяет, соответствуют ли функции ПО требованиям.
- Точность - устанавливает правильность реализации функций.
- Функциональная совместимость - взаимодействуя с другими компонентами системы.
- Соответствие ПО необходимым законам и рекомендациям.
- Обеспечение качества и безопасности программного обеспечения и обработки транзакций, связанных с данными.
- Надежность - способность ПО работать в определенных условиях в течение обозначенного периода времени.
- Зрелость - частота сбоев ПО.
- Восстанавливаемость - представление о способности системы вернуться к полноценной работе после сбоя.
Портативность относится к тому, насколько хорошо ПО может адаптироваться к изменениям в его среде или с его требованиями. Объектно-ориентированные методы проектирования и реализации могут способствовать тому, насколько эти характеристики качества программного обеспечения присутствует в данной системе.
Стоимость процессов анализа
Стоимость качества рассчитывается путем анализа затрат на соответствие и несоответствие. Цена первого показателя связана с:
- Расходами на профилактику. Это сумма, потраченная на обеспечение правильного соблюдения всех методов. Она включает в себя обучение командам, проверки кода и любые другие действия, связанные с QA.
- Затратами на оценку. Это сумма денег, потраченная на планирование всех тестовых заданий, а затем на их выполнение, например, на разработку тестовых примеров.
- Расходы на несоответствие. Это затраты, которые возникают из-за внутренних и внешних сбоев.
Внутренние сбои - это расходы, которые появляются, когда тестовые примеры выполняются впервые на внутреннем уровне, при этом некоторые из них терпят неудачу. Расходы возникают, когда программист должен исправить все дефекты, выявленные в его фрагменте во время модульного или компонентного тестирования.
Внешние сбои - это расходы, которые возникают, когда дефект устанавливается заказчиком, а не тестером. Эти расходы намного больше, чем те, которые появляются на внутреннем уровне. Особенно это актуально, если усиливается программный сбой.
Дисциплинированный анализ процесса
Это процессорная оценка программного продукта. Она включает в себя выявление и характеристику текущей практики, определение сильных и слабых сторон, а также способность контролировать или избегать существенные причины плохого качества товара. Аудит программ может быть трех типов:
- Самооценка. Проводится внутри собственного персонала организации.
- Оценка сторонней организации.
- Оценка третьей стороной.
Аудит процесса ПО выполняется в открытой общей среде с целью улучшения его показателей и с использованием программ обеспечения качества программного обеспечения. Результаты такого аудита являются конфиденциальными для организации.
Что касается сбора данных, то используются четыре метода:
- Стандартный перечень вопросов зрелости.
- Индивидуальные и групповые интервью.
- Обзоры документов.
- Отзывы о рассмотрении проекта участниками оценки.
Стандартный метод SCAMPI
Определение IEEE для обеспечения качества программного обеспечения:
- Запланированная систематическая схема всех действий, необходимых для создания достаточной уверенности в том, что изделие или продукт соответствует необходимым техническим требованиям.
- Совокупность действий оценки процесса обеспечения качества программного обеспечения, с помощью которого продукты разрабатываются или производятся.
CMMI (Software Engineering Institute) для улучшения процессов (SCAMPI) был разработан для удовлетворения требований, основанных на IPA ЦБА и CBA.
IPI, и SCAMPI состоят из трех этапов:
- План и подготовка.
- Проверка оценки на месте.
- Отчет о результатах.
Действия для плана и этапа подготовки включают в себя такие факторы:
- Определение области оценки.
- Разработка плана.
- Подготовка оценочной команды.
- Выставление оценок участникам.
- Администрирование оценочной анкеты CMMI.
- Изучение ответов в анкетах.
- Проведение первичного осмотра документов.
Мероприятия на этапе представления отчетности включают в себя:
- Представление окончательных результатов.
- Проведение исполнительной сессии.
- Завершение оценки качества программного обеспечения.
Мероприятия для этапа оценки на месте включают:
- Организацию открытия проекта.
- Проведение интервью.
- Обобщение информации.
- Подготовку презентации итогов.
- Организацию закрытия проекта.
Организационная структура персонала
Она включает тех, кто отвечает за качество программного обеспечения. Такими людьми могут быть:
- Менеджеры.
- Руководители высшего звена, особенно те, которые непосредственно отвечают за обеспечение качества.
- Руководители отдела разработки и сопровождения.
- Менеджеры отдела тестирования.
- Менеджеры проектов и руководители команд разработки и сопровождения проектов.
- Лидеры команд тестирования.
- Тестеры.
Члены команд тестирования:
- Специалисты SQA и заинтересованные практики.
- SQA попечители.
- Члены комитета и участники форума SQA.
- Члены команды подразделения SQA.
Только руководители и сотрудники отдела тестирования заняты полный рабочий день для выполнения задач SQA. Другие посвящают только часть своего рабочего времени вопросам качества.
По сути, в организациях по разработке существует трехуровневая структура управления:
- Высшее руководство.
- Управление отделом.
- Управление проектом.
Менеджер проекта - это лицо, ответственное за то, чтобы все члены команды выполняли указанные процедуры и инструкции. В его задачи входят профессиональные практические и управленческие вопросы. Менеджеры проектов выполняют такие функции:
- Работа подразделения по разработке и сопровождению ПО.
- Работа по интеграции и тестированию системы разработки программного обеспечения, исправлению и выполнению регрессивных тестов.
- Выполнение проверок и последующие исправления недочетов.
- Выполнение приемо-сдаточных испытаний.
- Установка программного обеспечения на удаленных клиентских сайтах.
Необходимость установки антивирусных утилит
Приобретая новое ПО, пользователь задумывается над вопросом о том, когда необходима покупка антивирусного программного обеспечения. Многие все еще называют этот тип ПО антивирусом, хотя сегодня данный термин устарел.
Хуже всего то, что «лучшая» вредоносная программа, если можете ее так назвать, тихо проникает на компьютер без ведома хозяина. Возможно, она будет скрытой от глаз пользователя, но вред принесет.
С серьезной модернизацией операционных систем необходимость установления подобных сомнительных программ по защите ПК отпала. У пользователей теперь есть Windows 10. В ней Microsoft встроила два важных инструмента: брандмауэр и защитник Windows.
Эти два удара предназначены для обеспечения безопасности ПК. Поскольку они интегрированы в ОС, то не требуется лишних внешних программных ресурсов. Microsoft часто обновляет утилиты, стараясь не допустить появления новых угроз. Если по какой-либо причине что-то прорывается, существует усиленная версия "обороны" - защитник Windows. Он работает в автономном режиме. Можно запустить его, не подключаясь к интернету с USB-накопителя.
Защитник Windows - хороший инструмент. Нет никаких причин не использовать его. С ним у владельцев нового ПО не возникают такие аварийные ситуации, когда необходима покупка антивирусного программного обеспечения.