Le condizioni di gara saranno con noi fino a quando le persone creano programmi software .
Nessuna best practice ti proteggerà completamente dalle condizioni di gara, perché l'uso corretto delle migliori librerie e delle migliori pratiche coinvolge ancora gli umani e un errore cognitivo umano in tutte le fasi, progettazione, implementazione, test, supporto.
Abbiamo utilizzato i seguenti principi:
Primo: Abbiamo appreso che il tuo migliore amico è uno strumento di analisi dinamica sofisticato sempre attivo , che analizza ogni esecuzione della tua applicazione. (Pensa al tempo e al risparmio energetico, perché sprecare l'energia nell'esecuzione dei processi software?)
Secondo: Fai in modo che il tuo utente sia il tuo tester.
Cioè rilasciare il prodotto con un agente che esegue l'analisi in fase di esecuzione. Ciò accorcia i tempi di commercializzazione, poiché avrai la certezza che qualsiasi errore mancato durante la prova della condizione di gara verrà analizzato in tempo reale e che lo saprai prima che l'utente lo faccia.
Terzo: Rendi i problemi identificati dall'agente giungere alla tua console in tempo reale.
Forth: Fai che il tuo agente esegua analisi complete e dettagliate in tempo reale e in modo completamente automatico. Quindi non dovrai mai preoccuparti che il programmatore non esegua analisi errate, anche se il tuo programmatore è stato fortunato a ricreare la gara condizione (spesso una proposta molto difficile). La ricerca di Microsoft mostra che oltre il 30% dell'analisi delle condizioni di gara (rilevate) (dagli umani) è stato eseguito in modo errato.
Quinto: Se l'analisi viene catturata da sola con le informazioni dinamiche del sistema , non dovrai mai preoccuparti di essere in grado di riprodurre il problema.
Sei: 100 agenti sono meno costosi e più affidabili di 100 tester umani. Quindi, se la tua console riceve risultati aggregati da 100 (o più) agenti, il tuo componente Time-To-Market influenzato dal tuo test ha ottenuto solo 100 (o più) tempi più brevi.
E Seven: Se l'analisi dell'agente viene spiegata al livello del codice sorgente (mentre l'agente analizza in realtà il codice e nessun codice sorgente viene fornito o disponibile al momento dell'analisi) i tuoi "Black Box Tester" diventano "White Box Testers" durante la notte.
PS: non è solo un'opinione, ma un'esperienza personale consentita dall'uso degli strumenti creati da TinkingSoftware.com
Dichiarazione di non responsabilità: non sarei in grado di fornire una risposta così dettagliata se non fossi coinvolto nella creazione e nell'utilizzo di questo strumento, "Race Catcher", e questo servizio, "ARM-CM", rappresentasse il monitoraggio dell'affidabilità delle applicazioni tramite le macchine collaborative .