Una tecnica universale per migliorare la qualità del software

Tutti vogliono migliorare il più possibile la qualità del software, a condizione che non rallenti la fornitura di nuove funzionalità.

Si dà il caso che esista un'unica tecnica in grado di migliorare notevolmente la qualità dello sviluppo del software. In questo articolo imparerai due nozioni fondamentali:

  1. La conoscenza delle dimensioni del software aiuta a migliorare la qualità del software
  2. Il processo di dimensionamento del software aiuta a migliorare la qualità del software
  3. Questa tecnica può trovare e aiutarti a eliminare 7-10% di tutti i difetti prima della codifica.

Cominciamo con alcuni concetti fondamentali sullo sviluppo del software. Tutto il software presenta difetti (bug). I bug potrebbero essere causati da una codifica inadeguata o potrebbero essere causati da qualcos'altro. Forse abbiamo sbagliato i requisiti, forse li abbiamo fraintesi, forse abbiamo tralasciato alcuni requisiti importanti.

Molto spesso i requisiti sono la causa principale dei bug del software. Ma raramente passiamo il tempo a guardare la qualità dei requisiti. Perché? È importante ma raramente urgente. La revisione e il perfezionamento dei requisiti non sono quasi mai considerati un'attività critica in un piano di progetto. Ho visto alcuni requisiti molto scadenti utilizzati "solo per consentire agli sviluppatori di iniziare". Ma questo è un processo inefficiente e porterà a notevoli rielaborazioni e ritardi inutili.

Migliora la qualità del software conoscendo le dimensioni

Se hai già lavorato con il dimensionamento del software, saprai anche che il potenziale di difetto (il probabile numero di difetti/errori) nei requisiti è prevedibile. Questo singolo elemento di conoscenza può guidarti a essere più efficiente. Può informarti di introdurre solo la quantità ottimale di sforzo nella qualità dei requisiti prima della codifica, rimuovendo i bug dei requisiti, prima che inizi la codifica.

Esempio

Al giorno d'oggi un'auto tipica ha circa 5 milioni di righe di codice. Dai dati storici, sappiamo che è probabile che equivalga a circa 100.000 punti funzione (misura ISO della dimensione del software). Inoltre dai dati storici sappiamo che esiste (in media) un potenziale di difetto di 0,7 – 1,0 difetti richiesti per punto funzione. Quindi ci saranno (saranno) stati 100.000 difetti nei requisiti. Se tieni traccia del numero di difetti rilevati e rimossi, puoi determinare approssimativamente quanti ne rimangono. Inoltre, se si eseguono revisioni ed esami dei requisiti per individuare e correggere tempestivamente i difetti dei requisiti, si ridurranno i difetti dei requisiti che verranno riportati all'avvio della codifica.

Sapere quanti difetti sono potenzialmente presenti ti informa su quanto lavoro devi fare per rimuoverli. Se ottimizzi il tuo lavoro di QA (requisiti) mirando alla rimozione dei difetti (non 100% ma) 95%, sarai sulla buona strada per una consegna snella ed efficiente.

Ad esempio, se utilizzi ScopeMaster per esaminare e testare i tuoi requisiti prima della codifica, potresti probabilmente trovare circa 50.000 di questi difetti (50%) ed evitare che raggiungano gli sviluppatori.  Immagina solo quanto sarebbero più efficienti i tuoi sviluppatori se iniziassero con requisiti che presentassero meno difetti 50%?

Metriche di qualità valide derivanti dalla conoscenza delle dimensioni del software

Nota CFP = Punti Funzione COSMIC

Migliora la qualità del software con il dimensionamento funzionale

Migliorare la qualità con il processo di dimensionamento

Il processo di dimensionamento funzionale formale è ideale per chiarire l'intento funzionale, ad es ambiguità. Occasionalmente vengono utilizzati termini diversi ma in realtà significano la stessa cosa. Esaminando gli utenti funzionali e i tipi di oggetto gestiti dagli utenti in una serie di requisiti, è possibile individuarli facilmente incoerenze. Se due funzioni eseguono la stessa azione su un oggetto potresti avere a duplicare Requisiti. Se hai un oggetto che dovrebbe essere completamente gestito dal tuo software, ma ai tuoi requisiti manca una funzione critica di manutenzione dei dati, potresti avere un requisito mancante.  Se un requisito prevede molti passaggi funzionali, potrebbe essere troppo complicato da codificare, potrebbe essere necessario semplificarlo, potremmo considerarlo a difetto di complessità.  Collettivamente queste cinque categorie di difetti dei requisiti rappresentano circa 40% di tutti i potenziali difettiÈ probabile che questi difetti vengano esposti da processo di dimensionamento funzionale. Il dimensionamento manuale dei requisiti è quindi un'attività di QA efficiente e utile. Il dimensionamento automatizzato in base ai requisiti con ScopeMaster è ancora più efficace e completo. Rileverà e segnalerà questi difetti più velocemente e in modo più approfondito di quanto gli esseri umani potrebbero ottenere manualmente.

Conclusione

In questo articolo abbiamo dimostrato che sia la conoscenza della dimensione funzionale che il processo di dimensionamento miglioreranno notevolmente la qualità del software. Nello specifico, 7-10% di tutti i bug del software possono essere rimossi attraverso il processo (automatizzato) di dimensionamento del software. Quindi, la conoscenza del dimensionamento può aiutare a ottimizzare le attività di QA per aiutare a rimuovere i bug rimanenti.