Non capisco il concetto di software testing oracle. DiceChe cos'è un test oracle e a cosa serve?
Un oracolo è un meccanismo per determinare se il programma ha superato o fallito un test.
Si consideri il seguente codice:
// class that should be tested
public int sum(int a, int b) {
return a + b;
}
// test class
static Main tester = new Main();
@Test
public void testSum() {
assertEquals("2 + 3 is 5", 5, tester.sum(2, 3));
}
La classe che dovrebbe essere testato sempre restituisce la somma di 2 numeri interi.
Passo come parametro 2 e 3, e aspetto che 5. 2 e 3 vengano sommati e confrontati con il valore atteso (5). In questo caso il test ha esito positivo.
In che modo esattamente un oracolo può aiutarmi qui? Un oracolo è coinvolto in questo esempio?
Sono interessato a conoscere anche questo, dal momento che il concetto di un oracolo di prova mi ha sempre colpito come un concetto vago.La mia comprensione (che potrebbe essere sbagliata, quindi il mio interesse) è che un corridore di prova è un esempio di oracolo di prova. (Nel tuo caso, l'oggetto 'tester'.) – Lilshieste