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

Когда мы с двумя коллегами-тестировщиками влились в работу над проектом, у Google Desktop уже было около 2500 тест-кейсов в старой базе данных Test Case Manager, а несколько старательных подрядчиков в хайдарабадском офисе прогоняли эти тест-кейсы для каждого выпуска. Циклы прохождения тестов часто занимали по неделе и больше. Раньше уже были попытки автоматизировать тестирование продукта через пользовательский интерфейс, но они не удались из-за сложности проекта и их затратности. Управлять веб-страницами и пользовательским интерфейсом окна рабочего стола через C++ было непросто, постоянно возникали проблемы с задержками.

Моими коллегами-тестировщиками были Теджас Шах и Майк Мид. Тогда в Google ресурсы клиентского тестирования были ограничены. Так как большинство продуктов уже работало в веб или быстро туда переходило, мы решили взять фреймворк тестирования на Python, который разработали для Google Talk Labs Edition. Он управлял продуктом через веб-модель DOM. В этом простом фреймворке были реализованы основные средства — например, класс тест-кейсов, производный от PyUnit. Многие тестировщики и разработчики знали Python, так что у нас была стратегия выхода на всякий случай. А если бы что-то сломалось, многие другие инженеры могли помочь. Кроме того, Python прекрасно подходит для итеративной разработки маленьких фрагментов кода без компиляции. В Google он устанавливается на рабочие станции инженеров по умолчанию, так что весь тестовый пакет мог быть развернут одной командной строкой.

Мы с ребятами решили применить весь диапазон возможностей Python API для управления продуктом. Мы использовали ctype для управления COM API на стороне клиента для поиска, мы моделировали ответы сервера для тестового внедрения локальных результатов в результаты google.com (нетривиальная задача!), работали с множеством библиотечных функций, чтобы имитировать пользователя и воссоздать его путь в приложении. Мы даже построили систему виртуальных машин для автоматизации тестов, которым нужны индексы Google Desktop. Иначе нам пришлось бы несколько часов ждать завершения индексирования на новой установке. Мы сформировали небольшой автоматизированный пакет смоук-тестирования47, покрывающий самые важные функции продукта.

Потом мы принялись изучать старые тест-кейсы. Многие из них было сложно даже понять. Например, там были ссылки на код из прототипов или уже удаленных функций ранних версий или же они сильно зависели от контекста и состояния машин. К сожалению, большая часть документации жила только в головах разработчиков из Хайдарабада. Если бы нам вдруг понадобилось быстро проверить сборку с фиксами безопасности, у нас бы ничего не вышло. Это обошлось бы слишком дорого. Поэтому мы решились на смелый шаг — проанализировали все 2500 тестов, выявили самые важные и актуальные из них, а потом удалили все, оставив примерно 150 тестов. Да, количество тест-кейсов удалось здорово сократить. Поработав вплотную с подрядчиками, мы довели до ума оставшиеся ручные тест-кейсы — последовательность действий стала настолько ясной и подробной, что ее мог выполнить любой, кто пользовался Google Desktop хотя бы несколько минут. Мы не хотели остаться единственными людьми, которые могли выполнить регрессионную серию.

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

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

С автоматическими регрессионными тестами, проверявшими каждую внутреннюю и публичную сборку, с очень простым ручным тестированием нам не стыдно было оставить Desktop в режиме сопровождения и сосредоточиться на менее устойчивом и рискованном проекте Chrome.

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

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

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

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

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