Ovviamente, il modo più semplice per risolvere un bug è riuscire a riprodurlo internamente. Tuttavia, a volte ciò non è pratico. Per i principianti, gli utenti spesso non sono molto bravi a fornirti informazioni utili.
Customer Service: "what seems to be the issue?"
User: "It crashed!"
Per aggiungere ulteriori dettagli, a volte il bug si verifica solo in determinate condizioni ambientali che non possono essere replicate adeguatamente all'interno dell'azienda. Con questo in mente, è importante costruire una sorta di quadro diagnostico nel prodotto.
Quali tipi di strumenti diagnostici integrati hai usato o visto usato?
La registrazione sembra essere il metodo predominante, il che ha senso. Abbiamo un framework di registrazione abbastanza sofisticato in funzione con diversi livelli di verbosità e la possibilità di filtrare su moduli specifici (in realtà possiamo filtrare fino alla granularità di un singolo file). I log degli errori sono posizionati strategicamente per produrre una buona rappresentazione di una traccia stack quando si verifica un errore. Non abbiamo il lusso di 10 milioni di terabyte di spazio su disco poiché lavoro su piattaforme embedded, quindi abbiamo due modi per rimuoverli dal sistema: una porta seriale e un server syslog.
Tuttavia, un problema a cui ci imbattiamo a volte sta facendo in modo che l'utente accenda i log. Il nostro attuale framework richiede spesso alcune interazioni con l'utente.