L'interfaccia utente di debug-build-only controlla una cattiva pratica?

1

Spesso, per semplificare i test, aggiungo i controlli dell'interfaccia utente che sono visibili e abilitati solo nella compilazione di debug. Oppure prepopolare i campi di input obbligatori nella compilazione di debug. È una cattiva pratica? Supponendo che anche la versione sia testata.

Il motivo principale è semplificare la correzione dei bug - quando il problema si trova in profondità nel tuo programma, è piuttosto difficile passare ripetutamente dozzine di passaggi.

Il modo in cui l'ho fatto finora è aggiungere il pulsante "debug" sulla maschera / pagina principale, che porta a una maschera / pagina piena di scorciatoie in vari punti del programma.

Questo mi sembra un codice borderline per me, quindi mi chiedevo se ci sono modi migliori.

    
posta user5226582 10.02.2016 - 11:26
fonte

3 risposte

6

Questo non è tanto un indicatore di cattive pratiche quanto un rigoroso test del processo di implementazione.

Ovviamente è molto brutto se eseguire il debug di controlli, contenuto, backdoor, ecc., entra negli ambienti di produzione. Ma se ti aiutano a raggiungere lo stesso obiettivo di business più velocemente, risparmiano denaro reale alla compagnia. Pertanto, il fattore cruciale è garantire che non possa entrare nel codice di produzione anche per negligenza. Test di integrazione, build automatizzati, forse anche test di regressione specifici che alcuni controlli sono non possono aiutare a raggiungere questo obiettivo.

Sicuramente il codice di debug-only in generale è troppo prezioso per escludere completamente, semplicemente perché potrebbe pasticciare i sistemi di produzione. Ogni modifica potrebbe compromettere i dati reali, il trucco dell'ingegneria del software deve essere consapevole dei rischi e delle pressioni e bilanciarli correttamente.

    
risposta data 10.02.2016 - 11:36
fonte
2

Il codice di debug è stato incluso nei programmi praticamente fino a quando sono stati scritti. L'elefante nella stanza, tuttavia, è che i tuoi cicli di test non sono contro la versione che alla fine verrà spedita. Mentre trovare alcuni problemi in anticipo potrebbe superare il costo di trovare bug nascosti in seguito, è certamente un rischio da considerare.

Devi anche fare attenzione che qualsiasi codice aggiunto non possa essere usato come backdoor per aggirare qualsiasi sicurezza incorporata nell'applicazione che potresti avere.

Se la configurazione dei dati del test sembra essere laboriosa, consulta i test delle unità automatizzate . Per i test ripetitivi, dovresti idealmente esaminarlo comunque.

    
risposta data 10.02.2016 - 11:55
fonte
0

A seconda del design dell'applicazione potrebbe essere necessario il tuo approccio.

Trovo che il modo migliore per eseguire il debug delle applicazioni dell'interfaccia utente sia inizializzarlo con uno stato dall'inizio (ad esempio da un dizionario JSON). Quindi l'unica voce di debug è lo stato iniziale. Questo è abbastanza facile se sviluppi applicazioni basate sul web e molto semplice se l'interfaccia utente è sempre costruita dallo stato (ad es. Se usi API React-like).

Se non puoi assolutamente evitare di eseguire il debug dei controlli, ti consiglio di isolarli dal resto dell'applicazione in modo che la rimozione sia banale.

    
risposta data 10.02.2016 - 11:38
fonte

Leggi altre domande sui tag