Forse
Non puoi dare conto di tutti i casi eccezionali a meno che tu non abbia un sacco di tempo e denaro. Più interconnessioni in un sistema software sono tanto più complesse e più ci vuole per coprire anche i casi di test standard. Non stiamo nemmeno necessariamente parlando del codice che hai scritto. Ricorda che ogni volta che il tuo software non funziona semplicemente a corto di memoria (che non cresce) avrai molti più casi d'eccezione. L'accesso alla rete, al disco, alla visualizzazione, a qualsiasi altro dispositivo può causare un'eccezione. La crescente memoria può causare un'eccezione. In alcuni casi, persino il rilevamento che il software sia stato interrotto in modo errato può essere un caso eccezionale. La domanda è: hai davvero bisogno di coprire ogni eccezione.
Sì
Se stai lavorando su un software in cui le vite sono in bilico, letteralmente. Quindi sì, probabilmente devi almeno considerare ogni caso di eccezione. Software di chirurgia, software Space Shuttle, software di sistema d'arma, ecc. In ognuno di questi casi c'è spesso un'analisi esplicita di quali sono tutte le eccezioni e se hanno bisogno di essere coperte. Questi tipi di progetti spesso finiscono per spendere molto più tempo e denaro per coprire questi casi. Questo è il costo per coprire "tutti" i casi di eccezione.
No
Stai lavorando a un software di social networking. Un'app di Facebook, un'app per iPhone, qualche sito per appassionati di motociclette, ecc. Questo tipo di software di solito non garantisce il tipo di considerazione di cui ho parlato sopra. Di solito c'è un costo per arrivare sul mercato in ritardo, e coprire anche alcuni dei casi eccezionali può essere proibitivo. Questo può spesso essere una decisione che avrà implicazioni commerciali, specialmente in una startup. Coprite tutti questi casi e fate fallire la vostra azienda o perdete una grande porzione di entrate?
Dipende
Quindi la risposta è "dipende". Dipende dalle esigenze dell'azienda, dal costo di tali eccezioni, dal costo del tempo e dallo sforzo supplementari necessari per evitare tali eccezioni e il tempo necessario.
posizione
Idealmente si ottiene un equilibrio. Utilizzare pratiche come test automatizzati per ottenere almeno la massima copertura del codice possibile senza costi eccessivi in termini di tempo e denaro. È possibile utilizzare pratiche come test unitari, test funzionali, test fuzz, ecc; in modo che il software non sia troppo buggato, che sia facile da mantenere ed estendere, e così puoi guardarlo e prendere un certo orgoglio in ciò che hai scritto.