Цікавий запис з’явився в блозі Google Testing Blog, який захотілося перекласти, щоб краще зрозуміти, що хотів донести до нас автор. Вийшло місцями не дуже читабельно, але сподіваюся, що основний посил вам буде зрозумілий. Переклад є частково вільним, тож не судіть суворо.
Хто такі інженери з тестування в Google?
Інженери з тестування ПЗ входять до складу інженерної групи продуктивності Google (EngProd). Ми захищаємо інтереси наших користувачів, надаємо комплексні рішення для тестування та відіграємо ключову роль у створенні успішних і надійних продуктів і платформ.
Важливо розуміти: У Google QA спеціалісти не є мануальними тестувальниками - ми технічні інженери, чиї зусилля спрямовані на підвищення якості продукції та інженерної продуктивності.
Що означає COOL?
Коротше кажучи, це COOL - акронім, який описує ключові якості інженера з тестування:
- Constant learner - постійний учень
- Out-of-the-box thinker - нестандартний мислитель
- Orchestrator - організатор
- Leading-edge user - провідний користувач
Щоб бути інженером з тестування в Google, необхідно володіти всіма цими якостями.
Постійне навчання (Constant Learner)
Постійне навчання - це те, що підтримує мотивацію інженерів з тестування Google.
Що ми вивчаємо:
- Цілісне розуміння програмного стеку та взаємозв’язків між компонентами
- Обсяг тестування зв’язків між різними стеками
- Глибокі знання продукту, що робить нас експертами тестування
Як ми застосовуємо знання:
- Тісна співпраця з розробниками з самого початку процесу розробки
- Обговорення придатності до тестування до реалізації функцій
- Розробка стратегій, методик та планів тестування
- Створення сценаріїв, проєктування систем та інструментів
- Розробка тестової інфраструктури
Практичні завдання:
- Перегляд проєктної документації
- Глибоке занурення в масивну базу коду Google
- Оцінка стектрейсів та визначення першопричин виробничих відмов
- Управління ризиками через виявлення слабких місць у коді
- Творчі способи зламу програмного забезпечення
- Виявлення потенційних проблем
Додаткові можливості:
Наша службова драбина дає нам гнучкість і незалежність для:
- Дослідження нових технологій (ML, хмарні обчислення)
- Створення нових рішень для тестування
- Покращення існуючих рішень
Нестандартне мислення (Out-of-the-box Thinker)
Нестандартне мислення - результат постійного навчання, це ще одна особливість, яка підтримує в нас мотивацію.
Наші цілі:
- Захист досконалості інженерних рішень
- Пропонування оптимізованих рішень для усунення неефективності
- Заповнення прогалин у тестуванні та технологічних процесах
Творчі підходи до тестування:
- Diff-тестування - порівняння різних версій
- Побудова динамічних тестових кейсів з логів
- Розробка евристичних алгоритмів для виявлення винних у збоях
- Створення рішень для скорочення часу виконання тестів
- Впровадження заглушок та імітацій об’єктів і серверів
Масштаб завдань:
Сотні й тисячі рядків коду реєструються в Google кожну хвилину. Для підтримки швидкості, якості та працездатності коду ми розробляємо творчі способи тестування та налагодження.
Приклади продуктів, які ми тестуємо:
- Google Пошук
- Google Ads
- Google Maps
- YouTube
- Google Cloud
- Автономні автомобілі
- Google Apps
Без нашого підходу тестування цих продуктів не було б масштабованим з традиційною практикою тестування.
Організація (Orchestrator)
Організація зусиль з тестування є однією з ключових обов’язків Google Test Engineers.
Наші партнери:
- Менеджери з продуктів
- Менеджери з технічних програм
- Інженери з програмного забезпечення
Що ми організовуємо:
- Визначення критичних подорожей користувачів
- Стратегії тестування
- Переконання, що правильні тести виконуються на правильних конфігураціях/оболонках
Наші навички:
- Сильні навички комунікації та співпраці
- Робота з міжфункціональними командами
- Роль євангелістів у поширенні інформації про:
- Нові інструменти
- Технології
- Найкращі практики тестування
Додаткові можливості:
- Проведення хакатонів
- Організація стажувань
- Рекрутингові заходи в коледжах
- Взаємодія зі спільнотою розробників ПЗ з відкритим вихідним кодом
- Прислуховуємось до відгуків та перетворюємо їх на вдосконалення продукту
Провідний користувач (Leading-edge User)
Провідний користувач - весела частина роботи інженера з тестування.
Що ми можемо робити:
- Брати участь у розробці продукції
- Участь в огляді дизайну, документації та прототипів
- Грати з можливостями та продуктами на ранніх стадіях
- Надавати обґрунтовані відгуки
Найкращі переваги:
Як ранні користувачі, ми можемо:
- Їздити на автономних автомобілях
- Бути в нашому власному світі з AR/VR
- Взаємодіяти з Google Assistant для виконання роботи
- Мати кілька ноутбуків, телефонів для тестування