<style>.lazy{display:none}</style>Обеспечение качества ПО (SQA)

Обеспечение качества ПО (SQA)

Обеспечение качества программного обеспечения (SQA, Software Quality Assurance) – это набор процедур, который гарантирует, что все процессы, методы, действия и рабочие элементы разработки программного обеспечения контролируются и соответствуют установленным стандартам. Эти установленные стандарты могут быть одним или комбинацией любых стандартов, таких как ISO 9000, модель CMMI, ISO15504 и т. д.

SQA включает в себя все процессы разработки ПО, начиная с определения требований и заканчивая написанием кода и выпуском продукта в эксплуатацию. Его главная цель – обеспечить наивысший уровень качества ПО.

Содержание:

План обеспечения качества ПО

Деятельность SQA

Стандарты обеспечения качества ПО

Элементы обеспечения качества ПО

Методы контроля качества ПО

Заключение

План обеспечения качества ПО

SQAP (Software Quality Assurance Plan), он же план обеспечения качества программного обеспечения, включает в себя процедуры, методы и инструменты, которые используются для того, чтобы убедиться, что продукт или услуга соответствуют требованиям, определенным в SRS (Software Requirements Specification, спецификация требований к ПО).

План определяет обязанности QA команды и перечисляет области, которые необходимо протестировать. Он также определяет артефакты SQA.

Документ плана SQA состоит из следующих разделов:

  • Цели.
  • Ссылки.
  • Управление конфигурацией программного обеспечения.
  • Сообщение о проблемах и корректирующие действия.
  • Инструменты, технологии и методологии.
  • Контроль кода.
  • Документы и артефакты: Сбор, ведение и хранение.
  • Методология тестирования.

Деятельность SQA

Ниже приведен список мероприятий SQA:

1. Создание плана SQA менеджмента.

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

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

2. Установка контрольных точек.

Команда SQA устанавливает различные контрольные точки (чек-поинты). Это необходимо, чтобы гарантировать, что разработка продукта идет по плану и соответствует ожиданиям. Это обеспечивает регулярную проверку качества и работу в соответствии с графиком.

3. Поддержка/участие в сборе требований команды разработчиков ПО.

Участие в процессе разработки программного обеспечения для сбора высококачественных спецификаций. Для сбора информации можно использовать такие методы, как интервью и метод системы функционального анализа FAST (Functional Analysis System Technique).

Позже, основываясь на собранной информации, разработчик ПО может подготовить оценку проекта. Для этого он использует такие методы, как WBS (Work Breakdown Structure, иерархическая структура работ), SLOC (Source Lines of Code, количество строк кода) и оценка FP (functional point – функциональная точка).

4. Проведение технических проверок.

Технические ревью, они же FTR (Formal Technical Reviews), традиционно используются для оценки качества и дизайна прототипа.

В ходе этого процесса проводится встреча с техническим персоналом для обсуждения требований к качеству программного обеспечения и качества дизайна прототипа. Это помогает обнаружить ошибки на ранней стадии SDLC и снижает затраты на доработку на более поздних этапах.

5. Формулирование стратегии мультитестирования.

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

6. Обеспечение соблюдения процессов.

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

Эта деятельность представляет собой сочетание двух мероприятий, которые подробно описаны ниже:

(i) Оценка продукта:

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

(ii) Мониторинг процесса:

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

7. Контроль изменений.

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

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

8. Измерение влияния изменений.

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

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

9. Проведение SQA-аудитов.

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

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

10. Ведение записей и отчетов.

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

11. Поддержание хороших отношений.

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

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

Стандарты обеспечения качества ПО

Жизненный цикл разработки программного обеспечения и, в частности, SQA может требовать соответствия стандартам качества, таким как:

ISO 9000: Этот стандарт основан на семи принципах управления качеством, которые помогают организациям гарантировать, что их продукция или услуги соответствуют потребностям клиентов.

7 принципов ISO 9000 представлены на рисунке ниже:

7 принципов ISO 9000

Уровень CMMI: CMMI расшифровывается как Capability maturity model Integration и означает набор методологий совершенствования процессов в организациях разных сфер и размеров. Эта модель возникла в области разработки программного обеспечения. Ее можно использовать для улучшения процессов в рамках проекта, отдела или всей организации.

5 уровней CMMI и их характеристики описаны на рисунке ниже:

5 уровней CMMI

Организация оценивается и получает рейтинг уровня зрелости (1-5) в зависимости от типа оценки.

Интеграция модели зрелости тестирования (TMMi, Test Maturity Model integration): Эта модель, основанная на CMMi, фокусируется на уровнях зрелости в управлении качеством программного обеспечения и тестировании.

5 уровней TMMi показаны на рисунке ниже:

5 уровней TMMi

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

Элементы обеспечения качества ПО

Существует 10 основных элементов SQA:

  1. Стандарты разработки программного обеспечения: команды SQA имеют решающее значение для обеспечения соблюдения вышеуказанных стандартов для команд разработки ПО.
  2. Технические проверки и аудиты: методы активной и пассивной проверки/валидации на каждом этапе SDLC.
  3. Тестирование ПО для контроля качества и выявления дефектов.
  4. Сбор и анализ ошибок: отчеты о дефектах, управление ими и анализ для выявления проблемных областей и тенденций сбоев.
  5. Метрики и измерения: SQA использует различные проверки и показатели для сбора информации об эффективности и качестве продукта и процессов.
  6. Управление изменениями: контроль изменени1 и обеспечение надежных процессов, которые ограничивают непредвиденные негативные результаты.
  7. Управление поставщиками: взаимодействие с подрядчиками и поставщиками инструментов для обеспечения коллективного успеха.
  8. Управление безопасностью
  9. Управление рисками: команды SQA занимаются выявлением, анализом и снижением рисков, чтобы помочь в принятии обоснованных решений.
  10. Образование: непрерывное обучение, позволяющее быть в курсе инструментов, стандартов и отраслевых тенденций.

Методы контроля качества ПО

Существует несколько методов контроля качества ПО. К ним относятся:

  • Аудит: Включает в себя проверку рабочих продуктов и связанной с ними информации, чтобы определить, соблюдался ли набор стандартных процессов или нет.
  • Рецензирование: Встреча, на которой программный продукт рассматривается как внутренними, так и внешними заинтересованными сторонами с целью получения их комментариев и одобрения.
  • Ревью кода: Это наиболее формальный вид ревью, при котором проводится статическое тестирование для поиска ошибок и предотвращения возникновения дефектов на более поздних стадиях. Эта проверка проводится независимым экспертом/сотрудником и основывается на правилах, контрольном чек-листе, критериях входа и выхода. Рецензент не должен быть автором кода.
  • Инспекция проекта: Данная проводится с помощью чек-листа, который проверяет следующие области дизайна ПО:
    • Общие требования и дизайн.
    • Функциональные и интерфейсные характеристики.
    • Конвенции.
    • Прослеживаемость требований.
    • Структуры и интерфейсы.
    • Логика.
    • Производительность.
    • Обработка ошибок и восстановление.
    • Тестируемость, расширяемость.
    • Связь и когезия.
  • Моделирование: Инструмент, который моделирует реальную ситуацию с целью виртуального изучения поведения изучаемой системы. В случаях, когда реальную систему невозможно протестировать напрямую, отличной альтернативой песочнице являются симуляторы.
  • Функциональное тестирование: Метод контроля качества, который проверяет, что делает система, не рассматривая то, как она это делает. Этот вид тестирования “черного ящика” в основном фокусируется на тестировании спецификаций или функциональностей системы.
  • Стандартизация: Стандартизация играет решающую роль в обеспечении качества. Она уменьшает двусмысленность и догадки, тем самым повышая уровень качества продукта.
  • Статический анализ: Анализ ПО, который выполняется автоматизированным инструментом без фактического запуска программы. Эта техника широко используется для обеспечения качества в медицинском, ядерном и авиационном программном обеспечении. Метрики программного обеспечения и реверс-инжиниринг — популярные формы статического анализа. В новых командах используются инструменты статического анализа кода, такие как SonarCube, VeraCode и т. д.
  • Пошаговое руководство: Пошаговое руководство по программному обеспечению или коду — это экспертная оценка, в ходе которой разработчик помогает членам команды разработчиков изучить продукт, задать вопросы, предложить альтернативы и оставить комментарии относительно возможных ошибок, нарушений стандартов или любых других проблем.
  • Unit-тестирование: Метод тестирования “белого ящика”, при котором обеспечивается полное покрытие ветвей путем выполнения каждого независимого пути хотя бы один раз.
  • Стресс-тестирование: Тип тестирования, который проводится для проверки надежности системы путем тестирования ее под высокой нагрузкой, т.е. за пределами нормальных условий.

Заключение

SQA – это комплексная деятельность, которая применяется на протяжении всего жизненного цикла ПО.

Обеспечение качества программного обеспечения имеет решающее значение для успеха вашего программного продукта на рынке и соответствия ожиданиям клиентов.

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

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

Перевод статьи «What is Software Quality Assurance (SQA): A Guide for Beginners».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *