Processing math: 100%

Criterio di n-copertura dei cicli

Un test  T soddisfa il criterio di n-copertura se e solo se ogni cammino del grafo contenente al massimo un numero d’iterazioni di ogni ciclo non superiore a n viene percorso per almeno un caso di test  tT.

La definizione sopra non significa che il test deve eseguire n volte un ciclo, ma che per ogni numero k compreso tra 0 e n deve esistere un caso di test che esegue tale ciclo k volte. Si sta quindi limitando il numero massimo di percorrenze dei cicli.
Di conseguenza, al crescere di n il numero di test aumenta molto rapidamente. Inoltre, fissare n a livello di programma può non essere un’azione così semplice: il numero d’iterazioni che necessita un ciclo per essere testato a fondo può essere molto differente a seconda del caso.

Per cercare di minimizzare il numero di test spesso il criterio applicato è quello di 2-copertura dei cicli. Si tratta infatti del numero minimo che permette comunque di testare tutte le casistiche principali:

  • zero iterazioni;
  • una iterazione;
  • più di una iterazione.

Il caso n=2 è cioè il minimo per considerare casistiche non banali: dando uno sguardo all’esempio sopra, infatti, con n=1 il ciclo (while) sarebbe stato indistinguibile da una semplice selezione (if); testando due iterazioni si incominciano a testare le vere caratteristiche del ciclo. Esso permette cioè di testare non solo i comandi che compongono il ciclo, ma anche sue le pre/post-condizioni ed eventuali invarianti.

A differenza del criterio di copertura dei cammini, il criterio di n-copertura è considerato applicabile a programmi reali.