27
Формальные инспекции на практике Вадим Савкин vsavkin.livejournal.com

Secr2009 Software Inspections In Practice Rus

Embed Size (px)

DESCRIPTION

Формальные инспекции на практике

Citation preview

Page 1: Secr2009 Software Inspections In Practice Rus

Формальные инспекции на практике

Вадим Савкин

vsavkin.livejournal.com

Page 2: Secr2009 Software Inspections In Practice Rus

2

Содержание Проблема качества ПО Понятие формальных инспекций Опыт применения инспекций в CQG Особенности процесса инспекций в

CQG Метрики процесса инспекций Контроль процесса инспекций Что необходимо, чтобы инспекции

были эффективными

Page 3: Secr2009 Software Inspections In Practice Rus

3

Проблема качества ПО

Качество ПО <> Тестирование ПО

Качество ПО = Весь процесс разработки ориентирован на качество с ранних этапов

Инспекции = контроль качества на ранних этапах

Page 4: Secr2009 Software Inspections In Practice Rus

4

Формальные инспекции

- это проверка разрабатываемых артефактов коллегами, проводимая согласно строгому формальному процессу

Page 5: Secr2009 Software Inspections In Practice Rus

5

Эффективность поиска дефектов

Метод поискаЭПД

%Метод поиска

ЭПД%

Неформальный обзор дизайна

35% Тестирование новой функции (компонента)

30%

Формальные инспекции дизайна

55% Интеграционное тестирование

35%

Неформальный обзор кода (code review)

25% Регрессионное тестирование

25%

Формальные инспекции кода

60% Системное тестирование

40%

Моделирование и прототипирование

65% Бета-тестирование (<10 тестеров)

35%

Юнит-тестирование

30% Бета-тестирование (>1000 тестеров)

75%

Page 6: Secr2009 Software Inspections In Practice Rus

6

Данные компании CQG

Этап %

найденных дефектов

Плотностьдефектов(#/ KLOC)

Формальные инспекции 59% 2.03

Интеграционное тестирование 23% 0.78

Системное тестирование 11% 0.36

Релиз тестирование 4% 0.15

Пост-релиз 3% 0.12

Page 7: Secr2009 Software Inspections In Practice Rus

7

О компании CQG Компания Компания CQGCQG является поставщиком является поставщиком

данных и сервисов для биржевой данных и сервисов для биржевой торговли на основе разрабатываемых в торговли на основе разрабатываемых в компании программных систем.компании программных систем.

Штат департамента разработки Штат департамента разработки насчитывает порядка 300 сотрудников, насчитывает порядка 300 сотрудников, распределённых между 6 офисами в распределённых между 6 офисами в разных странах.разных странах.

Разработчики объединены в команды Разработчики объединены в команды размером от 3 до 7 человек каждая.размером от 3 до 7 человек каждая.

Page 8: Secr2009 Software Inspections In Practice Rus

8

Важность инспекций в CQG

Инспекции применяются > 6 лет Рассматриваются как основной

инструмент обеспечения качества разрабатываемого ПО

Уделяется большое внимание контролю эффективности инспекций

Процесс инспекций немного отличается от классического

Page 9: Secr2009 Software Inspections In Practice Rus

9

Роли процесса инспекций Автор – тот, чей артефакт подвергается

инспекции. Инспектор – тот, кто проверяет

качество этого артефакта. Инспекторов может быть несколько.

Модератор – тот, кто контролирует качество проведения конкретной инспекции и разрешает споры между автором и инспекторами. Один из инспекторов.

Page 10: Secr2009 Software Inspections In Practice Rus

10

Процесс инспекций (workflow)

Подготовка

Инспектирование

Исправление

Завершение

Инспекцион-ное собрание

начало

конец

Автор

Инспектор

Page 11: Secr2009 Software Inspections In Practice Rus

11

Типы обнаруживаемых замечаний Вопрос – недопонимание со стороны

инспектора, никаких изменений в артефакт не вносится.

Нефункциональный дефект – дефект в артефакте, который не приведёт к неправильной работе программной системы.

Функциональный дефект – дефект в артефакте, который может привести к неправильной работе программной системы.

Дубликат – точно такое же замечание было высказано другим инспектором.

Page 12: Secr2009 Software Inspections In Practice Rus

12

Приоритет инспекций

Инспекциям при равных условиях отдаётся больший приоритет

Ограничения на длительность: Инспектор обязан проинспектировать

в течение 2 дней Весь процесс инспекции не должен

превышать 4 дня Для высокоприоритетных инспекций

лимиты в 2 раза меньше

Page 13: Secr2009 Software Inspections In Practice Rus

13

Инструментальная поддержка инспекций

В CQG все данные об инспекциях регистрируются в специальном инструменте для командной работы: Тип и название инспектируемого артефакта; Проект и задача, к которым относится

инспекция; Участники инспекции; Размер инспектируемого артефакта; Найденные замечания (с классификацией по

типам); Время, потраченное инспекторами, в минутах.

Page 14: Secr2009 Software Inspections In Practice Rus

14

Метрики инспекций Скорость инспектирования (checking

rate), измеряемая в числе строк кода в час.

Плотность найденных замечаний (issue density), измеряемая в числе замечаний на 1000 строк кода.

Процент дефектов от общего числа найденных замечаний.

Процент покрытия кода инспекциями.

Page 15: Secr2009 Software Inspections In Practice Rus

15

Метрики инспекций – демо - 1

Page 16: Secr2009 Software Inspections In Practice Rus

16

Метрики инспекций – демо - 2

Page 17: Secr2009 Software Inspections In Practice Rus

17

Метрики инспекций – демо - 3

Page 18: Secr2009 Software Inspections In Practice Rus

18

Контроль процесса инспекций - 1

Все необходимые данные об инспекции должны быть введены в инструмент автоматизации.

Каждое изменение кода объёмом более 20 строк должно быть проинспектировано.

Число инспекторов не должно быть меньше 2-х.

Размер инспекции не должен превышать 1000 строк кода (чем больше артефакт, тем, как правило, менее тщательно он инспектируется, см. рис. 2).

Page 19: Secr2009 Software Inspections In Practice Rus

19

Зависимость плотности найденных дефектов от размера кода

Page 20: Secr2009 Software Inspections In Practice Rus

20

Контроль процесса инспекций - 2

Скорость инспектирования не должна превышать 500 строк кода в час (скорость напрямую характеризует тщательность проверки, см. рис. 3).

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

Длительность инспекций должна быть в заданных пределах (4 и 2 дня).

Page 21: Secr2009 Software Inspections In Practice Rus

21

Зависимость плотности найденных дефектов от скорости инспектирования

Page 22: Secr2009 Software Inspections In Practice Rus

22

Инструмент контроля процесса инспекций - демо

Page 23: Secr2009 Software Inspections In Practice Rus

23

Стоимость процесса инспекций (данные компании CQG)

Время инспектирования в среднем занимает 8% от всего времени, затрачиваемого на разработку

Средняя стоимость поиска и исправления одного дефекта

Инспекции 9 чел-часов

Интеграционное тестирование

21 чел-час

Системное тестирование 34 чел-часа

Page 24: Secr2009 Software Inspections In Practice Rus

24

Заключение

Грамотно организованный процесс формальных инспекций – эффективное средство повышения качества

Формальные инспекции значительно эффективнее тестирования

Page 25: Secr2009 Software Inspections In Practice Rus

25

Необходимые меры - 1

Инспекции должны быть обязательными для всех жизненно важных артефактов разработки.

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

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

Page 26: Secr2009 Software Inspections In Practice Rus

26

Необходимые меры - 2

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

Метрики инспекций должны регулярно просматриваться.

Соблюдение процесса и эффективность инспекций должны регулярно контролироваться.

Page 27: Secr2009 Software Inspections In Practice Rus

27

Вопросы?

Вадим Савкин

[email protected]

http://vsavkin.livejournal.com