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

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

— Разработчик в тестировании должен знать структуру тестируемой системы, и чтение проектной документации в этом помогает. Так что рецензирование полезно как разработчику в тестировании, так и разработчику.

— Чем раньше внесено предложение, тем больше вероятность, что оно попадет в документ, а потом и в код. Так разработчика в тестировании сможет сильнее повлиять на проект.

— Разработчик в тестировании станет первым человеком, рецензирующим все проектные документы, и не пропустит ни одной итерации. Его знание проекта в целом сможет сравниться только со знанием ведущего инженера.

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

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

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

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

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

— Архитектура. Проанализируйте архитектуру, предложенную в документе. Можно ли ее реализовать с доступными ресурсами? Какая инфраструктура будет использоваться? Прочитайте описание этой инфраструктуры и изучите ее подводные камни. Можем ли мы поддерживать предложенную инфраструктуру в нашей системе? Архитектура не слишком сложная? Можно ее упростить? Не слишком ли она проста? Что еще нужно учесть при работе с этой архитектурой?

— Интерфейсы и протоколы. Четко ли в документе определены будущие протоколы? Полностью ли описаны интерфейсы и протоколы, которые будет предоставлять продукт? Соответствуют ли эти интерфейсы и протоколы своим целям? Соответствуют ли они стандартам продуктов Google? Можно ли рекомендовать разработчику пойти дальше и начать писать protobuf-файлы (эту концепцию мы опишем дальше)?

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


На заметку

Рецензировать проектные документы нужно вдумчиво и целенаправленно, а не бегло. Рецензирование преследует четкие цели.

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


Интерфейсы и протоколы

С описанием интерфейсов и протоколов разработчики Google справляются легко, ведь для этого нужно писать их любимый код. В Google разработали специальный расширяемый язык Protocol Buffer19 для сериализации структурированных данных. Protobuf — это механизм описания данных, который не зависит от языка программирования или платформы, которые вы собираетесь использовать. По сути, он похож на XML, только компактнее, быстрее и проще. Разработчик определяет структуру данных с помощью Protocol Buffer и потом использует сгенерированные исходники для чтения и записи структурированных данных на разных языках (Java, C++ или Python). Часто код Protocol Buffer становится первым написанным кодом в проекте. Можно встретить документацию, которая ссылается на protobuf-файлы при описании того, как должна работать полностью реализованная система.

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

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

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

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

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