Читаем Как тестируют в Google полностью

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


Ранняя стадия проекта

В Google нет правила, когда именно разработчики в тестировании должны присоединиться к проекту. Так же как нигде не прописано, когда именно проект становится «реальным». Типичный сценарий создания нового проекта такой: эксперимент, над которым работали в «двадцатипроцентное» время, набирается сил и становится самостоятельным продуктом Google. Именно так развивались Gmail и Chrome OS. Эти проекты начинались с неформальных идей, а со временем выросли в полноценные продукты со своими командами разработчиков и тестировщиков. Наш друг Альберто Савоя (написавший введение к этой книге) любит повторять, что «качество не имеет значения, пока ваш продукт не имеет значения».

В свое «двадцатипроцентное» время команды придумывают много нового. Часть этих идей ни к чему не приведет, другая часть станет новыми фичами других проектов, а некоторые смогут перерасти в официальные продукты Google. Ни одному проекту по умолчанию не полагается тестирование. Проект может потерпеть неудачу, поэтому включать в него тестировщиков — напрасная трата ресурсов. Если проект закроют, что мы будем делать с готовой тестовой инфраструктурой?

Браться за качество еще до того, как концепция продукта дозрела и полностью сформирована, — это типичный пример неправильной расстановки приоритетов. Мы повидали много прототипов, созданных в «двадцатипроцентное» время, которые перерабатывались так сильно, что на стадии бета-версии или версии для внутренних пользователей от оригинального кода оставалась крохотная часть. Тестирование в экспериментальных проектах — безнадежная затея.

Конечно, не стоит впадать в крайности. Если продукт слишком долго развивается без тестирования, то становится тяжело менять архитектурные решения, плохо влияющие на его тестируемость. Это усложняет автоматизацию, а тестовые инструменты становятся ненадежными. Чтобы повысить качество, придется многое переделывать. Такой технический долг может затормозить разработку продукта на годы.

В Google не принято, чтобы тестирование появлялось в проектах рано. На самом деле разработчики в тестировании часто приходят на проекты на ранних этапах, но пока они больше разработчики, чем тестировщики. Это наше сознательное решение, но это не значит, что на ранних стадиях мы забываем о качестве. Это следствие неформального и одержимого новшествами процесса созидания в Google. Многомесячное планирование проекта перед разработкой, включающее контроль качества и тесты, — это не про нас. Проекты в Google начинаются намного менее формально.

Chrome OS — яркий пример такого подхода. На этом проекте все трое авторов этой книги работали больше года. Но задолго до того, как мы официально присоединились к работе, несколько разработчиков создали прототип. Он состоял в основном из скриптов и заглушек, но зато позволял продемонстрировать идею «чисто браузерного» приложения руководству Google, чтобы официально утвердить проект. На стадии прототипа команда концентрировалась на экспериментах и хотела доказать, что этот концепт вообще жизнеспособен. Тратить время на тестирование — или даже проектировать с оглядкой на тестируемость — было бы неразумным, особенно учитывая, что проект был еще неофициальным, а все демо­сценарии в будущем все равно заменили бы реальным кодом. Когда сценарии выполнили свое предназначение и продукт был утвержден, руководитель разработки обратился к нам за помощью в тестировании.

Все это — особая культура Google. Ни один проект не получит ресурсы тестирования просто так. Команды разработки обращаются к тестировщикам за помощью, убеждая их в том, что проект по-настоящему интересен и перспективен. После того как руководители разработки Chrome OS обрисовали свой проект, состояние дел и график выпуска, мы смогли выдвинуть свои требования по участию разработчиков в тестировании, уровню покрытия кода юнит-тестами и разделению обязанностей в процессе работы. Мы не участвовали в зарождении проекта, но когда он стал реальным, мы смогли серьезно повлиять на его реализацию.


На заметку

Перейти на страницу:

Похожие книги

Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам
Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам

Прочтя эту книгу, вы узнаете, что представляет собой BIOS, какие типы BIOS существуют, как получить доступ к BIOS и обновлять ее. Кроме того, в издании рассказано о неполадках в работе BIOS, которые приводят, например, к тому, что ваш компьютер не загружается, или к возникновению ошибок в BIOS. Что делать в этот случае? Как устранить проблему? В книге рассказывается об этом и даже приводится описание загрузки BIOS во флэш-память.Также вы научитесь использовать различные функции BIOS, узнаете, как оптимизировать их с целью улучшения производительности и надежности системы. Вы поймете, почему рекомендуемые установки являются оптимальными.После прочтения книги вы сможете оптимизировать BIOS не хуже профессионала!Книга предназначена для всех пользователей компьютера – как начинающих, которые хотят научиться правильно и грамотно настроить свою машину, используя возможности BIOS, так и профессионалов, для которых книга окажется полезным справочником по всему многообразию настроек BIOS. Перевод: А. Осипов

Адриан Вонг

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Книги по IT
Цифровой журнал «Компьютерра» № 160
Цифровой журнал «Компьютерра» № 160

ОглавлениеКолонкаПочему Челябинский метеорит привёл к такому количеству пострадавших? И можно ли избежать повторения? Автор: Евгений ЗолотовО (не)эффективном управлении, конфликте интересов на разных уровнях иерархии и Невидимой Ноге Автор: Дмитрий ШабановРеволюция делегированных услуг Автор: Сергей ГолубицкийМистика Дропбокса или как посредственному облаку удается снимать сливки с рынка Автор: Сергей ГолубицкийЧто может рассказать шЦфеср от Apple о тонких материях виртуально-финансового бытия Автор: Сергей ГолубицкийСвидетельствует ли скандал с диссертациями о моральном разложении научного сообщества Автор: Дмитрий ВибеГлоток свободы в последний раз (опыт джейлбрейка evasi0n iPhone 5 и new iPad) Автор: Сергей ГолубицкийДомашняя архитектура: Как в квартирах и гаражах самозарождаются компьютерные системы Автор: Михаил ВаннахБуревестник Литрес или уроки катабазиса от метафоры с булкой к гражданской войне Автор: Сергей ГолубицкийПоиски Астарота, или Почему космическим кораблям необходимо бороздить просторы Вселенной Автор: Василий ЩепетнёвIT-рынокКак быть с корпоративным консерватизмом, если государство «принуждает» к инновациям Автор: Вадим Сухомлинов, руководитель направления стратегического развития бизнеса Intel в России и странах СНГWebKit в «Опере»: какое будущее ждёт независимый браузер Автор: Андрей ПисьменныйRIOT: «Google для шпионов» от компании Raytheon Автор: Юрий ИльинВалентин Макаров: Что нужно ИТ-отрасли от государства? Автор: Валентин Макаров Президент НП РУССОФТБыть или не быть Microsoft Office для Linux Автор: Максим ПлаксаДесять предшественников iPad: планшеты от 1968 до 2000 Автор: Андрей ПисьменныйПромзонаДизайнеры шутят: квадратные куриные яйца, рыбы с проушиной под крючок и прочие радости ГМО Автор: Николай МаслухинПреобразование энергии: концепт термоэлектрического зарядного устройства, работающего от тепла люминесцентных ламп Автор: Николай МаслухинФутуристический концепт: Airblow 2050 – зонт образца 2050-го года Автор: Николай МаслухинСамый практичный дизайн: мальчику создали кисть руки при помощи 3D-принтера Автор: Николай МаслухинMobile«Сумму» ничего не ждёт, а LTE-конкурс не отменят Автор: Максим БукинVertu станет «сенсорником» под Android Автор: Максим БукинОстаться должен только один: что не поделили Apple, Samsung и Nokia Автор: Олег ПарамоновТерралабОбзор интерактивного дисплея Wacom Cintiq 24HD touch Автор: Юрий ИльинТехнологииДесять способов избавиться от ненужного астероида Автор: Андрей ПисьменныйСкрытая угроза: почему мы игнорируем метеориты, падение которых может привести к катастрофе Автор: Олег ПарамоновКто ограбил Volksbank и почему взломщики в кино так жутко не похожи на настоящих? Автор: Евгений ЗолотовКогда сотрутся границы между игровыми движками и «серьёзной» анимацией Автор: Юрий ИльинНа пороге пятого поколения вычислительной техники: какие изменения ждут завтрашние ПК Автор: Олег ПарамоновДвигатели для покорения космоса: краткая история смелых проектов и перспективные разработки Автор: Андрей ВасильковВ Южной Корее городской электротранспорт получит бесконтактную зарядку Автор: Андрей ВасильковТише едешь — дальше будешь, или Почему не спешат 3D-принтеры? Автор: Евгений ЗолотовПроект Human Brain: попытка смоделировать работу мозга на суперкомпьютере стоимостью в миллиард евро Автор: Андрей ВасильковБатарейка тяжёлая! Как и можно ли вообще отключить главный тормоз высоких технологий? Автор: Евгений ЗолотовАнатолий Левенчук о конференции по робототехнике в Сколково Автор: Анатолий Левенчук, президент TechInvestLab.ruИнновацииО новом московском интеракториуме и о том, как «примирить» технарей с лириками Автор: Дмитрий Климов, основатель проекта «Флуоресцентный Наноскоп»Как будет «khren'» по-английски, или Простые проекты Ильи Биллига Автор: Денис ВикторовПровал как топливо успеха: почему китайцы поступают правильно, финансируя лженаучный двигатель? Автор: Евгений ЗолотовСистема образования США отстала от потребностей новой экономики. Обама объявил «редизайн» Автор: Денис ВикторовBloomberg присудило России 14-е место среди инновационных стран – справедливо! Автор: Константин Синюшин, директор и со-основатель the Untitled venture companyСтуденческие стартапы: а может быть, деньги — не главное? Автор: Денис ВикторовКак стартапу выбрать акселератор? Автор: Артур Баганов, генеральный директор GTI Labs, сооснователь Alliance of Angels«Дай миллион, дай миллион!» Автор: Дмитрий Калаев, управляющий партнер RedButton Capital

Журнал «Компьютерра»

Зарубежная компьютерная, околокомпьютерная литература