
- •Вадим Савкин Основные принципы управления качеством программного обеспечения
- •Понятие качества программного обеспечения Определение качества программного продукта
- •Критерии качества пп
- •Влияние видов деятельности жизненного цикла на качество пп
- •Обобщённое понятие дефекта
- •Управление качеством программного продукта Традиционный подход к качеству программного продукта
- •Эффективность поиска дефектов
- •Стоимость исправления дефектов
- •Комплексный подход к управлению качеством
- •Методы поиска дефектов
- •Методы предотвращения дефектов
- •Управление качеством при итерационном жизненном цикле
- •Стоимость качества по
- •Процесс управления качеством
- •Заключение
- •Литература
- •Управление качеством по в компании cqg
Эффективность поиска дефектов
Рассмотрим одну из фаз, направленных на поиск и исправление дефектов, например, фазу системного тестирования. В ходе этой фазы обнаруживается некое количество дефектов Dfound, в то же время некоторое количество дефектов остаётся ненайденным на момент завершения фазы Dmissed (рис. 2). Общее число дефектов, прошедших через фазу, будет равно Dfound + Dmissed.
Рис. 2. Изменение количества дефектов в течение одной фазы.
Назовём отношение найденных дефектов к общему их числу, выраженное в процентах, эффективностью поиска дефектов:
Эффективность поиска дефектов
=
[1, стр. 284].
Для каждой фазы, в ходе которой находятся и исправляются дефекты, при зрелом процессе и прочих равных условиях эта величина будет приблизительно постоянной. Этот факт даёт возможность количественно оценивать уровень качества (выраженный в количестве ненайденных дефектов) для текущего проекта и для планируемых проектов.
Эффективность поиска дефектов можно рассматривать как для отдельных фаз и активностей, так и для всего жизненного цикла разработки. При этом эффективности отдельных фаз определяют эффективность для всего жизненного цикла. Каждую фазу поиска дефектов можно рассматривать как некий фильтр, который удерживает некую часть дефектов, а весь жизненный цикл, как систему фильтров [1, стр. 284, 292-293], [4, стр. 143-144]. Если на ранних этапах жизненного цикла стоят плохие фильтры, которые пропускают много дефектов, то эти дефекты накапливаются, и, чтобы их хорошо отфильтровать, в конце жизненного цикла (фаза тестирования) нам будет необходим очень хороший фильтр.
Стоимость исправления дефектов
Дефекты со временем не только имеют тенденцию накапливаться, если не предпринимать ранних мер по их устранению. Но также хорошо известен тот факт, что чем дольше дефект живёт в проекте, тем дороже обходится его исправление (т.е. более трудоёмко) [2, стр. 465-466], [1, стр. 275-277], причём зависимость часто экспоненциальная. Для водопадной модели жизненного цикла эта зависимость хорошо иллюстрируется следующим графиком (рис. 3) [6, стр. 66].
Рис. 3. Изменение стоимости исправления дефектов с течением времени (водопадный жизненный цикл).
Для итерационной модели жизненного цикла картина будет похожая (рис. 4), изменятся только надписи, и масштаб оси Y для разных типов дефектов (например, для дефектов требований и проектирования масштаб будет крупнее, чем для дефектов кодирования).
Рис. 4. Изменение стоимости исправления дефектов с течением времени (итерационный жизненный цикл).
Комплексный подход к управлению качеством
Таким образом, получается, что, полагаясь только на одно, хоть даже и очень тщательное, тестирование, проблему качества не решить. Если не предпринимать никаких мер по борьбе с дефектами вплоть до этапа тестирования, то к началу тестирования в проекте может накопиться столько дефектов, что разгрести их будет непосильной задачей.
Вывод напрашивается сам собой: дефекты надо искать и исправлять постоянно, на протяжении всего жизненного цикла проекта, начиная с самых ранних этапов, а не только в конце на этапе тестирования [2, стр. 467]. Грубо говоря, в конце проекта на этапе тестирования искать дефекты уже поздно: если их накопилось очень много, то никакое тестирование не поможет превратить некачественный продукт в качественный [8, стр. 158].
Второй подход, который можно и нужно применять параллельно, – это предотвращение или недопущение дефектов [1, стр. 301-304], [3, стр. 146-147].
Рассмотрим, как изменится график зависимости количества дефектов от времени при применении комплексного подхода к управлению качеством (рис. 5). Применение методов поиска дефектов на протяжении всего жизненного цикла проекта поднимает кривую найденных дефектов вверх. А применение методов предотвращения дефектов опускает кривую вносимых дефектов вниз. Таким образом, количество ненайденных дефектов на протяжении всего жизненного цикла уменьшается, и как результат уменьшается количество ненайденных дефектов в конце проекта.
Рис. 5. Изменение количества дефектов в проекте с течением времени при комплексном подходе к управлению качеством.