QA в Google
Тестировщики в гугле находятся в отдельном направлении и не подчиняются команде разработки продукта. Это позволяет сохранять небольшой штат тестировщиков. Над одним продуктом они работают по полтора года, упор делается на эрудированность тестеров.
Отдельные роли:
- пишут юнит-тесты — разработчики фич продукта
- создают средства тестирования и занимаются инфраструктурой — разработчики в тестировании
- тестируют “со стороны пользователей” — инженеры по тестированию
Разработчики в тестировании — именно разработчики, их работа связана с программированием. Работают рука об руку с разработчиками продукта.
Вместо классификации вида “модульные, интеграционные, e2e” тесты делят на малые, средние и большие. Упора на терминологию в классификации нет.
В Google не принято, чтобы тестирование появлялась в проектах рано.[0]
Нашёл баг — исправь сам. Видишь лучшее решение — реализуй. [1] За такую помощь сотрудники могут назначить любому другому премию.
Различия в ОС рабочих ПК и серверов минимальны. Для каждого языка программирования используется только один компилятор/интерпритатор. Система сборки не зависит от языка.
Разное
- Телефоны команды разработки android работают на текущей (daily) сборке
- Используют и продвигают TDD
- 20% рабочего времени можно тратить на любой другой проект Google [2]
- Gmail и Chrome OS выросли из таких “двадцатипроцентных” проектов
- Один репозиторий на всю компанию
- Основные языки: С++, Java, Python, JavaScript, Go
[0] Из-за особенностей компании: много экспериментальных проектов
[1] Этот же подход описан в книге Site Reliability Engineering
[2] Некоторые источники утверждают обратное
