Quali sono le aree chiave per valutare il software (codebase)? [chiuso]

0

Mi è stato chiesto di eseguire una revisione del codice di circa 50 applicazioni per un periodo di 6 settimane. (La gestione è cambiata e il nuovo CTO ha richiesto un audit completo del software interno)

Mi chiedo, quali sono le aree chiave per la valutazione del software? (L'attenzione dovrebbe essere puramente sulla qualità della base di codice e non ad esempio come è stata implementata)

Nota: questa è non la stessa domanda di "Quali sono le 9 o 10 qualità del software?".

Le prime cose che mi sono venute in mente sono:

  1. Leggibilità del codice (variabile descrittiva / metodo / nomi di classi, commenti, ecc.)
  2. Layering (dati / business / interfaccia utente)
  3. Configurazione (senza hardcoding)
  4. Livello sufficiente di astrazione (per rimanere flessibile)
  5. Organizzazione del codice
  6. Uso di librerie di terze parti (approvate o meno, ecc.)
  7. Separazione delle preoccupazioni
  8. Copertura del test (se applicabile)
  9. Modularità del codice
  10. Penalità per violazione di principi come "ASCIUTTA"
  11. ...

Apprezzerò le tue risposte per aiutarmi a identificare un ampio elenco di quelle che pensi siano le aree chiave per la valutazione del software.

    
posta z0mbi3 27.11.2014 - 22:47
fonte

1 risposta

3

50 applicazioni in 6 settimane sembrano enormemente ambiziose. Devi dire al tuo nuovo CTO che questa è solo una recensione leggera; in questo momento non avrai modo di rilevare bug o difetti di sicurezza.

Per lo più ho familiarità con la revisione del codice per la sicurezza, e la regola generale che uso è di 10 KLOC al giorno - e anche quella è ambiziosa, e può essere raggiunta concentrandosi solo sulle parti del codice che sono davvero importanti per la sicurezza .

Alcuni suggerimenti:

  • Progettare un modello di rapporto all'inizio e chiedere al CTO di approvarlo. Dovrebbe essere conciso: alcuni stati rossi / ambra / verdi per aree diverse, forse un elenco di persone chiave, problemi, ecc.
  • Include la documentazione nella tua recensione. Questo potrebbe includere i ticket sul tracker dei problemi.
  • Parla con persone chiave relative a ciascuna applicazione. Ciò ti consente di arrivare più rapidamente ai problemi importanti.
  • Stabilisci quali standard di codifica hai e se sono obbligatori o di consulenza.
  • Adotta un approccio basato sul rischio, in cui passi più tempo sulle applicazioni che contano di più.
  • Cerca di stabilire se è possibile apportare ragionevolmente modifiche all'applicazione. Sembra che tu abbia delle capacità di codifica decenti: se pensi di avere difficoltà, questa è chiaramente una preoccupazione per la manutenzione futura dell'app.

A parte questo, buona fortuna! Questa è un'opportunità per brillare, quindi sfruttala al massimo.

    
risposta data 28.11.2014 - 09:25
fonte