Формальные инспекции на практике   Вадим Савкин vsavkin.livejournal.com
Содержание <ul><li>Проблема качества ПО </li></ul><ul><li>Понятие формальных инспекций </li></ul><ul><li>Опыт применения и...
Проблема качества ПО <ul><li>Качество ПО  <>  Тестирование ПО </li></ul><ul><li>Качество ПО =  Весь  процесс разработки ор...
Формальные инспекции <ul><li>- это проверка разрабатываемых артефактов коллегами, проводимая согласно строгому формальному...
Эффективность поиска дефектов 35% Бета-тестирование  (<10  тестеров ) 65% Моделирование и прототипирование 40% Системное т...
Данные компании  CQG 0.12 3% Пост-релиз   0.15 4% Релиз тестирование 0.36 11% Системное тестирование   0.78 23% Интеграцио...
О компании  CQG <ul><li>Компания  CQG  является поставщиком данных и сервисов для биржевой торговли на основе разрабатывае...
Важность инспекций в  CQG <ul><li>Инспекции применяются  > 6  лет </li></ul><ul><li>Рассматриваются как основной инструмен...
Роли процесса инспекций <ul><li>Автор  – тот, чей артефакт подвергается инспекции. </li></ul><ul><li>Инспектор  – тот, кто...
Процесс инспекций ( workflow) Автор Инспектор
Типы обнаруживаемых замечаний   <ul><li>Вопрос  – недопонимание со стороны инспектора, никаких изменений в артефакт не вно...
Приоритет инспекций <ul><li>Инспекциям при равных условиях отдаётся больший приоритет  </li></ul><ul><li>Ограничения на дл...
Инструментальная поддержка инспекций   <ul><li>В CQG все данные об инспекциях регистрируются в специальном инструменте для...
Метрики инспекций <ul><li>Скорость инспектирования (checking rate), измеряемая в числе строк кода в час. </li></ul><ul><li...
Метрики инспекций –  демо - 1
Метрики инспекций –  демо - 2
Метрики инспекций –  демо - 3
Контроль процесса инспекций  - 1 <ul><li>Все необходимые данные об инспекции должны быть введены в инструмент автоматизаци...
Зависимость плотности найденных дефектов от размера кода
Контроль процесса инспекций  - 2 <ul><li>Скорость инспектирования не должна превышать 500 строк кода в час (скорость напря...
Зависимость плотности найденных дефектов от скорости инспектирования
Инструмент к онтрол я  процесса инспекций  - демо
Стоимость процесса инспекций  (данные компании  CQG )  <ul><li>Время инспектирования в среднем занимает  8%  от всего врем...
Заключение <ul><li>Грамотно организованный процесс формальных инспекций – эффективное средство повышения качества </li></u...
Необходимые меры - 1 <ul><li>Инспекции должны быть обязательными для всех жизненно важных артефактов разработки. </li></ul...
Необходимые меры - 2 <ul><li>Необходимо использовать средство автоматизации, которое бы поддерживало рабочий процесс инспе...
Вопросы? <ul><li>Вадим Савкин </li></ul><ul><li>[email_address] </li></ul><ul><li>http://vsavkin.livejournal.com </li></ul>
Upcoming SlideShare
Loading in …5
×

Secr2009 Software Inspections In Practice Rus

558 views

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
558
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Данные из книги С. Макконнелл «Совершенный код»
  • Secr2009 Software Inspections In Practice Rus

    1. 1. Формальные инспекции на практике Вадим Савкин vsavkin.livejournal.com
    2. 2. Содержание <ul><li>Проблема качества ПО </li></ul><ul><li>Понятие формальных инспекций </li></ul><ul><li>Опыт применения инспекций в CQG </li></ul><ul><li>Особенности процесса инспекций в CQG </li></ul><ul><li>Метрики процесса инспекций </li></ul><ul><li>Контроль процесса инспекций </li></ul><ul><li>Что необходимо, чтобы инспекции были эффективными </li></ul>
    3. 3. Проблема качества ПО <ul><li>Качество ПО <> Тестирование ПО </li></ul><ul><li>Качество ПО = Весь процесс разработки ориентирован на качество с ранних этапов </li></ul><ul><li>Инспекции = контроль качества на ранних этапах </li></ul>
    4. 4. Формальные инспекции <ul><li>- это проверка разрабатываемых артефактов коллегами, проводимая согласно строгому формальному процессу </li></ul>
    5. 5. Эффективность поиска дефектов 35% Бета-тестирование (<10 тестеров ) 65% Моделирование и прототипирование 40% Системное тестирование 60% Формальные инспекции кода 75% Бета-тестирование (>1000 тестеров ) 30% Юнит-тестирование 25% Регрессионное тестирование 25% Неформальный обзор кода ( code review ) 35% Интеграционное тестирование 55% Формальные инспекции дизайна 30% Тестирование новой функции (компонента) 35% Неформальный обзор дизайна ЭПД % Метод поиска ЭПД % Метод поиска
    6. 6. Данные компании CQG 0.12 3% Пост-релиз 0.15 4% Релиз тестирование 0.36 11% Системное тестирование 0.78 23% Интеграционное тестирование 2.03 59% Формальные инспекции Плотность дефектов (#/ KLOC) % найденных дефектов Этап
    7. 7. О компании CQG <ul><li>Компания CQG является поставщиком данных и сервисов для биржевой торговли на основе разрабатываемых в компании программных систем. </li></ul><ul><li>Штат департамента разработки насчитывает порядка 300 сотрудников, распределённых между 6 офисами в разных странах. </li></ul><ul><li>Разработчики объединены в команды размером от 3 до 7 человек каждая. </li></ul>
    8. 8. Важность инспекций в CQG <ul><li>Инспекции применяются > 6 лет </li></ul><ul><li>Рассматриваются как основной инструмент обеспечения качества разрабатываемого ПО </li></ul><ul><li>Уделяется большое внимание контролю эффективности инспекций </li></ul><ul><li>Процесс инспекций немного отличается от классического </li></ul>
    9. 9. Роли процесса инспекций <ul><li>Автор – тот, чей артефакт подвергается инспекции. </li></ul><ul><li>Инспектор – тот, кто проверяет качество этого артефакта. Инспекторов может быть несколько. </li></ul><ul><li>Модератор – тот, кто контролирует качество проведения конкретной инспекции и разрешает споры между автором и инспекторами. Один из инспекторов. </li></ul>
    10. 10. Процесс инспекций ( workflow) Автор Инспектор
    11. 11. Типы обнаруживаемых замечаний <ul><li>Вопрос – недопонимание со стороны инспектора, никаких изменений в артефакт не вносится. </li></ul><ul><li>Нефункциональный дефект – дефект в артефакте, который не приведёт к неправильной работе программной системы. </li></ul><ul><li>Функциональный дефект – дефект в артефакте, который может привести к неправильной работе программной системы. </li></ul><ul><li>Дубликат – точно такое же замечание было высказано другим инспектором. </li></ul>
    12. 12. Приоритет инспекций <ul><li>Инспекциям при равных условиях отдаётся больший приоритет </li></ul><ul><li>Ограничения на длительность: </li></ul><ul><ul><li>Инспектор обязан проинспектировать в течение 2 дней </li></ul></ul><ul><ul><li>Весь процесс инспекции не должен превышать 4 дня </li></ul></ul><ul><ul><li>Для высокоприоритетных инспекций лимиты в 2 раза меньше </li></ul></ul>
    13. 13. Инструментальная поддержка инспекций <ul><li>В CQG все данные об инспекциях регистрируются в специальном инструменте для командной работы: </li></ul><ul><ul><li>Тип и название инспектируемого артефакта; </li></ul></ul><ul><ul><li>Проект и задача, к которым относится инспекция; </li></ul></ul><ul><ul><li>Участники инспекции; </li></ul></ul><ul><ul><li>Размер инспектируемого артефакта; </li></ul></ul><ul><ul><li>Найденные замечания (с классификацией по типам); </li></ul></ul><ul><ul><li>Время, потраченное инспекторами, в минутах. </li></ul></ul>
    14. 14. Метрики инспекций <ul><li>Скорость инспектирования (checking rate), измеряемая в числе строк кода в час. </li></ul><ul><li>Плотность найденных замечаний (issue density), измеряемая в числе замечаний на 1000 строк кода. </li></ul><ul><li>Процент дефектов от общего числа найденных замечаний. </li></ul><ul><li>Процент покрытия кода инспекциями. </li></ul>
    15. 15. Метрики инспекций – демо - 1
    16. 16. Метрики инспекций – демо - 2
    17. 17. Метрики инспекций – демо - 3
    18. 18. Контроль процесса инспекций - 1 <ul><li>Все необходимые данные об инспекции должны быть введены в инструмент автоматизации. </li></ul><ul><li>Каждое изменение кода объёмом более 20 строк должно быть проинспектировано. </li></ul><ul><li>Число инспекторов не должно быть меньше 2-х. </li></ul><ul><li>Размер инспекции не должен превышать 1000 строк кода (чем больше артефакт, тем, как правило, менее тщательно он инспектируется, см. рис. 2). </li></ul>
    19. 19. Зависимость плотности найденных дефектов от размера кода
    20. 20. Контроль процесса инспекций - 2 <ul><li>Скорость инспектирования не должна превышать 500 строк кода в час (скорость напрямую характеризует тщательность проверки, см. рис. 3). </li></ul><ul><li>Плотность замечаний не должна быть ниже 10 замечаний на 1000 строк кода (в противном случае велика вероятность, что инспекция сделана плохо, особенно если и скорость инспектирования была высокой). </li></ul><ul><li>Длительность инспекций должна быть в заданных пределах (4 и 2 дня). </li></ul>
    21. 21. Зависимость плотности найденных дефектов от скорости инспектирования
    22. 22. Инструмент к онтрол я процесса инспекций - демо
    23. 23. Стоимость процесса инспекций (данные компании CQG ) <ul><li>Время инспектирования в среднем занимает 8% от всего времени, затрачиваемого на разработку </li></ul><ul><li>Средняя стоимость поиска и исправления одного дефекта </li></ul>34 чел-часа Системное тестирование 21 чел-час Интеграционное тестирование 9 чел-часов Инспекции
    24. 24. Заключение <ul><li>Грамотно организованный процесс формальных инспекций – эффективное средство повышения качества </li></ul><ul><li>Формальные инспекции значительно эффективнее тестирования </li></ul>
    25. 25. Необходимые меры - 1 <ul><li>Инспекции должны быть обязательными для всех жизненно важных артефактов разработки. </li></ul><ul><li>Разработчики должны понимать важность и необходимость инспекций для обеспечения высокого качества разрабатываемых ими продуктов. </li></ul><ul><li>Приоритет инспекций должен рассматриваться инспекторами как более высокий, чем приоритет их собственных задач. </li></ul>
    26. 26. Необходимые меры - 2 <ul><li>Необходимо использовать средство автоматизации, которое бы поддерживало рабочий процесс инспекций и собирало бы метрики об инспекциях. </li></ul><ul><li>Метрики инспекций должны регулярно просматриваться. </li></ul><ul><li>Соблюдение процесса и эффективность инспекций должны регулярно контролироваться. </li></ul>
    27. 27. Вопросы? <ul><li>Вадим Савкин </li></ul><ul><li>[email_address] </li></ul><ul><li>http://vsavkin.livejournal.com </li></ul>

    ×