IDS - Interaction Design Solutions

L'affidabilità dei test automatizzati: una questione di contesto e strategia

Giorgio Brajnik Giorgio Brajnik
· 5 August 2024

La domanda “Mi devo fidare dei test automatizzati?” è complessa e la risposta dipende da numerosi fattori. Contrariamente a quanto si potrebbe pensare, la scelta tra esecuzione manuale o automatica non è l’elemento più critico. 

L’idea fondamentale è che le esecuzioni dei test forniscono informazioni sullo stato dell’applicazione testata, e che quindi la fiducia nei test si riflette nell’affidabilità che associamo a queste informazioni, e quindi alle decisioni che prendiamo (ad es. di rilasciare o meno).

Il cuore della questione risiede in due tipi di errori che un test può generare: i falsi allarmi e i mancati allarmi. In scenari reali, è praticamente impossibile eliminare completamente entrambi questi errori.

Nel caso di CrowdStrike ci si potrebbe chiedere se e in che modo di diversi attori abbiamo valutato questi aspetti.


Per valutare l’affidabilità di questi test, dobbiamo considerare diversi aspetti:

Tipologia del sistema e profilo di rischio

La natura del sistema da testare e il suo profilo di rischio sono cruciali. Dobbiamo chiederci:

  • Si tratta di un prototipo a breve termine o di un sistema a lungo termine?
  • Ci sono rischi per la vita umana o possibili danni fisici?
  • Quali sono i potenziali danni finanziari o legali?

La risposta a queste domande influenza direttamente l’approccio al testing e il livello di affidabilità richiesto.

Strategia di testing

Una strategia di testing ben strutturata è fondamentale. Consideriamo:

  • Sono stati implementati vari livelli di testing (di unità? di componente? di integrazione? di sistema? di accettazione?)
  • Esistono meccanismi di monitoraggio?
  • Quanti mock non validati sono stati utilizzati?

Una strategia completa riduce il rischio di mancati allarmi e aumenta l’affidabilità complessiva del processo di testing.

Frequenza e analisi

La frequenza con cui vengono eseguiti i test è un altro fattore chiave:

  • Con che frequenza vengono eseguiti i test?
  • Viene effettuata regolarmente un’analisi dei rischi?
  • I risultati delle esecuzioni dei test vengono esaminati attentamente?

Un’esecuzione frequente e un’analisi costante dei risultati permettono di identificare tempestivamente eventuali problemi e di adattare la strategia di testing.

Qualità dei test

La qualità intrinseca dei test è cruciale:

  • Quale livello di copertura producono i test?
  • Vengono sviluppati nuovi test in base alle esigenze emergenti?
  • Chi sono le persone che li scrivono? sulla base di cosa?

Il concetto di copertura è fondamentale. Una buona copertura del codice, delle funzionalità e dei casi d’uso aiuta a capire meglio quale possa essere l’affidabilità dei test automatizzati.

Qualità del processo di test

Spesso, i problemi si annidano nelle “pieghe” del sistema:

  • Ci sono gap tra i diversi livelli di testing?
  • Esistono lacune nel testing di come componenti del sistema interagiscono tra loro?
  • Ci sono lacune nel testing di come un componente possa venir configurato?

Un processo di test di alta qualità mira a identificare e colmare questi gap, aumentando l’affidabilità complessiva.


In conclusione, l’affidabilità dei test automatizzati non è una questione binaria, ma dipende da un complesso intreccio di fattori. Un approccio olistico che consideri tutti questi aspetti può portare a un sistema di testing robusto e affidabile. La chiave sta nel continuo monitoraggio, analisi e miglioramento del processo di testing, adattandolo alle specifiche esigenze e rischi del sistema in questione.

Alla fin fine tutti noi vorremmo evitare di trovarci in situazioni come questa:

Andamento del titolo CrowdStrike su Yahoo Finance

Pubblicato originariamente come Articolo LinkedIn.