Che cos'รจ il test di benchmark?

โšก Riepilogo intelligente

Il benchmarking stabilisce uno standard ripetibile e misurabile per le prestazioni di un'applicazione, in modo che ogni versione futura possa essere confrontata con esso. Senza un punto di riferimento, un risultato prestazionale รจ solo un numero senza alcun parametro di valutazione.

  • ๐Ÿ“ Scopo principale: Creare una misurazione di riferimento con cui confrontare le versioni successive.
  • ๐Ÿ” Regola di ripetibilitร : Lo stesso hardware, gli stessi dati e la stessa configurazione devono essere sempre utilizzati, altrimenti il โ€‹โ€‹confronto non ha senso.
  • ๐Ÿ“ Quattro fasi: Pianificazione, analisi, integrazione e azione, ciascuna con risultati definiti.
  • ๐Ÿงช Isolamento: Modifica una sola variabile per ogni esecuzione, altrimenti non sarร  possibile attribuire la differenza.
  • ๐Ÿ“Š Base di confronto: I benchmark vengono confrontati con una versione precedente, con un concorrente o con uno standard di settore.
  • โš ๏ธ Errore comune: Il benchmarking su un ambiente condiviso o virtualizzato produce un rumore maggiore rispetto all'effetto misurato.

Che cos'รจ il benchmark testing?

Prima di imparare il test di benchmark, capiamo:

Benchmark nei test delle prestazioni

A Benchmark nei test delle prestazioni รจ una metrica o un punto di riferimento rispetto al quale prodotti o servizi software possono essere confrontati per valutare le misure di qualitร . In altre parole, Benchmark indica uno standard stabilito che aiuta a determinare la qualitร  di un prodotto o servizio software. Possiamo confrontare un prodotto o un servizio software per valutarne la qualitร .

Ad esempio, una squadra di calcio ha un punto di riferimento affinchรฉ un giocatore possa qualificarsi come a giocatore della massima serie. L'abilitร  impostata per il benchmark potrebbe essere il numero di goal segnati nelle ultime cinque stagioni, o il possesso palla durante il primo tempo, o un numero minimo di partite giocate nel torneo locale, ecc.

Che cos'รจ il test di benchmark?

Test di riferimento misura un insieme ripetibile di risultati quantificabili che funge da punto di riferimento rispetto al quale รจ possibile confrontare prodotti/servizi. Lo scopo dei risultati dei test benchmark รจ confrontare le versioni software presenti e future con i rispettivi benchmark.

Un punto di riferimento deve essere ripetibile. Ad esempio, ad ogni iterazione del test di carico, se i tempi di risposta variano troppo, รจ necessario valutare le prestazioni del sistema. Il tempo di risposta deve essere stabile tra le diverse condizioni di carico.

Un punto di riferimento deve essere quantificabile. Ad esempio, l'esperienza dell'utente non puรฒ essere quantificata in numeri, ma รจ possibile quantificare il tempo che un utente trascorre su una pagina Web grazie a una buona interfaccia utente.

Benchmark Testing non รจ un termine correlato solo al test del software, ma si occupa anche del test dell'hardware ed รจ considerato uno dei compiti piรน importanti nel mondo degli affari.

In questo tutorial, discuteremo i benchmark per un'applicazione client-server o, in altre parole, un'applicazione web. Il test di benchmark puรฒ essere eseguito per i seguenti servizi,

  • Compatibilitร  con il browser
  • Collegamenti interrotti
  • Conformitร  HTML
  • Tempo di caricamento
  • Accessibilitร 
  • Link popolaritร 

Perchรฉ i test di benchmark sono importanti

A livello aziendale, i test di benchmark possono essere utili per determinare

  • Quanto bene si sta comportando un'applicazione basata sul web rispetto alla concorrenza
  • Come diversi tipi di clienti sperimentano il tempo di risposta e la disponibilitร  di un sito
  • Garantisce che i siti Web siano conformi agli standard e alle migliori pratiche
  • Consente di valutare i fornitori di servizi di terze parti prima di effettuare un contrattotracdecisione di ting
  • Permette di capire gli errori da evitare

Creazione di un piano di test di benchmark

Un piano di test รจ l'elemento piรน cruciale del processo di test benchmark. Il piano del test di benchmark segue i passaggi indicati di seguito:

  1. Ridimensionamento e richiamo del carico di lavoro
  2. Raccogliere e archiviare misure per i test di benchmark
  3. Definire l'intervallo di tempo richiesto e il punto terminale di un processo di test
  4. Preparare un piano di backup per superare qualsiasi nuovo fallimento del test case
  5. Decidere l'autoritร  di chiamare la terminazione del processo finale

Come eseguire test di benchmark

Ci sono 4 fasi coinvolte nel Benchmark Testing:

Test di riferimento

Passaggio 1) Fase di pianificazione

  • Individuare e dare prioritร  a standard e requisiti
  • Decidere i criteri di riferimento
  • Definire il processo di test benchmark

Passaggio 2) Fase di analisi

  • Identificare la causa principale dell'errore per migliorare la qualitร 
  • Definizione degli obiettivi per il processo di test

Passaggio 3) Fase di integrazione

  • Condividi i risultati con la persona interessata e ottieni l'approvazione
  • Stabilire obiettivi funzionali

Passaggio 4) Fase di azione

  • Sviluppare il piano di test e la documentazione
  • Implementare le azioni specificate nelle fasi precedenti e monitorare i progressi
  • Esegui il processo in modo continuo

Componenti del test di benchmark

Sistemi diversi presentano gradi di complessitร  diversi e richiedono tecniche diverse per testare le applicazioni.

Ci sono 3 componenti principali del Benchmark Testing. Sono

  1. Specifiche del carico di lavoro: Determinare il tipo e la frequenza delle richieste da inviare al sistema sotto test.
  2. Specifiche delle metriche: Determinare quale elemento misurare, ad es.; Velocitร  di download
  3. Specifica della misurazione: Determinare come misurare gli elementi specificati per trovare valori appropriati

Aspetti da considerare durante i test di benchmark

Per eseguire test di benchmark di successo รจ necessario considerare i seguenti fatti.

  • Coerenza e controllo sono misure importanti per eseguire test di benchmark.
  • Comprendere l'architettura del sistema per progettare criteri di test e dati di test
  • Esaminare i dati statici iniziali e aggiornarli in base al numero di utenti
  • Verifica la funzionalitร  "Reimposta" ove richiesto e definisci la velocitร  di transazione al secondo (si occupa specificamente delle transazioni degli utenti rispetto a un database)
  • Suddividere gli elementi del sistema in base alle sue funzionalitร 
  • Ogni sistema ha un'architettura e un design diversi, che devono essere presi in considerazione durante l'esecuzione del test di benchmark
  • Assicurarsi che tutti i componenti software siano funzionanti
  • Il sistema operativo e i driver di supporto dovrebbero funzionare in modo accurato
  • Rimuovere i file temporanei e di precaricamento dal sistema prima di eseguire un benchmark
  • Chiudi tutti i processi e le applicazioni in esecuzione in background
  • Controlla gli aggiornamenti dei sistemi operativi e le configurazioni del mondo reale

Strutture di test di benchmark

I Benchmark Testing Framework aiutano a svolgere alcuni compiti fondamentali per i controlli delle prestazioni. Questi compiti fondamentali includono-

  1. Accesso al database
  2. Composizione lato server
  3. Serializzazione JSON
  4. Configurazione

Quadro di riferimento 2.0 & TechEmpower sono per lo piรน utilizzati framework di Benchmark Testing.

Diamo un'occhiata a TechEmpower. Diamo una rapida occhiata alle sue caratteristiche salienti.

  • รˆ un framework open source per l'esecuzione di attivitร  di benchmark
  • Richiede la corretta configurazione dell'ambiente di benchmarking
  • Esistono principalmente due modalitร  come Modalitร  di riferimento per confrontare i risultati e Modalitร  di verifica per chi non รจ esperto
  • Sono necessari diversi file che sono univoci e possono variare di conseguenza da sistema a sistema
  • Include un "file di configurazione di benchmark" che definisce una serie di istruzioni di test e metadati per un programma di benchmark
  • Si basa su diverse lingue come Java, Python, Rubino, PHP, JavaScrittura, Perl, C, Groovy, Haskell, Scala, ecc.
  • Object โ€“ Relational Mapper (ORM) viene utilizzato per eseguire test su database, serializzazione JSON, ecc.

Strumenti di test di benchmark

Gli strumenti di test dei benchmark vengono classificati di conseguenza. Ci arruoleremo uno per uno.

Strumenti per i test Windows PC:

  1. Prime95
  2. Novabench
  3. 3DMark
  4. SiSoftware Sandra

Strumenti per testare le prestazioni della CPU:

  1. Cinebench
  2. Geekbench

Strumenti per testare la velocitร  del sistema e le batterie dei dispositivi mobili:

  1. Foronix (Linux)
  2. CPU UserBenchmark (Test benchmark CPU)
  3. Vellamo (Prestazioni navigazione web)

รˆ anche possibile eseguire test di benchmark con Android telefoni e tablet. Tra tutti, Punteggio minimo รจ uno strumento di test di benchmark ben noto e ampiamente utilizzato.

Come questo test si inserisce nella famiglia dei test di prestazione

Il termine "test di prestazione" รจ un termine generico. Le varianti descritte di seguito differiscono solo per la forma del carico applicato e per la durata del suo mantenimento, motivo per cui vengono spesso confuse tra loro.

Tipo di test Modello di carico Domanda a cui risponde
Test di carico Carico di picco previsto, di breve durata Il sistema raggiunge i suoi obiettivi in โ€‹โ€‹condizioni di traffico di punta normali?
Test da sforzo Aumentato oltre la capacitร  fino al cedimento Dove si rompe e il fallimento viene gestito in modo elegante?
Test delle punte Impennata estrema improvvisa, seguita da una fase di regressione. Riuscirร  a sopravvivere e a riprendersi da uno shock di traffico?
Test di resistenza Carico normale mantenuto per molte ore Le prestazioni si degradano nel tempo?
Test di immersione Carico sostenuto per un periodo prolungato Si sono verificate perdite di memoria o esaurimento delle risorse?
Test di stabilitร  Carico variabile in base alle condizioni Il sistema rimane affidabile al variare delle condizioni?
Test volumetrico Utenti normali, volume di dati molto elevato Riesce a gestire la crescita del database?

I test di resistenza e i test di immersione sono spesso considerati sinonimi. Nell'uso comune, entrambi i tipi di test prevedono il mantenimento di un carico prolungato. Laddove i team li distinguono, i test di resistenza si concentrano sul verificare se i tempi di risposta aumentano nel tempo, mentre i test di stress si concentrano sul consumo di risorse come memoria, handle di file e pool di connessioni. L'esecuzione di uno dei due test fornisce solitamente i risultati di entrambi.

Test di benchmarking: punti chiave

  • Nell'ingegneria del software, il benchmarking fornisce un insieme ripetibile di risultati quantificabili sulle prestazioni di un sistema.
  • Utile per testare le condizioni di carico e determinare il comportamento del sistema contro gli attacchi DDoS.
  • Le specifiche del carico di lavoro, le metriche e le specifiche di misurazione sono i componenti principali dei test benchmark.
  • Vengono utilizzati diversi strumenti e framework per eseguire test di benchmark in modo rapido ed efficiente.
  • Il test di benchmark รจ utile anche per i dispositivi mobili.

DOMANDE FREQUENTI

I test di performance misurano il comportamento di un sistema sotto carico. I test di benchmark registrano tale misurazione come standard di riferimento fisso, in modo che le versioni successive possano essere confrontate con esso in condizioni identiche.

Perchรฉ qualsiasi modifica all'hardware, al volume dei dati o alla configurazione altera il risultato. Un benchmark confrontato con un ambiente diverso misura l'ambiente, non il software.

Ogni qualvolta l'ambiente, il volume dei dati o l'architettura subiscano modifiche sostanziali. Altrimenti, mantieni la stessa base di partenza, poichรฉ il suo valore risiede nella stabilitร  che offre tra le diverse versioni.

Gli strumenti di intelligenza artificiale rilevano regressioni statisticamente significative tra le esecuzioni e le separano dalla normale varianza, eliminando cosรฌ le congetture nel decidere se un piccolo rallentamento sia rilevante.

Sรฌ. I modelli derivano le soglie dalle distribuzioni storiche delle esecuzioni anzichรฉ da percentuali fisse, adattandosi alla crescita dell'applicazione. RevEsamina i limiti derivati โ€‹โ€‹prima di applicarli in una condotta.

Riassumi questo post con: