"Качество родится только тогда, когда разработка и тестирование начнут жить вместе" - эта мысль красной строкой проходит сквозь всю книгу Джеймса Уиттакера "Как тестируют в Гугл". Эта книга просто перевернула мой мир. Как будто кусочки пазла собрались наконец в одну картину. Теперь я знаю, к чему стремиться. В каком направлении развиваться, как специалист. И какую организацию процесса разработки ПО считать идеальной.
В этой статье я постараюсь в краткой форме систематизировать часть знаний, полученных после прочтения этой книги.
Поскольку в Гугл тестирование неотделимо от разработки, выделяются 3 основных роли, отвечающих за обеспечение качества.
Разработчик - пишет код, проводит код-ревью, пишет юнит-тесты.
Разработчик в тестировании - фокусируется на тестируемости кода и создании инфраструктуры тестирования. Тест считается такой же фичей приложения, как и другие, и за нее отвечает разработчик в тестировании.
Инженер по тестированию - занимается общей организацией контроля качества, управляет выполнением тестов, анализирует их результат и строит сквозную автоматизацию тестирования.
Особенностью является то, что все сотрудники обладают высоким уровнем технической подготовки. В Гугл нет привычного нам разделения на "ручной тестировщик" и "специалист по автоматизации тестирования". Все инженеры по тестированию должны уметь разбираться в коде и автоматизировать сквозные тесты.
Конечно же, в книге рассказывается и про тест-менеджеров. Оказывается, это самая сложная роль, сочетающая в себе много всего - это инженер, который вносит технический вклад в проект, через него взаимодействуют все команды, также он обладает управленческими навыками и помогает подчиненными в профессиональном плане. Именно тест-менеджер отвечает за то, чтобы построенная им команда тестирования оказывала реальное влияние в компании. Также тест-менеджер должен отвечать за то, чтобы изобретения внутри проекта распространялись и на другие команды, пока не станут частью технологии тестирования все компании.