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

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

Upload: lowri

Post on 03-Feb-2016

55 views

Category:

Documents


0 download

DESCRIPTION

Формальные инспекции на практике. Вадим Савкин vsavkin.livejournal.com. Содержание. Проблема качества ПО Понятие формальных инспекций Опыт применения инспекций в CQG Особенности процесса инспекций в CQG Метрики процесса инспекций Контроль процесса инспекций - PowerPoint PPT Presentation

TRANSCRIPT

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

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

Вадим Савкин

vsavkin.livejournal.com

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

2

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

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

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

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

3

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

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

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

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

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

4

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

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

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

5

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

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

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

ЭПД%

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

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

30%

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

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

35%

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

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

25%

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

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

40%

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

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

35%

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

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

75%

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

6

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

Этап %

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

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

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

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

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

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

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

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

7

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

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

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

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

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

8

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

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

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

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

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

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

9

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

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

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

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

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

10

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

Подготовка

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

Исправление

Завершение

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

начало

конец

Автор

Инспектор

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

11

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

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

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

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

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

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

12

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

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

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

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

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

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

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

13

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

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

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

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

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

14

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

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

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

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

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

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

15

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

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

16

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

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

17

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

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

18

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

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

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

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

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

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

19

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

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

20

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

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

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

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

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

21

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

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

22

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

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

23

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

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

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

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

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

21 чел-час

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

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

24

Заключение

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

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

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

25

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

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

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

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

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

26

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

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

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

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

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

27

Вопросы?

Вадим Савкин

[email protected]

http://vsavkin.livejournal.com