Тествайте като Google: Най-добри практики от индустриалните гиганти (04.23.24)

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

Как успяват да поддържат процеса на тестване на софтуера в рамките на милиони кодови редове?

Как организират работния процес с хиляди QA инженери?

Как се справят с разширяването на проекта?

Опитът на компании като Google или Spotify може да помогне за подобряване на процесите на тестване в малки компании и екипи.

Нека разгледаме по-отблизо как тестват гигантите.

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 се справя с процеса на тестване с такава производителност?

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

Компанията разработи стратегия за това как да приложи непрекъснато тестване в процеса на разработка.

  • Приоритизиране на стойността. Подобно на Google, SpaceX препоръчва да използвате показатели за покритие на кода, за да разберете какво трябва да автоматизирате и какво не. Той помага да се оптимизират непрекъснатите тестове и да се подобрят вече предприетите дейности.
  • Ключът е автоматизираното тестване от край до край. Направете анализ на въздействието част от непрекъснатата интеграция. Той позволява на компаниите да анализират как добавянето на нови функции или промяната на кода може да повлияе на цялостната система или някои части от нейната система.
  • Екипът трябва да има стабилна и лесно реплицирана тестова среда. Инструмент като Виртуална машина Snapshot може да помогне за запазване на състоянието на данните, връщане към тестване или възобновяване на работата.
  • Използвайте изкуствен интелект и машинно обучение за анализ на отчетите за тестване. AI базирани инструменти ускоряват внедряването и оптимизират процеса на тестване.
  • Изграждане на стабилна архитектура за непрекъсната интеграция. Основното предимство на CI системата е кратките периоди между изграждането и тестовете на кода . Непрекъснатото тестване трябва да бъде включено в процеса на разработване и да включва необходимите видове тестове.
  • Обобщение

    Всяка компания има своя стратегия, процес и подходи за тестване. Всеки екип избира и настройва процеса на тестване въз основа на крайните цели и възможностите на продукта. Основната задача на всеки специалист е да мисли за клиента и крайния потребител, да се адаптира към новите изисквания и да възприеме опита на най-добрите в бранша.


    YouTube Video.: Тествайте като Google: Най-добри практики от индустриалните гиганти

    04, 2024