Шрифт:
написан тест-кейс приоритета 1. Этот тест-кейс добавляется к группе
тест-кейсов для регрессивного тестирования соответствующей функ-
циональности.
Совместим наш цикл разработки ПО с открытостью бранчей.
1. Во время стадии кодирование, например, для версии 3.0
бранч с версией 3.0 является открытым.
2. Во время стадии тестирование и ремонт багов бранч явля-
ется условно закрытым — никакой код не может сохра-
няться в таком бранче, за исключением кода с починкой
для конкретного бага, при сохранении кода в CVS програм-
мист обязан указать номер открытого бага в СТБ, иначе CVS
не разрешит checkin. Именно такой статус у бранча после
заморозки кода и передачи кода тестировщикам.
3. После того как произошел релиз на машину для пользова-
телей и в этом релизе найден баг, у нас есть два варианта:
а) если баг некритический (например, отсутствует проверка
е-мейла пользователя на два "@"), то его можно отре
монтировать в следующем релизе, т.е. мы фиксируем код
только в стволе;
б) если баг критический (например, невозможно совершить
покупку), то нужно отремонтировать его и выпустить патч-
Цикл разработки ПО
119
релиз как можно быстрее. Для такого срочного ремонта
нужен формальный документ: процедура о неотложном
ремонте багов (Emergency Bug Fix Procedure).
Кстати, не хочу вас путать, но есть одна важная для понимания вещь:
иногда нужно незамедлительно изменить код приложения на машине
для пользователей, и это изменение не связано с багами. В таком
случае тоже заносится запись в СТБ, но с типом "Feature Request" —
запрос о новой функциональности (подробнее об этом в разговоре
о СТБ), и релиз такого кода регулируется этой же процедурой.
Примером, в котором нужен быстрый, не связанный с багами
релиз, может послужить ситуация, когда у нас есть решение суда
(например, о нарушении патента), которое обязывает срочно из-
менить код.
Релиз такого кода также называется патч-релизом.
Вопрос: В чем отличие такого патч-релиза от дополнительного
релиза?
Ответ: В том, что дополнительный релиз — это плановый релиз,
когда было заранее решено, что такие-то функциональности уви-
дят свет, но включены они будут не в основной, а в дополнитель-
ный релиз.
Процедура о неотложном ремонте багов должна содержать:
• приоритет багов, которые подлежат НРБ. Например, это
могут быть только П1 баги;
• список лиц, имеющих право инициировать процесс НРБ;
• последовательность действий между лицами, участвую-
щими в НРБ, например:
1) программист, извещенный о проблеме, фиксирует баг;
2) исправление кода заверяется одним из его коллег через
рассмотрение кода (code review);
3) релиз-инженер делает билд для регрессивного тести-
рования;
4) тестировщик производит тестирование;
5) релиз-инженер делает патч-релиз на машину для поль-
зователей;
• коммуникацию между лицами, участвующими в НРБ. На
пример, в начале и конце каждого из этапов ответственное
лицо отвечает всем на последний е-мейл этой цепочки.
Причем в начале этапа посылается е-мейл типа "Начал де
лать билд для регрессивного тестирования. Примерный
120
Тестирование Дот Ком. Часть 1
срок до завершения операции — 30 минут". В конце этапа
посылается е-мейл типа "Билд для регрессивного тестиро-
вания завершен. Тестировщики. Ау!".
Во многих компаниях для быстрого и эффективного исправления