Qual è il vero punto di un "oracolo" nel test SW?

1

Conosco la definizione di un test oracle ma a me sembra che sia sopravvalutato. Ho una specifica, perché dovrei preoccuparmi di pensare agli oracoli? Ho solo confrontare ciò che la specifica vuole e ciò che fa il programma. O ho i casi d'uso, qualunque cosa. Quando leggo di oracoli nei libri, sembra una scienza a sé stante. C'è qualcosa di più dietro questo concetto? Forse non ho capito il suo punto.

Un oracolo consiste di un generatore e un comparatore. Qual è il significato del comparatore se si controlla se un output effettivo è uguale a un output atteso? In che altro modo potrebbe essere controllato?

    
posta KhDonen 14.04.2013 - 12:17
fonte

2 risposte

2

I have a specification, why should I bother with thinking about oracles? I just compare what the spec wants and what the program does.

Il fatto è: cosa succede se non ha una specifica, o la specifica è più complessa di una semplice lista di input e output previsti? Alcuni esempi:

  • Hai un esperto di dominio invece di una specifica scritta completa
  • La specifica dice: il sistema deve comportarsi esattamente come il sistema legacy ad eccezione di queste modifiche qui elencate
  • Alcuni comportamenti del sistema sono casuali, la specifica elenca i vincoli come i test statistici
  • Stai implementando un complesso algoritmo numerico per risolvere equazioni differenziali. L'output conterrà errori numerici, in alcuni casi più che in altri

"Oracle" è semplicemente un termine più generale delle specifiche.

What is the meaning of the comparator if you just check whether an actual output equals to an expected output?

Gli ultimi due punti sopra sono esempi in cui il controllo è molto più complesso di un semplice test di uguaglianza.

    
risposta data 14.04.2013 - 22:36
fonte
1

Penso che sia un bel modo di dire la verità del Vangelo. Per alcuni programmi l'output esatto è difficile da ottenere per diversi set di dati (algoritmi, calcoli, contabilità, tasse, assicurazione ...). Il tester / suite di test richiede la risposta corretta per confrontare l'output del software reale. Le specifiche avranno il metodo & alcuni campioni ma non la risposta per l'attuale serie di dati e amp; Stato.

L'oracolo in questo caso è un software o una persona o un metodo parallelo per ottenere la risposta. Perché potresti essere il tuo prossimo, perché una suite software potrebbe essere il file di testo in cui hai inserito il valore previsto.

Oracle è quello con le risposte.

Esempio: quando si dispone di un set di dati, ad esempio per un'applicazione fiscale, una persona che guadagna X, con detrazioni Y e altri fattori ambientali come il numero di figli, ecc. Il comparatore prenderà questi dati e ricaverà l'imposta dovuta , quindi confrontalo con ciò che il programma emette; per vedere se ha capito bene Se non corrispondono, uno di loro ha sbagliato. Speriamo che l'app o l'oracolo non sia un buon oracolo.

    
risposta data 14.04.2013 - 13:58
fonte

Leggi altre domande sui tag