Автор: Дейв Вестервельд (Dave Westerveld) Оригинал статьи Перевод: Ольга Алифанова
Я перехожу в новую команду, и в ходе перехода у меня было время поразмышлять, как я планирую приносить ей пользу. Очевидно, что многое зависит от контекста моей команды, но я также решил опубликовать часть моих личных принципов качества. Эти принципы руководят моим подходом к качеству и тестированию.
- Качество – командный спорт. Я не выполняю все тестирование от и до. Возможно, я даже не беру на себя большую его часть. Моя основная цель – чтобы команда производила ПО высокого качества, улучшающее жизнь наших заказчиков, и я убежден, что это происходит, только если каждый член команды отвечает за качество. Это значит, что я буду сотрудничать с командой, дабы убедиться, что мы не срезаем углы в плане тестирования, и что все мы заражены вирусом качества (не беспокойтесь, это полезнее, чем коронавирус).
- Тестирование должно быть катализатором, а не бутылочным горлом. Это значит, что ситуации, когда мы "ждем окончания тестирования", должны быть исчезающе редкими. Если тестирование становится бутылочным горлом, я буду работать с командой, чтобы идентифицировать причины этого и устранить их. Время, потраченное на тестирование, должно быть инвестицией в будущее, а не ужасом на крыльях ночи, мешающим нам делать то, что хочется.
- Использование тестирования в качестве страховочной сетки – это антипаттерн. Тестирование – это не то, что случается после того, как написан код. Тестирование идет в ходе дизайна, разработки, и когда код уже на проде. Иными словами – в любой точке процесса разработки ПО. Ограничение тестирования до одного-единственного шага в цикле разработки – это неэффективно и контрпродуктивно. Если команда в основном полагается на тестирование постфактум, надеясь не столкнуться с внезапными багами, я сделаю все, что в моих силах, чтобы помочь команде осознать нужду в тестировании как страховочной сетке, и устранить эту нужду.
- Люди первичны. Мы пишем ПО, чтобы сделать жизнь людей лучше. Если мы этого не делаем, то наше ПО низкого качества. Я хочу знать, как улучшились жизни наших заказчиков, а это означает изучение их нужд и паттернов использования. Я люблю применять телеметрию и логирование, чтобы понимать качество кода, но надо также помнить, что заказчики – полноценные сложные человеческие существа, а не просто единицы информации. К тому же ПО создается людьми, и поэтому часть подхода "люди первичны" в том, чтобы думать обо всем, что может повлиять на команду. ПО, ухудшающее жизнь команды, тоже низкого качества вне зависимости от эффекта, производимого им на заказчиков.
- Масштабируемость тестирования очень важна. Разработка ПО – это всегда про масштабирование. Тестирование тоже должно выполняться масштабируемым образом. Это означает, что я буду помогать команде инвестировать в масштабируемую автоматизацию. Регрессионное тестирование тоже слишком важно, чтобы его игнорировать, но в ходе роста функциональности оно быстро становится слишком медленным для ручного выполнения.
Это часть принципов, которыми я руководствуюсь в тестировании. Их конкретное воплощение в моем повседневном труде, конечно, сильно зависит от нужд команды, но это те цели и принципы, которые стоят за всем, что я делаю и за что борюсь. Обсудить в форуме |