Cause principali dei bug del software: riscontrate nella produzione

Da dove hanno origine i difetti del software?

I difetti nel software sono inevitabili. Una percezione errata comune è che i difetti siano causati solo da codice difettoso, NON è così. In effetti, più difetti sono causati da requisiti scadenti, architettura scadente o progettazione scadente (collettivamente) che codice scadente.

Di solito il concetto di difetto o bug è pensato come “non conformità ai requisiti” e tuttavia, se i requisiti sono sbagliati, potremmo comunque avere un bug? SÌ! Un bug o un difetto è il mancato raggiungimento del risultato desiderato. Se il risultato desiderato è descritto in modo inadeguato (cioè requisiti scadenti), allora abbiamo ancora un bug, anche se il codice fa esattamente ciò che descrive il requisito specifico.

Dobbiamo pensare in modo più olistico alla qualità e a come soddisfare gli obiettivi o i risultati.

Quindi, quali sono le cause principali dei bug del software e perché dovremmo preoccuparcene?

Esaminando le cause profonde dei bug del software, dove e quando compaiono per primi, possiamo stabilire modi migliori per evitarli in futuro. Il nostro obiettivo è individuare e risolvere i problemi il prima possibile, in modo che non vengano vissuti dagli utenti.

È interessante notare dal grafico qui sopra che più difetti derivano dal lavoro di precodifica che dalla codifica stessa. Cioè, la somma dei difetti derivanti da requisiti, architettura e design è maggiore dei difetti di codifica. Dato che il codice è costruito sulle fondamenta dei tre precedenti, finiremo per codificare la cosa sbagliata o nel modo sbagliato a meno che non risolviamo prima questi difetti di precodificazione.

Potenziale difetto

Il potenziale difetto è il numero probabile di difetti generati e latenti all'interno di ciascun artefatto. Ad esempio, se passiamo una giornata a scrivere requisiti, è inevitabile che commettiamo qualche errore. Possiamo quindi dire che esiste un potenziale difetto in base alla dimensione dei requisiti. L'utilizzo di una metrica universale per le dimensioni (il punto funzione) ci consente di confrontare i potenziali difetti tra diversi artefatti.

Se si comprende il potenziale del difetto, è possibile procedere al passaggio successivo e considerare i passaggi necessari per rilevare tali difetti, rimuoverli e quindi verificare che siano stati rimossi.

Origini dei difetti

Origine del difetto (difetti per punto funzione) Migliore Media Peggio
Requisiti 0.34 0.70 (16.5%) 1.35
Architettura e Design 0.67 1.05 (25%) 1.78
Codice 0.44 1.15 (27%) 2.63
Difetti di sicurezza 0.18 0.25 (6%) 0.4
Documenti 0.20 0.45  (10.5%) 0.54
Correzioni sbagliate 0.39 0.65 (15%) 1.26
Totale 2.22 4.25 7.96

Misurato in difetti per punto funzione per un sistema da 1000 FP. Fonte: pag. 256. Capers Jones, Quantifying Software, 2018 CRC Press.

Dovremmo iniziare con la premessa che un team che sviluppa software non farà un lavoro perfetto, ma può fare un lavoro eccellente. In media, tuttavia, svolgeranno un lavoro medio. E in qualsiasi lavoro di conoscenza si insinuano degli errori. È molto utile considerare l'idea del potenziale difetto. Il potenziale di difetto è l'idea che un dato pezzo di software avrà probabilmente un numero probabile di difetti a meno che e finché tali difetti non verranno rimossi. I potenziali difetti variano in base alle dimensioni. Ciò significa che un'applicazione di grandi dimensioni ha una maggiore tendenza ad essere difettosa rispetto a una piccola.

Ottieni una qualità migliore

L'aspetto più dispendioso in termini di tempo dello sviluppo del software è l'individuazione e la correzione dei bug.

Sui progetti agili possiamo vedere che quasi 40% dello sforzo complessivo è una rilavorazione causata principalmente dalla scarsa qualità del lavoro di precodifica. La maggior parte di questo sforzo sprecato è evitabile prestando maggiore attenzione alla qualità fin dall’inizio, prima che inizi la codifica. Tutto ciò che può essere fatto per evitare bug dovrebbe essere preso sul serio. Per evitare e prevenire i difetti è necessario essere proattivi.

Per comprendere appieno come possiamo accelerare il percorso verso la massima qualità, dobbiamo considerare tutti i seguenti aspetti:

  • Potenziali difetti
  • Scoperta dei difetti
  • Evitamento dei difetti
  • Rimozione dei difetti

Questi devono essere considerati almeno nel contesto dei requisiti, della progettazione, del codice e dei test. In altre parole, partendo dai requisiti:

  • qual è il difetto dei requisiti? potenziale?
  • come faremo scoprire i requisiti difetti?
  • come possiamo Evitare i requisiti difetti?
  • e come possiamo rimuovere i requisiti difetti?

Ripeti le stesse domande per progettazione, codice e test.  Scopri come ScopeMaster può individuare i potenziali difetti dei requisiti in modo da poterli risolvere facilmente.

ScopeMaster ti aiuterà prevenire i bug, assicurandoti che le tue esigenze siano di alta qualità.

Fino a 35% I bug di produzione derivano da requisiti scadenti

Nel gennaio 2021 Accenture ha riconosciuto al Forum sull'intelligenza del software che altrettanti 35% dei difetti di produzione sono causati da problemi relativi ai requisiti, secondo i loro dati basati su 1000 progetti. Ciò significa che, nella maggior parte dei progetti, il lavoro di garanzia della qualità dei requisiti fallisce. Ulteriori problemi relativi ai requisiti sono tra i più costosi da risolvere una volta iniziata la codifica. Trovare modi per risolvere i problemi legati ai requisiti è possibile attraverso una combinazione di istruzione, tempo, attenzione alla qualità e automazione. È qui che ScopeMaster può aiutare, ScopeMaster può trovarlo in modo affidabile 50% di problemi relativi ai requisitie aiutarti a risolverli rapidamente. Nel complesso, l'utilizzo di ScopeMaster ti aiuta a trovare e risolvere i problemi dieci volte più veloce piuttosto che tentare di fare lo stesso manualmente.

Per individuare potenziali difetti nei requisiti, dobbiamo esaminarli in grande dettaglio. Fortunatamente il lavoro pesante viene ora svolto per noi da ScopeMaster, il primo e più avanzato strumento di analisi dei requisiti software al mondo.

Rapporto sulla qualità dei requisiti di ScopeMaster

Requisiti elevati La qualità è fondamentale per ridurre al minimo i difetti del software

ScopeMaster valuta la qualità dei vostri requisiti.