Black box vs White Box vs Grey box

Esistono sostanzialmente tre grossi approcci per affrontare il testing delle applicazioni:

  • White Box
  • Black Box
  • Grey Box

L’approccio white box si basa sul presupposto di testare un prodotto conoscendo come è fatto e avendo accesso al codice. Questo tipo di approccio, in genere, viene perseguito dagli sviluppatori perchè conoscono il codice. In realtà tali test sarebbe meglio se fossero eseguiti da esperti del settore o almeno non dalla stessa persona che ha sviluppato il codice. Questo perchè chi testa ciò che ha prodotto è meno propenso a trovare i problemi riguardanti il codice che lui stesso ha creato. Il vantaggio di questo approccio è che si possono fare dei test (unit test) molto più mirati rispetto agli altri approcci e che quindi potrebbero portare a rilevare dei problemi che difficilmente potrebbero essere trovati altrimenti. Esempi di questo approccio sono le tecniche basate sulla copertura dei path, delle decisioni, delle condizioni, ecc

L’approccio black box è quello che generalmente viene usato dai tester. Si basa sull’assunto di non sapere come è realizzata la funzionalità, interessa solo cosa fa, per cui il punto di vista è (quasi) lo stesso dell’utente finale focalizzandosi sul cosa fa il sistema e sui requisiti forniti dalle specifiche. Lo svantaggio di questo approccio è che porta spesso ad una copertura di tutti gli scenari piuttosto scarsa per cui potrebbero essere lasciati latenti dei bugs che potrebbero,poi, rilevarsi a seguito di sviluppi successivi. Esempi di questo approccio solo le tecniche di partizionamento, di analisi dei valori limite, tabelle di cause ed effetto, il test di esplorazione, il test di error guessing, il diagramma degli stati, ecc

L’approccio grey box è un approccio intermedio, in pratica si conosce a grandi linee il come la funzionalità è stata implementata e delle strutture dati utilizzate. In questo modo si riescono ad eseguire dei test più mirati rispetto all’approccio black box, ovviamente non conoscendo per intero il codice i test saranno meno effecaci rispetto alla tecnica white box