Faccio QA su un grande codice commerciale, questo scenario irritante si presenta troppo spesso. Di solito è indicativo di non avere procedimenti corazzati per costruire il binario su tutte le piattaforme che supportiamo. Quindi se lo sviluppatore crea il proprio codice (che deve fare il debug e il fix), e non segue la stessa procedura per la lettera, c'è la possibilità che i bug dipendenti dal sistema sembrino scomparire magicamente (o apparire) . Naturalmente queste cose si chiudono solitamente con "lavora per me" nel database dei bug e se falliscono la volta successiva che il problema viene eseguito, il bug può essere riaperto. Ogni volta che sospetto che un bug possa dipendere dal sistema, provo a testarlo su una varietà di piattaforme e riferisco in quali condizioni accade. Spesso si verifica un problema di corruzione della memoria se i dati danneggiati sono di grandezza sufficiente a causare un arresto anomalo. Alcune piattaforme (combinazioni HW e OS) potrebbero bloccarsi più vicino alla vera fonte della corruzione, e questo può essere molto prezioso per il povero ragazzo che deve eseguirne il debug.
Il tester deve fare un po 'di valore aggiunto, oltre a segnalare che il suo sistema mostra un errore. Trascorro molto tempo a escludere i falsi positivi - forse la piattaforma in questione era sovraccaricata, o la rete ha avuto un problema tecnico. E sì, a volte si può ottenere qualcosa che è veramente influenzato da eventi di temporizzazione casuale, i bug hardware possono spesso essere come un esempio di proto: Se
due richieste di dati restituiscono esattamente lo stesso periodo di clock e la logica hardware per gestire il potenziale conflitto è difettosa, quindi il bug verrà visualizzato solo in modo intermittente. Allo stesso modo con l'elaborazione parallela, a meno che con un'attenta progettazione non si sia costretti a rendere la soluzione indipendente dal processore più veloce, è possibile ottenere bug che si verificano solo una volta in una luna blu e la loro imponderabilità statistica rende il debug un incubo.
Anche il nostro codice viene aggiornato, solitamente molte volte al giorno, rintracciando un numero esatto di revisione del codice sorgente per quando è andato a sud può essere un'informazione molto utile per lo sforzo di debug. Il tester non dovrebbe essere in una relazione contraddittoria con i debugger e gli sviluppatori, è lì come parte di un team per migliorare la qualità del prodotto.