Test come Google: best practice dai giganti del settore (04.25.24)

Possiamo imparare molto dai giganti del settore osservando i loro metodi e approcci nei flussi di lavoro.

Come riescono a mantenere il processo di test del software all'interno di milioni di righe di codice?

Come organizzano il flusso di lavoro con migliaia di tecnici del controllo qualità?

Come gestiscono l'espansione del progetto?

L'esperienza di aziende come Google o Spotify può aiutare a migliorare i processi di test nelle piccole aziende e team.

Diamo un'occhiata più da vicino a come testano i giganti.

Google: l'importanza della copertura del codice

Tuttavia, molti ingegneri discutono sull'importanza di una tale misura dell'efficienza dei test del software come copertura del codice. Gli specialisti di Google insistono sul fatto che i dati sulla copertura del codice possono essere informazioni preziose per valutare rischi e colli di bottiglia in un'attività di test. Carlos Arguelles, Marko Ivanković‎ e Adam Bender condividono le migliori pratiche per la copertura del codice:

  • La copertura del codice può aiutare a ridurre bug e guasti. L'esperienza dei tecnici del controllo qualità di Google ha dimostrato che l'aumento della copertura del codice porta a cambiamenti negli approcci e negli atteggiamenti nei confronti dei test. I team con la copertura del codice come obiettivi primari tendono a migliorare la testabilità dei loro prodotti. Scrivono codice più efficiente per i test per raggiungere gli obiettivi di test in modo più semplice e richiede meno tempo.
  • Utilizzare i test di mutazione per garantire un'elevata copertura del test. La copertura completa del codice può essere uno spreco e non garantisce una copertura dei test di alta qualità. Un'alta percentuale di copertura del codice non significa che tutte le funzioni siano state testate correttamente. Significa che il codice è stato complessivamente testato. Per garantire un'elevata qualità della copertura del test, gli esperti di Google consigliano di utilizzare il test di mutazione. Questo metodo include l'implementazione di piccole modifiche al codice e il controllo di come i set di test le identificano.
  • La percentuale di copertura del codice dipende da molti fattori. Non dovremmo puntare a un'elevata copertura del codice, ma una copertura bassa porta anche a un gran numero di errori. E la domanda è: qual è la copertura del codice specifica per un particolare sistema? Per rispondere a questa domanda, dovremmo considerare aspetti come criticità, complessità e frequenza di modifica del codice. La copertura del codice è una decisione aziendale e i proprietari dei prodotti dovrebbero definirla.
  • Analizzare cosa coprire. Non possiamo ottenere una copertura del codice al 100%, quindi i tecnici del controllo qualità dovrebbero osservarlo le parti più preziose del codice sono coperte. Un team di sviluppatori dovrebbe discutere e pensare non a quante righe di codice sono coperte, ma a cosa è esattamente coperto.
Spotify: strategia affidabile

Spotify è un'azienda in rapida crescita. È stata fondata nel 2008 con 150 dipendenti. Nel 2019 il numero di dipendenti è cresciuto fino a 4405. Oggi Spotify serve circa 300 milioni di utenti in tutto il mondo, diventando così il servizio di streaming più popolare al mondo.

Possiamo imparare lezioni su come Spotify scala i suoi test processi di sviluppo.

  • Imposta obiettivi di prodotto per il team di controllo qualità. Spotify ha team interfunzionali. Ogni squadra ha obiettivi e una serie di abilità particolari per avvicinarsi a questi obiettivi. La struttura della squadra dipende dagli obiettivi. Quindi, alcuni team sono composti solo da sviluppatori e alcuni hanno sviluppatori e tester. Pertanto, i tester collaborano strettamente con il team di sviluppo e si concentrano sugli obiettivi primari del prodotto. Un tale approccio consente a Spotify di scalare il processo di sviluppo in modo efficiente.
  • I test di automazione sono uno strumento, ma non una panacea. Il responsabile di test e sviluppo di Spotify Kristian Karl afferma che i tester del software non possono essere sostituiti dall'automazione. Il test richiede esperienza e conoscenza umana. I test di automazione sono uno strumento affidabile per accelerare il processo, ma gli esseri umani prendono decisioni e analizzano i report automatizzati. Spotify utilizza l'automazione come uno degli strumenti di scala. Consente ai tester di abbandonare la routine per gli algoritmi e concentrarsi sugli obiettivi del prodotto.
SpaceX: il test continuo è un must

SpaceX è un'azienda innovativa nota per il trasporto spaziale commerciale, un sistema di lancio riutilizzabile e alta efficienza.

Nicholas Chaillan, chief software officer dell'Air Force, ha affermato che il sistema del dipartimento di sviluppo di SpaceX è cinque volte più efficiente delle aziende con un flusso di lavoro classico. In che modo SpaceX affronta il processo di test con tali prestazioni?

DevOps e gli approcci Agile consentono agli ingegneri QA di SpaceX di fornire test di automazione di massa. Durante il ciclo di sviluppo, i tester forniscono test continui per ottenere un feedback istantaneo ed eliminare i rischi esistenti. In questo modo lavorano in modo proattivo, testando spesso e presto.

L'azienda ha sviluppato una strategia su come implementare test continui nel processo di sviluppo.

  • Dai priorità al valore. Come Google, SpaceX consiglia di utilizzare le metriche di copertura del codice per capire cosa dovresti automatizzare e cosa no. Aiuta a ottimizzare i test continui e a migliorare le attività già eseguite.
  • La chiave è il test end-to-end automatizzato. Rendi l'analisi dell'impatto parte dell'integrazione continua. Consente alle aziende di analizzare come l'aggiunta di nuove funzioni o la modifica del codice può influire su un sistema complessivo o su alcune parti del suo sistema.
  • Il team dovrebbe disporre di un ambiente di test stabile e facilmente replicabile. Uno strumento come Virtual Machine Snapshot può aiutare a salvare lo stato dei dati, tornare ai test o riprendere il lavoro.
  • Utilizza l'intelligenza artificiale e l'apprendimento automatico per analizzare i report dei test. AI Gli strumenti basati su tecnologia accelerano la distribuzione e ottimizzano il processo di test.
  • Crea una solida architettura di integrazione continua. Il vantaggio principale del sistema CI sono i brevi periodi tra la compilazione e i test del codice . I test continui devono essere coinvolti nel processo di sviluppo e implicare i tipi di test necessari.
  • Riassumendo

    Ogni azienda ha la sua strategia, processo e approccio di test. Ogni team seleziona e adatta il processo di test in base agli obiettivi finali e alle capacità del prodotto. Il compito principale di qualsiasi specialista è pensare al cliente e all'utente finale, adattarsi alle nuove esigenze e adottare l'esperienza dei migliori del settore.


    Video Youtube: Test come Google: best practice dai giganti del settore

    04, 2024