2016-01-27 10 views

risposta

1

Da qualche parte dove il codice può richiedere più di un percorso, ovvero rami. Un paio di esempi di dichiarazioni di diramazione sono dichiarazioni if/else e switch.

Tracce di copertura della diramazione quali di questi rami sono stati eseguiti in modo da poter garantire che tutti i percorsi siano stati testati correttamente.

0

Da Wikipedia:

Has ogni ramo (chiamato anche DD-percorso) per ogni struttura di controllo (ad esempio se e istruzioni case) state eseguite? Ad esempio, data un'istruzione if, sono stati eseguiti entrambi i rami true e false? Un altro modo per dirlo è che sono stati eseguiti tutti gli aspetti del programma?

È necessario testare per ogni struttura di controllo tutti i possibili casi (immettere/non immettere se dichiarazioni, ad esempio, e tutti i casi di un interruttore). La copertura della filiale è una metrica che misura (di solito in percentuale) il numero totale di rami coperti dai test.

8

Un ramo è dove il runtime può scegliere se può prendere un percorso o l'altro. Consente di prendere il seguente esempio:

if(a) { 
    Foo(); 
} 

if(b) { 
    Bar(); 
} 

Yay(); 

Quando si raggiunge la prima linea, si può decidere se si vuole andare all'interno del corpo del if(a) -affermazione. Inoltre, può decidere di non farlo. In questa fase, abbiamo già visto due percorsi (un ramo).

La prossima affermazione dopo diventa più interessante. Può andare all'interno del corpo if ed eseguire Bar. Può anche non farlo. Ma ricorda che abbiamo già avuto una filiale prima. Il risultato può variare se è stato chiamato o meno Foo.

Così finiamo con quattro possibili percorsi:

  • Non chiamare Foo, non chiamare Bar
  • Calling Foo, non chiamare Bar
  • Non chiamare Foo, chiamando Bar
  • Calling sia Foo e Bar

L'ultimo Yay viene sempre eseguito, non importa se Foo o Bar è stato chiamato, in modo che non contenga come un ramo. Quindi il frammento di codice sopra contiene quattro percorsi/due rami.

Come già indicato in altre risposte, esistono numerose dichiarazioni che possono causare una diramazione (if/switch). Non dimenticare cicli condizionali, come ad esempio while/for/do-while.

Lo strumento di copertura del codice desidera assicurarsi di aver verificato tutti i rami. La cosa migliore sarebbe se tutti i percorsi fossero stati testati, non solo i rami. Questo, per assicurarsi che non venga eseguito alcun comportamento indesiderato.

+0

Grazie per la risposta dettagliata. –

Problemi correlati