Utente:Qwerty2499/Sandbox

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Statement Coverage[modifica | modifica wikitesto]

Statement Coverage è una tecnica di test white box in cui tutte le istruzioni eseguibili nel codice sorgente vengono eseguite almeno una volta. Viene utilizzato per calcolare il numero di istruzioni nel codice sorgente che sono state eseguite correttamente .

Desrizione generale[modifica | modifica wikitesto]

Generalmente, nel codice sorgente interno di un qualsiasi sw, c'è un'ampia varietà di elementi come operatori, metodi, array, loop, istruzioni di controllo, gestori di eccezioni, ecc.

In base all'input fornito al programma, alcune istruzioni di codice vengono eseguite e alcune potrebbero non esserlo. L'obiettivo dello statement coverage è quello di coprire tutte le possibili istruzioni di esecuzione e le linee di percorso nel codice. Questa metrica è sempre presentata come percentuale. Quando la copertura è del 100%, significa che ogni istruzione è stata eseguita una volta.

La copertura del rendiconto può essere calcolata come mostrato di seguito:

Esecuzione del test[modifica | modifica wikitesto]

Lo Statement Coverage Testing viene messo in pratica nel ciclo di vita dello sviluppo del software come parte della convalida del codice, durante le fasi di costruzione e sviluppo. Tutte le discrepanze e i codici non necessari trovati nel codice sorgente vengono affrontati dai programmatori e dagli sviluppatori di applicazioni in questo momento.

In caso contrario, potrebbero verificarsi ridondanza nel codice sorgente, occupazione di spazio non necessari, frammenti di codice obsoleti, minuti/secondi aggiuntivi nel tempo di esecuzione dell'applicazione, ecc.

Se eseguito correttamente, questo processo svolge un ruolo importante nell'aumentare il funzionamento e le prestazioni complessivi del prodotto software. Questa forma di test del codice è un passaggio ben noto nel processo di sviluppo dell'applicazione software in termini di ottimizzazione del flusso funzionale. La mancata esecuzione di questa procedura sul codice sorgente può comportare la mancanza di efficienza e un aumento dei tempi di esecuzione dell'applicazione.

Il primo passo nel processo di verifica della copertura delle dichiarazioni viene eseguito esaminando il funzionamento completo del programma e tracciando gli statement nei programmi di ciascun modulo nel software. Le parti funzionali degli statement possono essere caratterizzate dalla corrispondenza delle stesse con i requisiti forniti dai clienti sotto forma di documentazione delle specifiche dei requisiti.

Il passo successivo prevede la raccolta degli statement attraverso il codice sorgente e i documenti stessi,  in modo che questo possa essere eseguito dallo sviluppatore o dai professionisti del test, a seconda del punto funzionale coinvolto nelle istruzioni del codice.

Il passaggio finale del test consiste nel verificare tutte le affermazioni elencate nel passaggio precedente. Questa valutazione dovrebbe includere verifiche dei fatti come il confronto delle caratteristiche funzionali delle affermazioni con il requisito fornito, la verifica della modularità dell'applicazione, il codice dovrebbe avere solo contenuti pertinenti, l'accuratezza della convalida della copertura del codice, la convalida sulla percentuale di ottimizzazione, ecc.

Questa procedura di test è completa e superata se i risultati di questa esecuzione del test sono equivalenti al risultato atteso definito in fase di documentazione e questo set di risultati dovrebbe essere relativo alle informazioni fornite dal cliente durante la fase di raccolta dei requisiti.

Esempio

int select (int A[],int N,int X){
int i=0;
while(i<N and A[i]<X){
  if(A[i]=-A[i];i++;
  }
 return(1);
 }

Un solo caso di test (N=1, A[0]=-7A[1]=-7, X=9) è sufficiente a garantire lo statement coverage della funzione selec .

Vantaggi[modifica | modifica wikitesto]

I principali vantaggi di Statement Coverage sono i seguenti :

  1. Conferma la qualità del codice: la copertura delle dichiarazioni conferma la qualità del codice assicurando che ogni dichiarazione venga eseguita almeno una volta. Controlla inoltre ogni riga del codice per garantire che ogni istruzione svolga effettivamente l'attività che dovrebbe idealmente eseguire. Se l'istruzione non viene eseguita secondo i requisiti, è possibile risolverla per evitare problemi futuri.
  2. Verifica il flusso delle dichiarazioni - La copertura delle dichiarazioni verifica il flusso delle dichiarazioni. Ciò garantisce che ogni percorso sia testato. È anche utile per identificare quelle aree che impediscono l'esecuzione del codice. Tali blocchi nel flusso possono così essere identificati e possono essere presi provvedimenti tempestivi per correggerli.

Svantaggi[modifica | modifica wikitesto]

I principali svantaggi di Statement Coverage sono:

  1. Copre solo condizioni vere: la copertura delle dichiarazioni è di natura restrittiva in quanto non può testare quelle condizioni che sono false. In altre parole, solo le vere condizioni possono essere verificate. Ciò accade perché non riesce a comprendere gli operatori logici. Quando entra in gioco il ruolo degli operatori logici, questa metrica non è completamente affidabile da sola.
  2. Impossibile verificare se il loop raggiunge la terminazione: i codici tendono a essere costituiti da loop, ma la copertura delle istruzioni non viene convalidata se il loop raggiunge il punto finale o il punto di terminazione. Ciò accade perché Statement Coverage è una metrica molto semplice che non riesce ad entrare in percorsi approfonditi del codice. Legge semplicemente se l'istruzione è stata eseguita o meno, ma non fa alcuno sforzo per vedere se la fine del ciclo logico è stata raggiunta o meno.
  3. Non comprende gli operatori logici