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

Одного нашего кандидата (который, кстати, уже великолепно справляется с работой в Google) спросили, как бы он организовал тестирование граничных условий для версии этой функции с 64-разрядными целыми числами. Он быстро догадался, что задача физически неразрешима из-за ограничений по времени и объемам данных. Но из любопытства, подогретого нетривиальностью задачи, прикинул, как можно хотя бы разместить большие объемы данных для таких тестов. В качестве входных данных он взял веб-индекс Google.

Как же он проверил свое решение? Кандидат предложил использовать параллельную реализацию и посмотреть, дадут ли обе реализации одинаковый результат. Он предложил применить метод статического выборочного контроля: знаем ли мы, какова предполагаемая частота появления буквы «А» на веб-страницах? Если нам известно количество проиндексированных страниц, мы можем сравнить результат вычислений программы с результатом, полученным теоретическим путем. Это подход к тестированию в духе Google. Хотя мы не стали реализовывать эти гигантские тесты, сама возможность таких решений наталкивает на интересные идеи для реальной работы.

Еще один параметр, который мы проверяем на собеседовании, — «гугловость», то есть соответствие нашей культуре. Насколько кандидат технически любознателен? Может ли он интегрировать в свое решение новые идеи? Как он справляется с неоднозначностью? Знакомы ли ему академические методы проверки качества, например доказательства теорем? Разбирается ли он в метриках качества или автоматизации в других областях, например в самолетостроении?

Пытается ли он оправдать наличие багов, которые мы нашли в его реализации? Может ли мыслить масштабно? Кандидаты, конечно, не обязаны обладать всеми перечисленными свойствами, но чем больше совпадений, тем лучше. И наконец, хотим ли мы вообще работать с этим человеком каждый день?

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

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

Пат Коупленд во введении говорит, что по поводу найма разработчика в тестировании было и есть много полярных мнений. Если он хорошо программирует, может быть, поручать ему писать фичи? Ведь хороших разработчиков тоже сложно найти. А может, им стоит сосредоточиться только на тестировании, если они легко с этим справляются? Истина, как обычно, лежит где-то посередине.

Поиск хорошего кандидата на роль разработчика в тестировании — дело хлопотное, но оно того стоит. Даже один хороший разработчик в тестировании может оказать огромное влияние на работу всей команды.


Интервью с разработчиком инструментов Тедом Мао

Тед Мао — разработчик Google, который занимается исключительно инструментами тестирования. Он создает инструменты тестирования веб-приложений, которые масштабируются на все, что создается в Google. Тед хорошо известен среди разработчиков в тестировании, чья работа немыслима без хороших инструментов. Тед, вероятно, знает общую инфраструктуру веб-тестирования Google лучше всех.

— Когда ты пришел в Google и чем тебя привлекла эта работа?

Тед: Я присоединился к Google в июне 2004 года. До этого я работал только в крупных компаниях, таких как IBM и Microsoft, а тут появился Google — перспективный стартап, который привлекал многих талантливых инженеров. Казалось, что здесь будет много интересных и сложных задач, и я хотел поучаствовать в этой работе рука об руку с лучшими инженерами в мире.

— Ты придумал и реализовал Buganizer30, багтрекинговую систему Google. Чего ты хотел добиться в первую очередь с помощью Buganizer и чем эта система была лучше старой BugDB?

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

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

Оптимизация 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

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

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