Компании, желающие усилить и улучшить свою команду по тестированию ПО, могут чему-то научиться, наблюдая за тем, как международные гиганты выстраивают процессы тестирования и обеспечения качества. Важно иметь перспективу. Если единственным ориентиром тестирования и стандартов качества является ваша собственная компания, вы можете упустить ценные идеи.
Очевидно, что такие компании, как Google, Microsoft и Spotify, не были бы успешными, если бы не уделяли должное внимание качеству ИТ-продуктов, которые они выпускают на мировой рынок. Если присмотреться к гигантам из мира IT, то становится ясно, что единого рецепта успеха не существует.
Ниже мы описали, как одни из самых влиятельных в мире ИТ-компаний организуют свои QA-процессы:
1. Google: в поиске лучших практик
Как компания, ответственная за самую популярную в мире поисковую систему, организует работы по тестированию ПО? Всё зависит от конкретного продукта. Например, команда, отвечающая за поисковую систему Google, следует обширной и строгой структуре тестирования. Поскольку поиск является ключевым продуктом компании, команда стремится обеспечить максимально высокое качество всех предлагаемых функций.
Для этого в Google используют четырёхступенчатый процесс тестирования изменений в поисковой системе, состоящий из:
- Тестирования решений выделенной внутренней командой тестировщиков.
-
Дальнейшего тестирования на платформе краудтестинга (привлечение участников в проекты по оценке качества клиентского опыта при взаимодействии с новыми функциями).
-
Выпуска «пробной версии», которую сотрудники Google сами используют в повседневной работе / жизни.
-
Бета-тестирование, которое предполагает выпуск продукта для небольшой группы конечных пользователей.
Несмотря на то, что такой процесс тестирования кажется надёжным, бывший директор Google Джеймс Уиттакер как-то сказал, что ещё есть, куда расти. Хотя бы потому, что взаимосвязь между различными этапами тестирования и ответственными людьми не выстроена. Это приводит к тому, что некоторые решения тестируются либо дважды, либо не тестируются вообще.
Но команды, отвечающие за второстепенные продукты Google, используют гораздо менее строгий процесс QA. Иногда тестированием занимается только разработчик, ответственный за конкретный продукт, без привлечения команды тестирования.
В общей стратегии обеспечения качества ПО в Google можно также выделить следующие пункты:
- Важно тестировать ИТ-решения на ранних стадиях разработки и получать реальную обратную связь от пользователей.
- Обратная связь обладает несколькими свойствами: она быстрая, надёжная, помогает снизить риски.
- Каждый разработчик проводит собственное тестирование.
- Каждый тестировщик должен быть уверен, что у него есть необходимые инструменты для автоматизации и выстроенные процессы, поддерживающие её.
В любом случае, Google серьёзно относится к тестированию ПО. Более того, зарплаты тестировщиков и разработчиков зачастую равны, что можно встретить далеко не в каждой компании.
2. Facebook: тестирование под руководством разработчиков
Facebook вообще не нанимает тестировщиков как отдельных специалистов. Вместо этого гигант социальных сетей полагается на своих разработчиков, которые тестируют свои собственные (а также чужие) решения.
Если раньше это в основном выполнялось вручную, то сейчас Facebook использует широкий спектр решений для автоматизированного тестирования. Инструменты варьируются от PHPUnit для внутреннего модульного тестирования до Jest (технология тестирования JavaScript) и Watir для сквозного тестирования.
Как и Google, Facebook выпускает «пробную версию», чтобы убедиться, что ПО можно использовать. В компании также есть сомнительная традиция: фото разработчиков, которые что-то испортили (например, сломали сборку или случайно вывели сайт из строя), с носами клоунов размещают во внутренней группе Facebook.
В Facebook признают, что в их процессе тестирования есть существенные недостатки. Но вместо того, чтобы прилагать больше усилий для улучшения, в компании просто принимает эти недостатки, поскольку для руководства социальные сети не являются основным источником дохода. Топ-менеджеры убеждены, что меньшее внимание к тестированию освобождает больше ресурсов, которые можно направить на другие продукты Meta.
Вместо того, чтобы тестировать своё программное обеспечение до выпуска, Facebook, как правило, выступает сторонником «канареечных» релизов и стратегии постепенного развёртывания для тестирования исправлений, обновлений и новых функций в производственной среде.
Новая функция может быть сначала доступна небольшому проценту от общего числа пользователей. Далее, отслеживая динамику использования новой функции и анализируя полученные отзывы, разработчики принимают решение либо увеличить развёртывание, либо доработать функцию, либо вовсе отказаться от неё.
3. Amazon: развёртывание — прежде всего
Как и в Facebook, в Amazon нет развитой инфраструктуры контроля качества выпускаемых решений. Как-то даже в интернете публиковали предположение, что Amazon не сильно ценит профессию инженера по обеспечению качества. Соотношение примерно одного инженера-тестировщика на каждые семь разработчиков также говорит о том, что тестирование не считается приоритетным направлением в Amazon.
Однако сама компания придерживается другого мнения. Для Amazon соотношение тестировщиков и разработчиков — это «выходная», а не «входная» переменная. Другими словами, как только в Amazon замечают, что доход снижается или клиенты уходят из-за аномалий на веб-сайте, руководство начинает более интенсивное тестирование.
В Amazon считают, что их процессы разработки и развёртывания настолько отработаны (компания, как известно, выпускает новые функции каждые 11,6 секунды!), что нет необходимости в сложном и обширном тестировании. В компании стремятся сделать программное обеспечение простым в развёртывании и, что не менее важно, простым в откате в случае сбоя.
В целом, на процесс тестирования в Amazon смотрят так:
- С одной стороны, в компании заботятся о чётком понимании и согласованности между разработчиками, менеджерами, дизайнерами, о непрерывной валидации и итерации, о модульном тестировании и т. д. а с другой стороны, — о таких моментах, как обратная связь от клиентов, отслеживание, поддержка и т.д.
-
В Amazon есть QA-специалисты, но это не те люди, на которых перекладывают весь процесс тестирования. Вместо этого они обучают качеству и навыкам тестирования других специалистов, помогая командам создавать надёжные решения. Они также проводят аудиты и обучение для сотрудников.
4. Spotify: команды тестирования и подразделения
В Spotify есть отдельные команды тестировщиков. Они являются частью кросс-функциональных команд, каждая из которых выполняет определённую миссию. В Spotify сотрудники организованы в соответствии с особой моделью, состоящей из:
- Команд. Это, по сути, Scrum-команда, в которой меньше внимания уделяют практике, а больше — принципам. Один из принципов Spotify гласит: «Правила — хорошее начало, но нарушайте их, когда это необходимо». В некоторых командах может быть один или несколько тестировщиков, а в других может вообще их не быть, в зависимости от целей.
- Групп. Группы состоят из нескольких команд, которые объединяются в зависимости от сферы их деятельности и цели.
- Подразделений. В разных командах или группах из команд Spotify создают подразделения для объединения людей с похожими навыками, чтобы способствовать обучению и обмену опытом. Например, все тестировщики из разных команд объединяются в подразделение тестирования.
Как и программирование, тестирование считается творческим процессом и не может быть на 100% автоматизировано. В отличие от большинства других компаний, упомянутых в этой статье, Spotify в значительной степени полагается на преданных своему делу тестировщиков, которые действительно изучают и анализируют продукт, вместо того, чтобы пытаться максимально автоматизировать процесс тестирования.
И последний факт: чтобы минимизировать усилия и затраты, связанные с созданием и поддержкой тестовых сред, Spotify проводит большую часть тестирования в своей производственной среде.
5. Microsoft: инженеры и тестировщики — единое целое
Соотношение тестировщиков и разработчиков в Microsoft составляет примерно 2:3, и, как и Google, Microsoft платит тестировщикам и разработчикам одинаково/ Только их не называют тестировщиками, а инженерами по разработке программного обеспечения в тестировании (или SDET).
Высокое соотношение тестировщиков и разработчиков объясняется тем, что львиная доля доходов компании поступает от поставляемых ИТ-продуктов, которые необходимо устанавливать на клиентские компьютеры, а не от веб-сайтов и онлайн-сервисов.
Поскольку обновлять эти продукты в случае обнаружения ошибок или при выпуске новых функций гораздо сложнее (или, по крайней мере, более хлопотно), Microsoft вкладывает много времени, усилий и средств в обеспечение высокого качества своих продуктов перед релизом.
Airbnb, eBay и Slack
Также хотелось бы вкратце отметить принципы и подходы к тестированию в трёх других международных компаниях:
Airbnb
- Один из популярных подходов — давать прямые указания, но, учитывая культуру самостоятельности команд тестирования в Airbnb, такой подход восприняли бы негативно. Подход компании — показать пример и задать направление.
- Планка для написания новых тестов должна быть настолько низкой, что вы можете даже споткнуться о неё.
- Быстро запускать отдельные тесты, а в установленное время запускать полный набор тестов в облаке и заранее предоставлять всю информацию о новых фичах PR отделу.
eBay
- Качество должно стоять во главе разработки продукта и ведения бизнеса в целом.
-
Важнее сосредоточиться на том, чтобы были ли достигнуты результаты, поставленные клиентом, и выгода для компании, а не просто на выпуске ИТ-решений без ошибок.
-
Важно вовлекать в процесс разработки и поддержания качества всех сотрудников, а также формировать безопасную атмосферу, в которой каждый может признавать свои ошибки.
Slack
- Качество — это общая ответственность в компании.
-
Команда тестирования сосредоточена на создании культуры обеспечения качества, увеличении тестового покрытия и помощи компании в более быстром выпуске новых функций.
-
Важно максимально облегчить чтение, написание и поддержку сквозных end-to-end тестов.
Чему вы можете научиться у крупнейших ИТ-компаний
Если культура, взгляды и процессы, связанные с тестированием и контролем качества ПО, могут так сильно различаться в описанных выше технологических гигантах, возможно, и правда не существует единственно верного способа обеспечения качества решений в компании.
Из описанного выше можно сделать несколько выводов, которые помогут вам сформировать свою стратегию тестирования:
- Существует некий спектр ответственности за тестирование от «у нас есть выделенная команда тестирования, которая проводит все тесты» до «все в компании ответственны за обеспечение качества и тестирование». Вы можете выбрать тот вариант, который больше всего соответствует вашим принципам.
-
Существует также спектр необходимости в проведении тестирования, который варьируется от «ни одна функция не выходит в производство непроверенной» до «мы выпускаем всё в производство, а затем тестируем функции там, (если вообще тестируем)». Позиция вашей компании в этом спектре зависит от рисков, связанных с вероятными дефектами, или с тем, насколько легко вы сможете «откатить» назад релиз и устранить проблемы, если они возникнут.
- Автоматизация тестирования широко представлена во всех описанных компаниях. Степень её внедрения разная, но все ИТ-гиганты используют инструменты для оптимизации усилий по тестированию. Возможно, вам тоже стоит это сделать.
Оставить заявку на бесплатную консультацию вы можете
здесь.