Strumenti di misurazione e metrica del codice? [duplicare]

3

Sono in fase di configurazione di un server di build per progetti personali. Questo server gestirà tutte le normali attività di CI, inclusa l'esecuzione di suite di test di grandi dimensioni (unità, integrazione, UI automatizzata). Mentre sto elaborando i nodi per includere l'output di copertura del codice con MSTest, mi viene in mente che potrebbero esserci molti strumenti là fuori che mi forniscono metriche aggiuntive oltre alla semplice copertura del codice.

FxCop mi viene in mente come esempio. Anche se sono sicuro che ce ne sono altri. Tutto ciò che può generare dati e metriche utili da segnalare sarebbe buono. Sia che si tratti di grafici di dipendenza di classe (cercando per esempio le violazioni di Law of Demeter), analisi degli usi di classi / funzioni (cercando una funzione che non è utilizzata nel sistema tranne i test, ad esempio), e così via on.

Non sono sicuro del modo giusto per formulare la domanda, dal momento che le domande di sondaggio o "Qual è il tuo strumento di analisi del codice preferito" non sono molto buone. Ma essenzialmente sto cercando consigli su quali metriche raccogliere e quali strumenti possono raccoglierli.

L'eventuale visione di qualcosa del genere è che il server CI esegua una serie di test automatici e strumenti di analisi e traccia le metriche delle prestazioni nel tempo. Immagina un cruscotto pieno di grafici che tracciano queste metriche nel tempo. Le linee dovrebbero essere tutte relativamente all'equilibrio, e se si inizia a deviare verso il negativo, si tratta di una prima indicazione di problemi con il codice. Nella vecchia lotta per quantificare la qualità del codice con la gestione, questo sembra un mezzo potenzialmente utile per farlo.

    
posta David 05.09.2012 - 19:36
fonte

1 risposta

4

I miei suggerimenti rapidi per gli strumenti basati su ciò che abbiamo in esecuzione sul nostro server CI che crea i nostri progetti .NET.

  • NCover - copertura del codice dei tuoi test unitari
  • Microsoft Power Studio Code Metrics PowerTool
    • Indice di manutenibilità
    • Complessità ciclomatica
    • Profondità dell'eredità
    • Accoppiamento di classe
    • Linee di codice (LOC)
  • Plug-in Jenkins Task Scanner - conteggi di attività alta / media / bassa
  • StatSVN (o simile per il tuo SCM particolare)
    • crescita del codice e abbandono
    • chi si sta impegnando dove
  • Uno strumento di analisi statica (Klocwork, Coverity) - cerca SPM (Silly Programmer Mistakes)

Queste sono le metriche a cui prestiamo attenzione ogni giorno

  • Risultati test unità
  • Copertura del codice: vogliamo che il nostro test unitario copra il 100% del codice
  • Apri attività: questo ci aiuta a tenere traccia del lavoro ancora da fare
  • Code Churn: un sacco di churn significa che non è ancora stabile e aiuta a prevedere le date di fine
  • Dimensioni del codice: se viene aggiunto molto codice, non è ancora stato fatto.
  • Risultati dell'analisi statica

Le altre metriche sono utilizzate più come indicatori di "opportunità di miglioramento" nel codice.

Per completezza, ecco alcuni altri strumenti che sono stati menzionati. (Al momento non li usiamo, ma vale la pena menzionarli.)

risposta data 05.09.2012 - 20:08
fonte

Leggi altre domande sui tag