Come integrare gli strumenti di analisi statica in un progetto in esecuzione

3

Ho iniziato in un'azienda che ha sviluppato un'app per 4 anni. Non hanno mai utilizzato nessuno strumento di analisi statica, quindi se li includiamo avremo tonnellate di avvertimenti.

Sai come possiamo integrare questi strumenti in modo che riceviamo avvertimenti in qualche modo solo nel nuovo codice e estendiamo il loro utilizzo al resto del codice bit per bit?

Modifica: gli strumenti da utilizzare sono FxCop e StyleCop, sia per C # nel caso in cui sia importante, ma comunque penso che le soluzioni proposte possano essere adottate anche.

    
posta Ignacio Soler Garcia 05.10.2015 - 10:06
fonte

2 risposte

2

Quello che ho fatto con Cppcheck era di formattare l'output con lo stesso formato utilizzato in un file di soppressione, quindi ho appena copiato le righe. Con questo strumento, è anche possibile utilizzare i pattern (controlli singoli, interi file) per le soppressioni. (Il mio consiglio personale: non sopprimere il controllo del "vecchio codice" se non si è in grado di garantire che mai venga toccato.)

Cppcheck fornisce anche parametri che consentono di concentrarsi prima sugli errori e sugli avvertimenti. In tutti i progetti della nostra azienda, su cui Cppcheck è stato utilizzato per la prima volta, ha riscontrato errori. Quindi non saltare la fase di comprendere i risultati del controllo per il vecchio codice.

Se sei interessato ai dettagli, l' aiuto da riga di comando è più semplice del manuale online .

    
risposta data 05.10.2015 - 13:01
fonte
1

Sebbene tu non dica quali strumenti usi (per esempio Fortify è diverso da cppcheck) la maggior parte degli strumenti ti permette di specificare su quali file di codice operare. Specificare solo i nuovi file ti permetterà di controllare il nuovo codice senza guardare al vecchio, ma ovviamente solo se metti tutto il nuovo codice in nuovi file. Questo non aiuterà la correzione dei bug, ma è possibile migrare qualsiasi codice modificato in uno dei nuovi file man mano che vengono apportate modifiche. Ciò introdurrà le vecchie funzioni nell'analisi, ma potrebbe non essere una cosa così negativa: se risolvi una funzione, devi anche correggere tutti gli altri avvisi.

Ma penso che sia un grande sforzo che appartiene a un articolo DailyWTF. Analizza l'intera base di codice, prenditi un giorno per aggiustare il frutto a bassa quota degli avvertimenti che ricevi e poi assegna le correzioni più difficili come errori da correggere quando puoi.

Ricorda quegli avvertimenti che gli strumenti di analisi segnalano ancora potenziali errori di codice, è meglio correggerli a prescindere.

    
risposta data 05.10.2015 - 10:20
fonte

Leggi altre domande sui tag