2009-07-21 8 views

risposta

13

È possibile ottenere ottime informazioni da SO SITO WEB

Free code coverage tools

What is Code Coverage and how do YOU measure it?

Code Coverage è una misura di quanto molte linee/blocchi/archi del codice vengono eseguiti mentre l'automatismo d test sono in esecuzione.CC viene raccolto utilizzando uno strumento specializzato per strumentare i binari per aggiungere chiamate di traccia ed eseguire una serie completa di test automatici contro il prodotto strumentato. Un buon strumento CC ti darà non solo la percentuale del codice che viene eseguita, ma ti permetterà anche di visualizzare i dati e vedere esattamente quali linee di codice sono state eseguite durante un particolare test.

Gli algoritmi di copertura del codice sono stati creati per risolvere il problema della valutazione di un codice sorgente guardando direttamente il codice sorgente. La copertura del codice appartiene alla categoria dei test strutturali a causa delle affermazioni fatte sulle parti interne del programma e non sugli output di sistema. Pertanto la copertura del codice mira a trovare parti del codice che non vale la pena di testare.

http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=ART&ObjectId=7580 alt text http://www.codecoveragetools.com/images/stories/software_lifecycle.jpg

il suo bene per

  1. copertura funzionale che mira a trovare il modo sono state eseguite molte funzioni o procedure.

  2. L'istruzione o la copertura della linea che identifica il numero di righe nel codice sorgente è stata eseguita.

  3. La copertura delle condizioni o la copertura delle decisioni risponde alla domanda sul numero di condizioni del ciclo eseguite nel programma.

  4. La copertura del percorso che si concentra sulla ricerca di tutti i possibili percorsi da un determinato punto di partenza nel codice è stata eseguita.

  5. Copertura di entrata e di uscita che rileva il numero di funzioni (C/C++, Java) o procedure (Pascal) eseguite dall'inizio alla fine.

UTENSILI

http://www.codecoveragetools.com/

http://java-source.net/open-source/code-coverage

http://www.codecoveragetools.com/index.php/coverage-process/code-coverage-tools-java.html

http://open-tube.com/10-code-coverage-tools-c-c/

http://csharp-source.net/open-source/code-coverage

http://www.kdedevelopers.org/node/3190

+1

Woooww. Ottima descrizione. Capito . GRAZIE ! – n00ki3

4

Da wikipedia article

la copertura di codice è una misura utilizzata in test del software. Descrive il livello a cui è stato testato il codice sorgente di un programma . Si tratta di un modulo di test che ispeziona direttamente il codice ed è quindi un modulo di prova della scatola bianca 1. Attualmente, l'uso della copertura del codice viene esteso a nel campo dell'hardware digitale, la metodologia di progettazione contemporanea di lingue (HDL).

Advocating the use of code coverage

Uno strumento di copertura di codice registra semplicemente traccia di quali parti del codice ottengono eseguito e quali parti non lo fanno.

In genere, i risultati sono granulari verso il basso al livello di ogni riga di codice. Quindi, in una situazione tipica, si avvia l'applicazione con uno strumento di copertura del codice configurato per monitorarlo. Quando si esce dall'applicazione , lo strumento produrrà un rapporto di copertura del codice che mostra quali righe di codice sono state eseguite e quali no. Se contate il numero totale di linee che sono state eseguite e dividere per il numero totale di linee che potrebbe essere stato eseguito , si ottiene una percentuale. Se credi nella copertura del codice, il maggiore è la percentuale, meglio è. Nella pratica , raggiungere il 100% è estremamente raro .

L'utilizzo di uno strumento di copertura del codice è in genere combinato con l'uso di alcuni tipi di suite di test automatizzati . Senza il test automatizzato , uno strumento di copertura del codice indica semplicemente le funzioni che un utente umano si è ricordato di utilizzare. Tale strumento è molto più utile quando è misurando la completezza della suite di test rispetto al codice che è stato scritto .

articoli relativi

The Future of Code-Coverage Tools

The effectiveness of code coverage tools in software testing

Strumenti

Open Source Code Coverage Tools in Java

2

La copertura del codice è una misura utilizzata nei test del software. Descrive il grado in cui è stato testato il codice sorgente di un programma.

http://en.wikipedia.org/wiki/Code_coverage

La definizione di wikipedia è abbastanza buono, ma con parole mie copertura del codice ti dice quanta test automatizzati che hai rappresentato. 100% significherebbe che una singola riga di codice nella tua applicazione viene coperta da un test unitario.

NCover è un'applicazione per .NET

3

la copertura di codice è una metrica, che mostra come "bene" il codice sorgente viene testato. Esistono diversi tipi di copertura del codice: copertura delle linee, copertura delle funzioni, copertura delle filiali.

Per misurare la copertura, è necessario eseguire l'applicazione manualmente o tramite test automatico.

Gli strumenti possono essere suddivisi in due categorie: - quelli che eseguono il codice compilato in un ambiente modificato (come il debugger), contando i punti richiesti (funzioni, linee, ecc.); - quelli che richiedono una compilazione speciale - in questo caso il binario risultante contiene già il codice che effettivamente esegue il conteggio.

Esistono diversi strumenti per misurare e visualizzare il risultato, che dipendono dalla piattaforma, dalla lingua del codice sorgente.

Si prega di leggere l'articolo sul Wikipedia

Per fornirgli strumenti, si prega di definire per quale sistema operativo e la lingua si usa.

+0

La copertura del codice non significa che il codice sia stato testato correttamente. Se si eseguono test ottimali e si ottengono valori di test elevati, si avrà una buona copertura del codice – AutomatedTester

+0

Accetto, tuttavia per ottenere un valore di copertura elevato, è necessario creare test per i numerosi casi di errore solitamente contenuti nel codice. Questo implicherà test "buoni" – CsTamas

0

Le altre risposte coprono già la copertura del codice. Il pensiero che vorrei sottolineare è che devi stare attento a non trattare l'alta copertura in quanto implicitamente significa che hai testato tutti gli scenari. Non dice necessariamente come bene hai testato il codice o la qualità dei tuoi test, solo che hai raggiunto una certa percentuale di codice come parte dei test in esecuzione.

alta Code Coverage non significa necessariamente di alta qualità di prova, ma di alta qualità di test significa alta Code Coverage

In pratica, di solito miro per la copertura di codice 90-95% che è spesso realizzabile. Gli ultimi% sono spesso troppo costosi per valere la pena provare a colpire.

0

Ci sono molti modi per sviluppare applicazioni. Uno di questi è "Extreme Programming" o "Test Driven Design (TDD)". Dichiara che tutto il codice dovrebbe essere testato. La copertura del codice è un mezzo per misurare quanto viene testato.

Vorrei fare una piccola osservazione al riguardo: non penso che tutto il codice debba essere testato, né che si debba impostare una percentuale specifica di copertura del codice. Nemmeno penso che il codice non debba essere testato con Test unitari (codice di test del codice). Penso che si dovrebbe decidere cosa abbia senso testare. Per questo motivo generalmente non utilizzo la copertura del codice.

Una cosa che forniscono alcuni strumenti, è evidenziare le parti che vengono testate. In questo modo potresti incappare in un codice che non è stato testato, ma in realtà dovrebbe essere, che è l'unica cosa per cui lo uso.

0

Buone risposte.

I miei due centesimi sono che non esiste un metodo di test che raccolga tutti gli errori, ma meno test non avranno mai più errori, quindi qualsiasi test è buono. A mio avviso, il test di copertura non è quello di mostrare quale codice è stato stato esercitato, ma per mostrare quale codice è stato non stato esercitato, perché questo è dove gli insetti amano in agguato.

Se lo si combina con single-stepping, è un ottimo modo per rivedere il codice e catturare i bug. Here's an example.

0

Un altro strumento utile per garantire la qualità del codice (che comprende la copertura del codice) che ho recentemente utilizzato è Sonar. Ecco il link http://www.sonarqube.org/