Как тестируют в Google

    Тестирование – это не обособленный процесс. Это неотъемлемая составляющая разработки ПО, которая отвечает за продуктивность и, в конечном итоге, качество разработки, утверждают авторы книги и рассказывают, каким образом этот подход реализован в Google. Книга адресована специалистам по тестированию, менеджерам софтверных компаний и непосредственно разработчикам-программистам.

    На момент написания книги Джеймс Уиттакер был техническим директором Google и отвечал за тестирование Chrome, Maps и веб-приложений Google. Джейсон Арбон работал инженером по тестированию в Google, отвечал за Google Desktop, Chrome и Chrome OS. Джефф Каролло — разработчик в тестировании — занимался Google Voice, Toolbar, Chrome и Chrome OS. В 2010 году в качестве разработчика руководил разработкой Google+ API. Так что эти ребята знают, о чем говорят.

    Развиваясь, Google менял подходы к тестированию. В результате вместо «службы тестирования» с минимальным штатом, появилось «направление продуктивности разработки», и в данном случае речь идет не о смене вывески, а об изменении подходов.

    Основная мысль: тестирование – это не обособленный процесс. С плана тестирования, тест-кейсов, начинается разработка, тестированием сопровождается, и не заканчивается до тех пор, пока продукт есть на рынке. Сам стиль программирования в Google предполагает тестируемость. Такой подход породил и изменения в штатной структуре, и подход к найму людей в зависимости от специфики работы.

    В структуре Google тестированием занимаются разработчики в тестировании, тестировщики, тест-менеджеры и инженеры по тестированию. У каждого – своя специфика, свое поле деятельности, которые отчасти пересекаются. В книге приведены варианты оценки людей на собеседовании: на примере решения конкретной задачи авторы показывают, каким образом в Google отбирают специалистов по тестированию, и чем именно психологически специалисты по тестированию отличаются от разработчиков.

    Что приятно: рассказывая о своих методах работы, гуглеры не выдают их за истину в последней инстанции: отдельная глава «Как тестируют в Google» посвящена различным ошибками – как сугубо техническим, так и организационным.

    Специалистов наверняка заинтересует подход Google к отлову багов. Google разрабатывает и использует три вида тестов — малые (или юнит-тесты), средние и большие (или гигантские). Есть репозиторий, в который вносятся обнаруженные ошибки, и в книге подробно описана его организация и система атрибуции. Но Google не стремиться сразу выдать идеальный код. Работает система оценки рисков: именно по ней принимаются решения, какие багги критичны, и их нужно устранять срочно, какие — могут подождать, а какие редки настолько, что заниматься их устранением просто невыгодно. Авторы сравнивают инструменты для автоматического тестирования, сравнивают области применимости его и ручного режимов, рассказывают о способах привлечения внешних тестировщиков.

    Конкурентная среда диктует свои законы, и, если сосредоточиться на тестировании и устранении багов в новом продукте, потратить время, он может устареть еще до выхода на рынок. Поэтому компания все-таки выводит в свободное пользование не доведенные до совершенства продукты, прошедшие тестирование и устранение критических багов внутри Google. Тут в дело вступают ранние пользователи: именно они служат источником наиболее важной информации для Google, выявляя ошибки и сообщая о недостатках. Разумней сразу сделать доступным пользователям работоспособный продукт, и устранять ошибки по мере их обнаружения, считают в Google, совершенствовать его постоянными обновлениями, чем годами чистить код. Пример этого подхода – Gmail, которой находился в статусе бета-тестирования 4 года, уже насчитывая миллионы пользователей.

    В приложениях книги приведены тест-план Chrome OS, тестовые туры для Chrome, посты из гугловского блога об инструментах и коде.

    «Как тестируют в Google» была написана в 2011 году. Уже тогда авторы видели ряд проблем в сложившейся в компании системе тестирования и предрекали ее изменение. Однако идеи и подходы, описанные в книге, после адаптации могут быть использованы и сейчас.

    Журналист, новостной редактор, работает на сайте с 2009 года. Специализация: интернет-маркетинг, SEO, поисковые системы, обзоры профильных мероприятий, отраслевые новости рунета. Языки: румынский, испанский. Кредо: Арфы нет, возьмите бубен.