Авторы: Александров Александр, Галай Анатолий, Милькова Ясна
Процедурный подход, широко применяемый на практике, позволяет убедиться в следовании или отклонениях от заранее запланированных процессов. Но, используя этот подход, далеко не всегда удается заранее выявить проблемы или быть уверенным в достижении требуемого уровня качества разрабатываемой программной системы.
Иначе говоря, одно лишь выполнение набора процедур не обеспечивает основу для оценки качества разрабатываемой программной системы. Более того, такой подход в высшей степени зависит от качества процедуры и от качества ее выполнения. Основной недостаток процедурного подхода состоит в отсутствии у менеджеров проектов количественных способов, с помощью которых они могли бы оценить качество разрабатываемой программной системы, единственный видимый им фактор показывает, были ли выполнены запланированные задачи.
Описанный в докладе подход (рассмотренный на примере процесса тестирования), основан на количественном управлении данными и позволяет решить эту проблему, устанавливать количественные цели по качеству, анализировать процессы и своевременно разрабатывать и предпринять корректирующие и/или предупреждающие действия- причем это можно сделать на более ранней стадии, когда цена ошибки еще не так дорога.
1. Принципы количественного управления в модели CMMI
1.1. Практики CMMI-DEV версии 1.2 по количественному управлению
В презентации будут рассмотрены возможные практические шаги по внедрению практики статистического управление на примере процесса тестирования.
На рисунке приведена схема области усовершенствование «Управление проектом на основе количественных данных» по модели CMMI-DEVверсии 1.2.
Таким образом, при внедрении практики статистического управления, организации нужно предпринять следующие основные шаги:
- определить, в какой информации нуждается компания (какие цели будут поставлены),
- определить метрики, отражающие достижение поставленных целей,
- определить, какие подпроцессы, влияющие на достижение поставленных целей, будут статистически управляться,
- определить, как будут протекать процессы статистического и количественного управления,
- выполнять процессы количественного и статистического управления.
Презентация будет в основном посвящена последним двум пунктам.
1.2. Некоторые определения и важные исходные позиции
Количественное управление – это процесс использования данных проектных измерений, обработанных с помощью статистического управления подпроцессами (или каких-то других методов) для:
- определения того, обеспечат ли текущие значения параметра процесса выполнение требований к нему в конце проекта,
- если текущие результаты не дают уверенности в выполнении конечных требований, то определение корректирующих действий, которые должны быть предприняты для обеспечения достижения установленных,
- последующего контроля эффективности предпринятых мер.
[Открыть крупнее]
Статистическое управление – это использование статистических методов для обработки и оценки результатов измерений параметров процессов в проекте. В результате применения таких методов становится возможным:
- определять границы, в которых значения параметра могут находиться, если подпроцесс выполняется штатно (т.е. предсказывать значение параметра подпроцесса),
- определять значения контролируемого параметра, которые являются следствием воздействия каких-то особенных (единовременных) причин.
Важные замечания:
- параметры подпроцесса, выбираемого для статистического управления должны влиять на цель (одну из целей) проекта. Это даст возможность, контролируя статистически параметр подпроцесса обеспечивать управление достижением проектной цели,
- подпроцесс, выбираемый для статистического управления должен быть стабильным, т.е. иметь достаточно стабильные значения параметров, его характеризующих в случае выполнения данного подпроцесса по установленным правилам,
- важно, чтобы количество моментов времени для корректного измерения параметров процессов, подлежащих статистическому управлению, во время выполнения проекта было достаточно большим.
Одним их самых простых и чаще всего используемым методом статистического анализа являются Контрольные карты (Control Charts) различных типов. Наиболее универсальный тип контрольных карт, применимый практически в любых условиях, это XmR Chart.
Гистограмма полезна при определении степени приближения значений параметра к нормальному распределению.
2. Возможный сценарий применения количественного управления в тестировании
2.1. Общие положения
Под управлением процессом тестирования понимаются обоснованные действия, направленные на достижение целей тестирования, сформулированных в проекте. Роль таких целей могут играть, в частности, цели самого проекта. Использование количественного управления тестированием позволяет:
- устанавливать в проекте количественные цели по качеству,
- анализировать (с применением статистических методов) ход процесса тестирования, направленный на достижение целей по качеству,
- обоснованно планировать и осуществлять предупреждающие и корректирующие действия, направленные на достижение целей качества, отслеживать эффект выполнения этих действий.
В процессе тестирования важнейшим параметром, который дает возможность получать метрики, характеризующие качество, как и процесса тестирования, так и самого продукта, является количество дефектов.
На основе этой простой метрики можно рассчитать, например, такие метрики, как:
- плотность дефектов, обнаруженных в ходе выполнения тестирования (software defect density-SDD),
- плотность дефектов обнаруженных в эксплуатации (post delivery defect density PDDD),
- коэффициент отвергнутых дефектов –(declined defect ratio- DDR).
2.2. Пример реализации статистического управления параметром SDD
Попытаемся представить, каким образом можно количественно управлять подпроцессом тестирования. Управлять будем, например, на основе плотности дефектов, обнаруженных во время тестирования. Последовательность действий должна быть примерно следующей:
- Установить каким-либо образом диапазон значений плотности дефектов, обнаруженных во время системного тестирования, попадание в который будет являться целью управления.
- Определить моменты времени для контроля значений плотности дефектов
- Определить, как будет определяться наличие особенного случая в зависимости от количества измерений или это правило не будет зависеть от количества измерений
- В момент получения значения плотности дефектов с помощью XmR определить значения среднего и диапазон возможных отклонений.
- Сравнить полученные значения с установленной целью и при необходимости выработать корректирующие действия.
2.3. Возможные правила проведения статистического анализа параметров
Возможные правила проведения статистического анализа параметров приведены в таблице.
Кол-во измерений
|
Причина (Обоснование)
|
Пример
|
Начальная фаза сбора значений параметра
|
Если количество доступных значений менее 3, то статистический анализ не проводится. Анализируются только значения параметров.
|
Ожидается попадание значения параметра в границы (желтые линии)
|
Фаза накопления данных для статистической обработки
|
Если количество доступных значений в диапазоне 3-29, считаем, что полностью доверять рассчитанным с помощью XmR chart статистическим параметрам нет оснований, но для вынесения суждения о наличии особенного случая можно использовать границы ±2σ
|
Значение, вышедшее за пределы Mean±2σ, может считаться особенным.
|
Фаза полноценного статистического управления
|
Если количество доступных значений 30 и более, считаем, что можно определять особенные случаи, используя диапазон Mean±3σ
|
Значение, вышедшее за пределы Mean±3σ, считается особенным
|
Сравнение статистических параметров с заданными границами
|
|
Процесс стабилен, но его статистические параметры не удовлетворяют установленным границам.
|
3. Заключение
Таким образом, количественное управление тестированием позволяет:
- на объективной основе анализировать ход выполнения процесса,
- понимать задолго до окончания процесса возможность достижения установленных целей,
- планировать в случае необходимости действия для обеспечения достижения целей,
- оценивать эффективность предпринятых мер.
Обсудить на форуме
(!) Публикуется с разрешения оргкомитета Software Engineering Conference (Russia) 2008 |