Передовой опыт гигантов отрасли

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

Как им удается поддерживать процесс тестирования программного обеспечения в миллионах строк кода?

Как они организуют рабочий процесс с тысячами QA-инженеров?

Как они справляются с расширением проекта?

Опыт таких компаний, как Google или Spotify, может помочь улучшить процессы тестирования в небольших компаниях и командах.

Давайте подробнее рассмотрим, как тестируют гиганты.

Google: важность покрытия кода

GoogleТем не менее, многие инженеры спорят о важности такого показателя эффективности тестирования программного обеспечения, как покрытие кода. Специалисты из Google настаивать что данные о покрытии кода могут быть ценной информацией для оценки рисков и узких мест в процессе тестирования. Карлос Аргуэльес, Марко Иванкович и Адам Бендер делятся передовым опытом по покрытию кода:

  • Покрытие кода может помочь уменьшить количество ошибок и сбоев. Опыт QA-инженеров из Google показал, что увеличение покрытия кода приводит к изменению подходов и отношения к тестированию. Команды, основной целью которых является покрытие кода, стремятся улучшить тестируемость своих продуктов. Они пишут более эффективный код для тестирования, чтобы легче и быстрее достичь целей тестирования.
  • Используйте мутационное тестирование, чтобы обеспечить высокое тестовое покрытие. Полное покрытие кода может быть расточительным и не гарантирует качественного покрытия тестами. Высокий процент покрытия кода не означает, что все функции были протестированы корректно. Это означает, что код был полностью протестирован. Для обеспечения высокого качества тестового покрытия специалисты Google рекомендуют использовать мутационное тестирование. Этот метод включает в себя внесение небольших изменений в код и проверку того, как наборы тестов идентифицируют их.
  • Процент покрытия кода зависит от многих факторов. Мы не должны стремиться к высокому покрытию кода, но и низкое покрытие приводит к большому количеству сбоев. И вопрос в том, что такое конкретное покрытие кода для конкретной системы? Чтобы ответить на этот вопрос, мы должны рассмотреть такие вещи, как критичность, сложность и частота изменения кода. Покрытие кода — это бизнес-решение, и владельцы продукта должны его определить.
  • Проанализируйте, что закрывать. Мы не можем получить 100% покрытие кода, поэтому QA-инженеры должны следить за тем, чтобы наиболее ценные части кода были покрыты. Команда разработчиков должна обсуждать и думать не о том, сколько строк кода покрыто, а о том, что именно покрыто.

Spotify: надежная стратегия

СпотифайSpotify — быстрорастущая компания. Она была создана в 2008 году со 150 сотрудниками. В 2019 году количество сотрудников выросло до 4 405 человек. Сегодня Spotify обслуживает около 300 миллионов пользователей по всему миру, что делает его самым популярным стриминговым сервисом в мире.

Мы можем извлечь уроки о том, как Spotify масштабирует свои процессы тестирования и разработки.

  • Поставьте цели продукта для QA-команды. В Spotify есть кросс-функциональные команды. У каждой команды есть цели и набор определенных навыков для достижения этих целей. Структура команды зависит от целей. Следовательно, некоторые команды состоят только из разработчиков, а некоторые имеют разработчиков и тестировщиков. Таким образом, тестировщики тесно сотрудничают с командой разработчиков и сосредотачиваются на основных целях продукта. Такой подход позволяет Spotify эффективно масштабировать процесс разработки.
  • Автоматизированное тестирование — это инструмент, но не панацея. Менеджер по тестированию и развитию в Spotify Кристиан Карл утверждает что тестировщики программного обеспечения не могут быть заменены автоматизацией. Тестирование требует человеческого опыта и знаний. Тестирование автоматизации — надежный инструмент для ускорения процесса, но люди принимают решения и анализируют автоматические отчеты. Spotify использует автоматизацию как один из инструментов масштабирования. Это позволяет тестировщикам оставить рутину для алгоритмов и сосредоточиться на целях продукта.

SpaceX: непрерывное тестирование обязательно

СпейсИксSpaceX — инновационная компания, известная коммерческими космическими перевозками, многоразовой системой запуска и высокой эффективностью.

Николас Шайлан, директор по программному обеспечению ВВС, заявил, что система отдела разработки SpaceX в пять раз эффективнее, чем в компаниях с классическим рабочим процессом. Как SpaceX справляется с процессом тестирования при такой производительности?

DevOps и Agile-подходы позволяют QA-инженерам SpaceX проводить массовое автоматизированное тестирование. На протяжении всего цикла разработки тестировщики обеспечивают непрерывное тестирование, чтобы получить мгновенную обратную связь и устранить существующие риски. Таким образом, они работают проактивно, тестируя часто и рано.

компания разработала стратегию о том, как реализовать непрерывное тестирование в процессе разработки.

  1. Приоритет ценности. Как и Google, SpaceX рекомендует использовать показатели покрытия кода, чтобы понять, что следует автоматизировать, а что нет. Это помогает оптимизировать непрерывное тестирование и улучшать уже выполненные действия.
  2. Ключевым моментом является автоматизированное сквозное тестирование. Сделайте анализ воздействия частью непрерывной интеграции. Это позволяет компаниям анализировать, как добавление новых функций или изменение кода может повлиять на систему в целом или на некоторые ее части.
  3. Команда должна иметь стабильную и легко воспроизводимую тестовую среду. Такой инструмент, как моментальный снимок виртуальной машины, может помочь сохранить состояние данных, вернуться к тестированию или возобновить работу.
  4. Используйте искусственный интеллект и машинное обучение для анализа отчетов о тестировании. Инструменты на основе ИИ ускоряют развертывание и оптимизируют процесс тестирования.
  5. Создайте надежную архитектуру непрерывной интеграции. Основное преимущество системы CI — короткие периоды между сборкой и тестированием кода. Непрерывное тестирование должно быть задействовано в процессе разработки и включать в себя необходимые виды тестирования.

Подвести итог

У каждой компании есть своя стратегия тестирования, процесс и подходы. Каждая команда выбирает и корректирует процесс тестирования, исходя из конечных целей и возможностей продукта. Главная задача любого специалиста – думать о клиенте и конечном пользователе, адаптироваться к новым требованиям, перенимать опыт лучших в отрасли.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *