Che tipo di bug è questo? [chiuso]

5

La mia applicazione ha 3 metodi di spedizione, il più economico dei quali è gratuito. L'opzione di spedizione gratuita è disponibile solo per ordini superiori a $ 100.

Non appena l'ho creato, ho pensato a un modo in cui un utente potrebbe aggirarlo facilmente. Aggiungi articoli al carrello per un totale di oltre $ 100, quindi seleziona la spedizione gratuita, quindi modifica il carrello per un importo inferiore a $ 100 e mantieni la spedizione gratuita.

Ho corretto la mia applicazione per non permetterlo. Ho iniziato a chiedermi però, come si chiama questo tipo di difetto di progettazione? So che puoi chiamarlo bug, ma c'è una descrizione migliore che posso usare in modo che qualcuno possa capire di cosa sto parlando?

    
posta JD Isaacks 05.05.2011 - 21:03
fonte

6 risposte

18

Da bug di software di Wikipedia- > , sembra un errore concettuale :

"[The] code is syntactically correct, but the programmer or designer intended it to do something else."

    
risposta data 05.05.2011 - 21:06
fonte
8

"Design Flaw" coprirà anche questo.

Hai implementato il sistema sul design ma il design era sbagliato.

Nota: questo non ha alcuna influenza sulla qualità del codice. Può essere "perfetto" in quanto funziona esattamente come progettato.

    
risposta data 05.05.2011 - 21:31
fonte
5

È un errore concettuale in generale.

Tendo a pensare a questo tipo di cose come a "condizioni di gara concettuali": invece di controllare uno stato finale definitivo, i controlli vengono effettuati in punti intermedi in cui lo stato non è definitivo.

In questo caso, l'errore è che il controllo di spedizione viene eseguito una sola volta (quando l'utente seleziona), e non ripetuto alla fine (quando l'ordine ha una convalida e una revisione finale).

La maggior parte dei sistemi commerciali esegue un controllo finale.

    
risposta data 05.05.2011 - 21:22
fonte
2

Internamente, lo chiamiamo errore Z-Axis o errore temporale, in pratica dimenticando che gli stati cambiano nel tempo o in un'altra dimensione, quindi è necessario riconvalidare determinate cose e altrimenti proteggerle.

Siamo pazzi, quindi sto solo condividendo qui.

    
risposta data 05.05.2011 - 21:43
fonte
1

È un bug di sequenza o temporizzazione. Come originariamente scritto, hai controllato il totale in uno dei punti temporali che dovevi controllare (al primo riepilogo dell'ordine) ma non tutti (dopo ogni modifica o poco prima della conferma finale). Oltre al bug che hai immaginato , potrebbe esserci anche uno in cui ordino $ 99 di roba, mi rendo conto di quanto devo pagare per la spedizione, e poi aggiungo qualcosa al mio carrello per superare il segno di $ 100, ma la spedizione non diventa gratis, rendendomi infelice e eventualmente abbandonando l'ordine.

Se volevi esibirti, potresti dire a qualcuno che hai "identificato erroneamente gli invarianti" per il problema.

    
risposta data 05.05.2011 - 21:48
fonte
0

Considererei questo non gestendo correttamente l'input dell'utente. Non so se esiste un nome specifico per questo, ma è la causa di un sacco di bug.

    
risposta data 05.05.2011 - 21:36
fonte

Leggi altre domande sui tag