<style>.lazy{display:none}</style>Что такое обеспечение качества программного обеспечения (SQA)

Что такое обеспечение качества программного обеспечения (SQA)

Что такое обеспечение качества программного обеспечения?

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

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

БЕСПЛАТНО СКАЧАТЬ КНИГИ в телеграм канале "Библиотека тестировщика"

Содержание статьи

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

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

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

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

  1. Цели работы
  2. Аннотация
  3. Управление конфигурацией
  4. Отчеты об ошибках и внесение изменений
  5. Технологии, методы и средства
  6. Контроль качества кода
  7. Протокол тестирования: сбор, ведение и хранение записей
  8. Методология тестирования

Этапы обеспечения качества

1. Создание плана контроля качества

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

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

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

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

3. Участие в сборе требований для группы разработчиков

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

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

4. Проведение технического анализа

Технический анализ (Formal Technical Review, FTR) проводится для оценки качества и дизайна прототипа ПО.

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

5. Работа над стратегией мультитестирования

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

6. Контроль за соблюдением технологических процессов

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

Данный этап можно условно разделить на две составляющие:

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

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

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

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

7. Управление изменениями

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

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

8. Отслеживание зависимостей

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

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

9. Аудит системы обеспечения качества

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

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

10. Ведение записей и протоколов тестирования

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

11. Работа с коллективом

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

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

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

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

Ниже рассматриваются некоторые из наиболее популярных стандартов

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

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

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

Пять уровней CMMI и их характеристики описаны на рисунке ниже

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

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

Пять уровней TMMi показаны на рисунке ниже

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

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

Существует десять основных элементов:

  1. Стандарты разработки ПО
  2. Технический анализ и аудит
  3. Тестирование программного обеспечения для контроля качества
  4. Отслеживание и анализ ошибок
  5. Периодическое снятие метрик
  6. Отслеживание изменений
  7. Контроль за исполнителями
  8. Управление безопасностью
  9. Управление рисками
  10. Обучение

Техники обеспечения качества

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

Различные техники SQA включают в себя:

  • Аудит: Аудит включает в себя проверку продуктов труда и связанной с ними информации, чтобы определить, соблюдался ли набор стандартных процессов или нет.
  • Рецензирование: Встреча, на которой программный продукт рассматривается внутренними и внешними заинтересованными сторонами с целью получения их комментариев.
  • Ревизия кода: Это наиболее формальный вид проверки, при котором проводится статическое тестирование для поиска ошибок и предотвращения роста дефектов на более поздних стадиях. Она проводится обученным экспертом-посредником или незаинтересованным лицом и основывается на правилах и контрольных списках, критериях ввода-выводаа. Рецензент не должен быть автором кода.
  • Комплексная инспекция проекта: Эта проверка осуществляется с помощью контрольного списка, который проверяет следующие области разработки программного обеспечения:
    • Общие требования и основные возможности
    • Требования к функциям и к интерфейсу
    • Соответствие соглашениям
    • Прослеживаемость выполнения требований
    • Компоненты и интерфейсы
    • Логика
    • Производительность
    • Обработка ошибок и способность к восстановлению
    • Возможность проверки и расширения
    • Связность элементов
  • Симуляция: Это инструмент, который моделирует реальное состояние исследуемой системы, чтобы изучить ее поведение.
  • Функциональное тестирование: Это техника QA позволяет проверить, что именно делает система, не вдаваясь в подробности, как именно она это делает. Программа рассматривается как  “черный ящик”. А главное внимание привлечено  к проверке системы на функциональность или соответствие спецификациям.
  • Стандартизация: Стандартизация играет решающую роль в обеспечении качества. Чем меньше двусмысленностей и чем меньше приходится гадать, тем выше качество.
  • Статический анализ: Это анализ программного обеспечения, который выполняется автоматизированным инструментом без фактического выполнения программы. Эта техника широко используется для обеспечения качества в медицинском, ядерном и авиационном программном обеспечении. Среди популярных форм такого анализа — сбор метрик и обратная разработка.
  • Разбор продукта: Это вид экспертной оценки, когда члены команды разработки просматривают продукт по созданной автором кода инструкциям и задают вопросы, предлагают альтернативы и оставляют комментарии относительно возможных дефектов, нарушений стандартов или любых других вопросов.
  • Модульное тестирование: Это метод тестирования “белого ящика”, при котором обеспечивается полное исследование кода — каждая независимая ветвь кода и каждое условие выполняется как минимум по одному разу.
  • Стресс-тестирование: Этот вид тестирования проводится для проверки надежности системы путем тестирования ее под высокой нагрузкой, т.е. за пределами нормальных условий.
  • Шесть сигм: Шесть сигм – это подход к обеспечению качества, направленный на достижение практически идеальных показателей продуктов или услуг. Он широко применяется во многих областях, включая программное обеспечение. Основная цель “Шести сигм” – совершенствование процессов таким образом, чтобы производимое программное обеспечение было на 99,76 % бездефектным.

Заключение

SQA — это комплексная деятельность, которая осуществляется на протяжении всего жизненного цикла программного обеспечения.

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

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

Перевод статьи – “What Is Software Quality Assurance (SQA): A Guide For Beginners”

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

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