«Code review как средство обеспечения качества программного обеспечения» Надежда Кобозева. КРОК Инкорпорейтед

Содержание

Слайд 2

Code review.Что же это такое?? Инспекция кода или рецензия кода или

Code review.Что же это такое??

Инспекция кода или рецензия кода или ревизия

кода (от англ.Code review) — систематическая проверка исходного кода программы с целью обнаружения и исправления ошибок, которые остались незамеченными в начальной фазе разработки.

Найденные на ранних этапах разработки ошибки «ценнее», чем ошибки, найденные при формальном тестировании!

Слайд 3

«Зачем?!» Цели внедрения процесса: унифицировать код; обучить новичков; ускорить тестирование; найди

«Зачем?!»

Цели внедрения процесса:
унифицировать код;
обучить новичков;
ускорить тестирование;
найди и уничтожить ошибки

там, где они живут;
разъяснение кода гарантирует его понимание;
уменьшить риск выбиться из графика, потому что качество продукта растет с каждой завершенной фазой проекта;
выявить синтаксические ошибки, которые компиляторы не могут отследить;
Слайд 4

Что такое «хорошо» и что такое «плохо»? Для качественного построения процесса

Что такое «хорошо» и что такое «плохо»?

Для качественного построения процесса тестирования,

правила рецензирования кода следует унифицировать!
Code Review Checklist
Очень индивидуален для каждого проекта, НО! Выделим базовые контрольные точки:
Поиск уязвимостей
Поиск синтаксических ошибок
Поиск утечки ресурсов
Контроль структуры
Комментарии
Слайд 5

Кому доверить процесс? Каждый проект по-своему подходит к ревизиям: используются различные

Кому доверить процесс?

Каждый проект по-своему подходит к ревизиям: используются различные инструменты,

различные процедуры, в приоритет ставятся различные цели.
Возможные схемы процесса:
1. По времени
До check-in – a
После сheck-in –а
2. По ответственному за процесс:
Ответственный ведущий разработчик
Распределенная схема рецензирования между разработчиками
Ответственный ведущий тестировщик
Слайд 6

1. Ведущий разработчик ревьюит Преимущества: Единообразие кода Одинаковые требования Гуру делится

1. Ведущий разработчик ревьюит
Преимущества:
Единообразие кода
Одинаковые требования
Гуру делится опытом
Недостатки:
Упущенные возможности
Только

выборочная проверка
Скорее всего off-line проверка
Более важные задачи в приоритете, на ревью зачастую не хватает времени
Слайд 7

2. Друг за другом Преимущества: Полная взаимозаменяемость Единообразие кода Обучение Недостатки

2. Друг за другом

Преимущества:
Полная взаимозаменяемость
Единообразие кода
Обучение
Недостатки
«Если мой коллега пишет такой ужасный

код, зачем и мне стараться»
Слайд 8

Инструменты для организации процесса анализа кода Сводят к минимуму хлопоты по

Инструменты для организации процесса анализа кода


Сводят к минимуму хлопоты

по организации, отслеживанию, подведению итогов и отчетности.
Открытые решения:
Codestriker (David Sitsky)
Review Board (Beanbag, Inc.)
Rietveld (Google)
Платные продукты:
Code Collaborator (SmartBear Software)
Crucible (Atlassian)
Слайд 9

3. Тестировщики! Преимущества: разработчики стараются писать качественнее; знание кода. Проще локализовать

3. Тестировщики!

Преимущества:
разработчики
стараются писать качественнее;
знание кода. Проще
локализовать ошибку,
проще

читать логи;
сокращение времени
тестирования;
Недостатки:
- технический уровень тестировщика;
- знание кода может помешать найти ошибки.
Слайд 10

Легко отловим рецензированием ошибки форматирования строк; состояние гонки; утечка памяти; переполнение буфера.

Легко отловим рецензированием
ошибки форматирования строк;
состояние гонки;
утечка памяти;
переполнение буфера.

Слайд 11

Инструменты для статического анализа кода. StyleCop StyleCop — статический анализатор C#

Инструменты для статического анализа кода. StyleCop


StyleCop  — статический анализатор C# кода

на предмет соответствия стилю.
+ плагин StyleCop Team Foundation Server check-in policy
Слайд 12

Инструменты для статического анализа кода. NDependent NDepend – инструмент для Visual

Инструменты для статического анализа кода. NDependent


NDepend – инструмент для Visual Studio

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