Тестуйте як Google: найкращі практики від галузевих гігантів (05.01.24)

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

Як їм вдається підтримувати процес тестування програмного забезпечення в межах мільйонів рядків коду?

Як вони організовують робочий процес з тисячами інженерів з контролю якості?

Як вони справляються з розширенням проекту?

Досвід таких компаній, як Google або Spotify, може допомогти вдосконалити процеси тестування в малих компаніях та команд.

Давайте детальніше розглянемо тестування гігантів.

Google: важливість охоплення коду

Тим не менше, багато інженерів сперечаються про важливість такого показника ефективності тестування програмного забезпечення. як охоплення коду. Фахівці з Google наполягають на тому, що дані про покриття коду можуть бути цінною інформацією для оцінки ризиків та вузьких місць у процесі тестування. Карлос Аргуеллес, Марко Іванкович та Адам Бендер діляться найкращими практиками щодо висвітлення коду:

  • Покриття коду може допомогти зменшити помилки та помилки. Досвід QA-інженерів від Google показав, що збільшення охоплення коду призводить до змін у підходах та ставленні до тестування. Команди, котрі охоплюють код як основні цілі, прагнуть покращити перевірку своїх продуктів. Вони пишуть більш ефективний код для тестування, щоб досягти цілей тестування простіше і менш трудомістко.
  • Використовуйте тестування мутацій, щоб забезпечити високий рівень охоплення тестом. Повне покриття коду може бути марним і не гарантує якісне покриття тестів. Високий відсоток охоплення коду не означає, що всі функції були перевірені правильно. Це означає, що код був протестований в цілому. Щоб забезпечити високу якість висвітлення тестів, експерти Google рекомендують використовувати тестування мутацій. Цей метод включає впровадження невеликих змін коду та перевірку того, як тестові набори їх ідентифікують.
  • Відсоток охоплення коду залежить від багатьох факторів. Ми не повинні прагнути до високого охоплення коду, але низьке охоплення також призводить до великої кількості збоїв. І питання полягає в тому, що таке конкретний код охоплення для конкретної системи? Щоб відповісти на це запитання, слід розглянути такі речі, як критичність, складність та частота зміни коду. Покриття коду - це ділове рішення, і власники продуктів повинні це визначити.
  • Проаналізуйте, що охоплювати. Ми не можемо отримати 100% охоплення коду, тому інженери з контролю якості повинні зауважити, що висвітлено найцінніші частини коду. Команда розробників повинна обговорювати і думати не про те, скільки кодових рядків охоплено, а про те, що саме покрито.
Spotify: надійна стратегія

Spotify - це швидкозростаюча компанія. Він був заснований у 2008 році із 150 працівниками. У 2019 році кількість працівників зросла до 4 405. Сьогодні Spotify обслуговує близько 300 мільйонів користувачів у всьому світі, що робить його найпопулярнішим потоковим сервісом у світі.

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

  • Встановіть цілі продукту для QA-команди. Spotify має міжфункціональні команди. Кожна команда має цілі та набір певних навичок для досягнення цих цілей. Структура команди залежить від цілей. Отже, деякі команди складаються лише з розробників, а в деяких є розробники та тестувальники. Таким чином, тестери тісно співпрацюють з командою розробників та зосереджуються на головних цілях продукту. Такий підхід дозволяє Spotify ефективно масштабувати процес розробки.
  • Тестування автоматизації - це інструмент, але не панацея. Менеджер тестування та розробки в Spotify Крістіан Карл стверджує, що тестери програмного забезпечення не можуть бути замінені автоматизацією. Тестування вимагає людського досвіду та знань. Тестування автоматизації - це надійний інструмент для прискорення процесу, але люди приймають рішення та аналізують автоматизовані звіти. Spotify використовує автоматизацію як один із інструментів масштабування. Це дозволяє тестувальникам залишити рутину для алгоритмів і зосередитись на цілях продукту.
SpaceX: постійне тестування є обов’язковим

SpaceX - це інноваційна компанія, відома комерційним космічним транспортуванням, системою багаторазового запуску та висока ефективність.

Ніколас Шайян, керівник програмного забезпечення ВВС, заявив, що система відділу розробки SpaceX в п'ять разів ефективніша, ніж компанії з класичним робочим процесом. Як SpaceX справляється з процесом тестування з такою продуктивністю?

DevOps та підходи Agile дозволяють QA-інженерам SpaceX забезпечити масове тестування автоматизації. Протягом циклу розробки тестери забезпечують постійне тестування для отримання миттєвого зворотного зв’язку та усунення існуючих ризиків. Тим самим вони працюють ініціативно, часто і рано тестуючи.

Компанія розробила стратегію, як впровадити постійне тестування в процесі розробки.

  • Розмістіть пріоритети на цінності. Як і Google, SpaceX рекомендує використовувати показники охоплення коду, щоб зрозуміти, що вам слід автоматизувати, а що ні. Це допомагає оптимізувати безперервне тестування та покращити вже здійснені заходи.
  • Ключ - це автоматизоване наскрізне тестування. Зробіть аналіз впливу частиною постійної інтеграції. Це дозволяє компаніям проаналізувати, як додавання нових функцій або зміна коду може вплинути на загальну систему або деякі частини її системи.
  • Команда повинна мати стабільне та легко відтворюване тестове середовище. Такий інструмент, як Знімок віртуальної машини, може допомогти зберегти стан даних, повернутися до тестування або відновити роботу.
  • Використовуйте штучний інтелект та машинне навчання для аналізу звітів про тестування. AI інструменти на базі прискореного розгортання та оптимізації процесу тестування.
  • Створення надійної архітектури безперервної інтеграції. Головною перевагою системи CI є короткі періоди між збіркою та тестуванням коду . Постійне тестування повинно брати участь у процесі розробки та передбачати необхідні типи тестування.
  • Підбиття підсумків

    Кожна компанія має свою стратегію тестування, процес та підходи. Кожна команда обирає та коригує процес тестування, виходячи з кінцевих цілей та можливостей продукту. Головне завдання будь-якого спеціаліста - думати про клієнта та кінцевого споживача, адаптуватися до нових вимог та переймати досвід кращих у галузі.


    Відео YouTube: Тестуйте як Google: найкращі практики від галузевих гігантів

    05, 2024