Qual è la differenza tra l'analisi del codice statico e la qualità del codice?

2

Ho bisogno di sapere se l'analisi del codice statico e la qualità del codice sono uguali o no perché, ho bisogno di trovare gli strumenti per la qualità del codice e ogni volta che cerco di farlo, ricevo risposta per gli strumenti relativi al codice statico analisi.

    
posta Alla Sasikanth 15.03.2016 - 08:07
fonte

3 risposte

4

"Qualità del codice" è una metrica che ti dice "quanto è buono il codice", ad es. quanto è comprensibile e mantenibile. Il problema è che è un termine così nebuloso che nessuno è d'accordo su ciò che questa metrica dovrebbe realmente significare e su come dovrebbe essere misurata. Vedi qui .

Per molti programmatori, la qualità del codice è un termine molto soggettivo e ciò che può essere un buon codice per uno può essere un codice terribile per altri.

Ora, gli strumenti di analisi del codice statico possono misurare la qualità del codice se si definisce "qualità del codice" come "numero di problemi non risolti nel codice". Che è praticamente solo la metrica che gli strumenti di analisi del codice statico ti danno. Molti (e anche io) sostengono che non è tutto ciò che dovrebbe essere la "qualità del codice". Ma ha due importanti vantaggi: può essere quantizzato (e confrontato nel tempo) e può essere fatto automaticamente senza molto sforzo (oltre a configurarlo e prendere i cicli della CPU durante la compilazione).

Quindi, mentre l'analisi del codice statico non è tutto ciò che c'è per la qualità del codice, è un buon inizio.

    
risposta data 15.03.2016 - 09:28
fonte
3

L'analisi del codice statico è una tecnica che consente di identificare aree in cui la qualità del codice in analisi può essere compromessa. Notate il "potere", perché mentre in molti casi i punti che gli strumenti di analisi del codice statico fanno sono buoni, i falsi positivi (cose che vanno bene, ma sembrano abbastanza sospette allo strumento che vi dirà di loro) sono abbastanza comuni. Non è l'unica tecnica del genere, e non è necessariamente anche la migliore.

La qualità del codice, tuttavia, non è una tecnica, né uno strumento, è una caratteristica del codice e non è necessariamente un obiettivo. Tuttavia, ci sono alcuni punti che appaiono molto spesso quando si parla di qualità del codice (disclaimer: elenco non esaustivo, e potrebbero esserci sovrapposizioni tra diversi punti):

  • Completezza: il codice fa tutto ciò che deve fare? Soddisfa tutti i requisiti?
  • Correttezza: il codice fa ciò che fa correttamente? Ha effetti collaterali inaspettati?
  • Manutenibilità: quanto è facile modificare il codice? Se devi aggiungere una nuova funzione o correggere un bug, è difficile trovare dove devi fare le modifiche? Devi apportare modifiche in molti posti anche per correzioni banali?
  • Affidabilità: quanto è probabile che il codice non funzioni, per qualsiasi motivo?
  • Sicurezza: le persone non autorizzate possono utilizzare il tuo codice per scopi diversi da quello a cui è destinato il codice? Presenta una vulnerabilità nel sistema?

Gli strumenti di analisi del codice statico di solito aiutano con correttezza (identificando le aree del codice in cui potresti aver commesso errori che non sono prontamente evidenti), sicurezza e manutenibilità, ma non saranno in grado di dirti molto sulla completezza, ad esempio. E anche allora, non sono perfetti e non ti diranno tutto quello che devi fare per quelle zone. Ci sono molte altre tecniche e strumenti che possono aiutare con tutte quelle e anche altre aree di qualità del codice che non ho menzionato (test automatici e recensioni di codice sono due esempi popolari, ma ce ne sono molti altri).

    
risposta data 15.03.2016 - 09:28
fonte
0

L'analisi del codice statico viene eseguita al meglio da un software (un compilatore, un linter o cosa no), mentre la qualità del codice è assicurata al meglio dalle revisioni tra pari. Le qualità che l'analisi statica può garantire sono solo una minima parte delle qualità che vorrete che il vostro codice abbia.

TDD e BDD possono anche portare ad un aumento dell'automazione nel tuo QA, ma non possono ancora sostituire un secondo paio di occhi.

    
risposta data 15.03.2016 - 08:42
fonte

Leggi altre domande sui tag