Как тестируют в Google - Каролло Джефф 2 стр.


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

Команды разработчиков испытывали сильное давление. Google начал покупать компании со своими веб-приложениями (YouTube, Google Docs и прочие), которые только усиливали нагрузку на нашу внутреннюю инфраструктуру. Проблемы, с которыми я сталкивался в тестировании, не уступали проблемам, с которыми сталкивались разработчики при написании кода. Я пытался решить проблему тестирования, которую просто невозможно было решить отдельно от разработки. Рассматривать тестирование и разработку как обособленные дисциплины или даже как разнородные задачи было в корне неверно, и мы не могли решить ни одну из проблем. Улучшение команды тестирования стало бы всего лишь временным успехом.

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

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

Глядя на организацию, которая выросла из моей идеи о привлечении разработчиков на позиции тестирования, я понял, что тестирование было лишь частью нашей работы. У нас были команды, которые создавали все инструменты от репозиториев исходного кода до инфраструктуры для багтрекинговой системы. Среди нас были инженеры по тестированию, инженеры по выпуску продуктов, разработчики инструментов и консультанты. Меня поражало, как сильно тот аспект нашей работы, который не являлся непосредственно тестированием, влиял на производительность. Возможно, наша команда называлась «службой тестирования», но наши обязанности были намного шире.

Поэтому я решил оформить все официально и сменил название команды на «направление продуктивности разработки». Смена названия привела к культурному сдвигу. Люди начали говорить не о контроле качества и тестировании, а о производительности. Повышение производительности наша работа, а тестирование и контроль качества работа всех, кто пишет код. Это означает, что и тестирование, и контроль качества входят в обязанности разработчика. Команда продуктивности разработки должна заботиться о том, чтобы разработчик мог заниматься этими двумя вещами.

На первых порах идея была абстрактной, а наш девиз «Ускоряем Google» поначалу звучал наигранно. Со временем мы выполнили обещание. Наши инструменты ускорили темпы разработки, мы переходили от одного бутылочного горлышка к другому, расчищали пути и решали проблемы, с которыми сталкивались разработчики. Наши инструменты помогли разработчикам писать тесты и наблюдать их результаты при каждой сборке. Тестовые сценарии уже не выполнялись локально на компьютере тестировщика. Их результаты публиковались на информационных панелях и собирались от версии к версии, так что в итоге они становились частью общедоступных данных о готовности приложения к выпуску. Мы не просто требовали участия разработчиков, мы упрощали его. Разница между тестированием и обеспечением продуктивности наконец-то стала ощутимой: Google мог создавать новое с меньшими затратами и обходиться без накопления технического долга.

Результаты? Пожалуй, я не буду предвосхищать содержание книги, потому что ее написали для того, чтобы рассказать о них миру. Авторы приложили огромные усилия, чтобы на основании собственной работы и опыта своих коллег из Google свести наш секретный рецепт успеха к конкретному набору практических методов. Мы добились успеха во многих отношениях от сокращения времени сборки до автоматизированного тестирования в формате «запустил и забыл» и публикации в опенсорс новаторских инструментов тестирования. Когда я писал это вступление, в направлении продуктивности разработки работало около 1200 специалистов, что немногим больше численности всего технического персонала в 2005 году, когда я пришел в Google. Бренд «продуктивности» укрепился, а наше стремление ускорить Google стало неотъемлемой частью нашей технической культуры. С того первого дня, когда я сидел озадаченный и неуверенный на пятничной встрече, наша команда проделала путь длиной во много световых лет. Единственное, что не изменилось с тех пор,  моя трехцветная кепка с пропеллером. Она лежит у меня на столе и напоминает о том, как далеко мы ушли.


Патрик Коупленд старший директор направления продуктивности разработки, вершина пирамиды тестирования в Google. Все тестировщики в компании подчиняются Патрику, а его руководителем, кстати, является Ларри Пейдж, соучредитель и исполнительный директор Google. Карьере Патрика в Google предшествовала почти десятилетняя работа в Microsoft на должности директора по тестированию. Он часто выступает публично и известен как архитектор используемой в Google технологии быстрой разработки, тестирования и развертывания ПО.

Предисловие

Разрабатывать программные продукты сложно. Тестировать эти продукты тоже сложно. Когда кто-то говорит о разработке и тестировании в масштабах веб, он подразумевает Google. Если вы хотите узнать, как в одной из самых известных интернет-компаний решаются проблемы тестирования в грандиозных рамках всей Сети, то вы держите в руках правильную книгу.

В Google ежедневно тестируются и выпускаются сотни миллионов строк кода, распределенного по миллионам исходных файлов. Миллиарды операций по сборке запускают выполнение миллионов автоматизированных тестов в сотнях тысяч экземплярах браузеров ежедневно. Операционные системы строятся, тестируются и выпускаются в пределах одного календарного года. Браузеры собираются ежедневно. Веб-приложения выпускаются почти непрерывно. В 2011 году сто новых фич Google+ были выпущены за сто дней.

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

Выкурив с Бобом десяток трубок, я пришел проведать пациента. Он не спал и тер щеку.

 Больно?  спросил я.

Он поднял глаза вверх и скромно ответил:

 Очень!

 Но все-таки лучше, чем зубная боль?  сказал я в утешение.

 О, хуже!  ответил он.

После краткого молчание, он проговорил:

 Как они добры как добры и внимательны ко мне!

 Необыкновенно добры и внимательны!  ответил я.

 Какая у них прелестная дочь!  продолжал Долли.  Она, я полагаю, с меня ростом, а?

С него ростом! Девица Анастасия была ростом полных шесть футов, и стоя рядом, могла на него глядеть, как на садовую дорожку! Мы, мидльсекские, прозвали ее «блумсберийской красавицей», о чем я его и уведомил.

 Это совершенно справедливо!  ответил невинный Долли.  Великолепное создание!

Я объявил дамам, что пациент проснулся, и они тотчас же удостоили его визитом. Мисс Анастасия была еще пленительнее в легком, развевающемся, воздушном платье. Чувствительный Адольфус чуть не ахнул при её появлении. Кружева обертывали ее, словно облака и вились около нея, и трепетали как крылья, а сквозь этот прозрачный материал, сквозила вышитая шемизетка. Голова пораженного Адольфуса склонилась на сторону, рот слегка раскрылся: он был побежден!

Они вступили в разговор. Мисс Анастасия села около него на софе, распустив свои роскошные облака и скрыв ими Долли почти совершенно.

Она чрезвычайно мило и сочувственно относилась к его страданием, симпатично вздыхала, трогательно взглядывала. Иногда его речь так сильно ее потрясала, что она на мгновение закрывала лицо надушенным платком и испускала тихие восклицание.

 Что особенно заставило вас так страдать?  спросила она с глубоким интересом.

 Я полагаю,  отвечал очарованный Адольфус:  что инструмент был слишком велик для моего рта

 А! ужасно! меня это бы убило!  пролепетала Анастасия. Но милой девице не угрожала вовсе опасность: её ротик, хотя и классический, был достаточно широк и вместителен.

Старый де-Кад пригласил меня и Долли остаться обедать. Адольфус, к моему великому огорчению, отказался, говоря что не может теперь ничего есть.

Но мистрисс де-Кад стала его уговаривать, а мисс де-Кад воскликнула:

 О, останьтесь!

И при этом так очаровательно вспыхнула, что Адольфус забыл свою рану и согласился.

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

Как она была внимательна и добра, бесценная девушка!

 Не утомляет ли вас лестница?  нежно спросила она Долли, спускаясь в столовую.  Не отдохнете ли вы?

Бедный Долли, который подпрыгивал, стараясь идти на цыпочках, отвечал с невинностью младенца:

 О, я могу идти! Ноги у меня не болят, болит только во рту!

Глава II. Голубки

Что может быть интереснее возникающей любви? Что может быть любопытнее постепенного прогресса нежного чувства? Блаженная страсть!

Я понимаю волнение влюбленного человека, но я тоже вхожу и в чувства спекулирующей матери и ценю блогородные страдания отца.

Обед в Блумсбери-сквере внушил мисс Анастасии некоторые мысли, затмил Долли последний рассудок и подал мистрисс де-Кад самыя лестные надежды.

Поведение маленького обожателя много обещало; два раза он попробовал сказать комплимент (которой совершенно бы пропал, если бы мистрисс де-Кад не поспешила его искусно выяснить); он не сводил с красавицы глаз и в то же время трепетал, боясь что она это заметит; он чувствовал нервную дрожь и улыбался; желая для контенансу[2], положить себе молодого картофелю, он рассыпал его по полу; он метался до тех пор на своем кресле, пока не запутался в роскошных складках воздушного платья и, стараясь выпутаться, разорвал сверху до низу два полотнища.

Но все были светло и счастливо настроены, и Долли был успокоен прежде, чем краска смущение успела сбежать с его лица. Я сравнил молодой картофель с бильярдными шариками, а великолепная Анастасия, улыбаясь божественной улыбкою, сказала (я опасаюсь, не совсем чистосердечно), что она бесконечно рада погибели этого противного платья: она именно его терпеть не могла и обещалась отдать его горничной.

Я потом видел его самое платье на её младшей сестре, много обещающей в будущем девочке; она носила его по воскресеньям.

Возбужденное состояние Блумсбери-сквера достигло высшей степени, когда Долли на другой день снова явился, "показать свой рот", объяснил он; но опытную мать, как мистрисс де-Кад, не проведешь такими жалкими уловками.

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

 С этого дня надо одеваться как можно раньше, моя милая,  говорила взволнованная мать.  Нельзя рисковать Такой клад не скоро сыщешь! Теперь с утра надо надевать персиковое шелковое платье оно очень эффектно

Свидание Анастасии и Долли не удалось: не утешило нежных родителей и не развеселило красавицу. Войдя, Долли увидал божественное создание, глубоко погруженное в чтение книги (она держала ее вверх ногами); она вздрогнула при его неожиданном появлении и сказала, что это очень любезно с его стороны.

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

 Что? Что? Что?

Анастасия была раздражена. Она презрительно ответила:

 У нас был преприятный разговор: мы, главным образом, толковали о его рте.

 Господь Бог мой!  воскликнула мамаша.  Что за умовредный человек! Но каков он был вообще?

 Он точно боялся меня и думал как бы сбежать. Я напрасно старалась переменить разговор: он всё сводил его к своему мизерному рту!

Она была так сердита, что не будь у Долли 1.200 фунтов годового дохода, она отправила бы недогадливого простачка на все четыре стороны.

Но побежден окончательно Долли был при втором свидании. Я это понял, как только пришел к нему и взглянул на него. Он быть ласков донельзя, шерри явилось передо мною в мгновенье ока; я молча сидел и ждал его исповеди. Он не знал, как завести речь, и начал ходить взад и вперед по комнате, ступая по пестрому ковру так, чтобы нога непременно попадала только в голубую клетку. Нервные люди, когда чем-нибудь сильно взволнованы, всегда прибегают к каким-нибудь противоволнующим средствам. Один мой знакомый, говоря мне о болезни ребенка, съел весь ноготь большого пальца; другой знакомый, в случае сильного возбуждения чувств, таскает себя неистово за бакенбарды. Некоторые дергают себя жестоко за нос; другие кусают себе губы; у иных бывают конвульсии. Долли так старался попадать в голубые клетки, что ослабел от усилий и на лбу у него показались капли нота. Ножки его выделывали разные быстрые па, и скользили, как угри; его лицо было торжественно, как у мусульманина. Напрасно я, время от времени, говорил: "какова сегодня жара, Долли, а?" или спрашивал: "что нового, Долли?" Он, казалось, не слыхал меня и не замечал. К счастью он, наконец, сбился с голубой клетки и опомнился.

Тогда он покраснел и начал:

 Да, сегодня очень жарко; новостей нет; но я хочу попросить у вас совета, дорогой мой Джек. А вы, пожалуйста, надо мной не смейтесь!

Самое верное средство заставить человека смеяться это попросить его не смеяться.

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

Назад Дальше