Che cos’è e a cosa serve SonarQube nel testing software

Che cos’è e a cosa serve SonarQube nel testing software

Testing statico

Nel testing software, l’analisi statica consiste nel valutare un intero sistema, o un suo modulo, in base al suo contenuto, alla sua documentazione e alla sua struttura, quindi senza la necessità che esso sia in esecuzione.

Solitamente questo tipo di testing è il primo ad essere effettuato, in quanto rappresenta un controllo preliminare, sia dei requisiti applicativi che del codice stesso. Ha come scopo, infatti, quello di portare subito alla luce le anomalie del prodotto, in modo tale da risolvere i bug minori il prima possibile, risparmiando cosi tempo, denaro e risorse.

Un esempio immediato di testing statico è la rilettura del codice da parte del programmatore stesso o, preferibilmente, di qualcun altro. Tramite questa operazione ci si può facilmente accorgere di loop infiniti, cicli inutili, blocchi di codice duplicati, codice mal strutturato e così via.

Questo tipo di analisi può essere anche effettuata in modo automatizzato, tramite alcune piattaforme disponibili sul mercato, come SonarQube.

Che cos'è e a cosa serve SonarQube nel testing software

SonarQube

E’ una piattaforma open-source, utilizzata per il controllo continuo della qualità del codice. Tramite l’analisi statica, è in grado di rilevare velocemente, bug, “code smells” e vulnerabilità su oltre 20 linguaggi di programmazione.

Una volta installato, è possibile lanciare il server locale tramite il file StartSonar.bat, ed in seguito accedere alla pagina principale, che mostra tutti i progetti analizzati. Per implementarlo all’interno del nostro progetto in Angular è sufficiente installare il package SonarScanner e, tramite il file sonar-project.properties impostare una serie di proprietà di configurazione. A questo punto è possibile lanciare l’esecuzione dell’analisi statica di tutto il codice tramite la CLI. I risultati saranno accessibili direttamente sul server Sonar, nella sezione dedicata ai progetti, come mostrato in figura seguente.

Schermata di SonarQube dopo l'analisi statica
Schermata di SonarQube dopo l’analisi statica

I problemi rilevati possono essere di diverso tipo: bug, vulnerability, smell code, coverage o duplication. Ogni categoria ha un corrispondente numero di problemi o un valore percentuale.

Inoltre, i problemi possono avere uno dei cinque diversi livelli di gravità: blocker, critical, major, minor e info. Proprio davanti al nome del progetto c’è un’icona che mostra lo stato del Quality Gate: superato (verde) o non riuscito (rosso).

Il Quality Gate è un insieme di condizioni che il progetto deve soddisfare prima di poter essere considerato idoneo per il rilascio.

Garantire la qualità del “nuovo” codice mentre si risolvono i problemi già esistenti nella versione precedente è un buon modo per mantenere una buona base di codice nel tempo. Il

Quality Gate facilita l’impostazione di regole per la convalida di ogni modifica durante l’analisi successiva ed influenza anche i segmenti di codice rimasti uguali, in modo tale da favorire la risoluzione della maggior parte dei problemi nel corso del tempo.

E’ per questo che SonarQube riporta sempre il confronto con l’analisi effettuata in precedenza, identificando il cosiddetto Leakage Period, ovvero il lasso di tempo che intercorre tra due analisi o versioni del progetto.

La configurazione predefinita per SonarQube contrassegna il codice come “fallito” se:

  • la coverage del codice aggiunto è inferiore all’80%;
  • la percentuale di righe duplicate nel codice aggiunto è maggiore di 3;
  • la manutenibilità, l’affidabilità o la valutazione della sicurezza è peggiore del grado A.

E’ anche possibile inserire l’analisi all’interno della pipeline, in modo tale da condizionare il suo completamento al soddisfacimento del Quality Gate, e per fare questo si utilizza SonarCloud, ovvero la versione cloud-hosted di SonarQube.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *