Testdesigners allmänt tror att den totala effektiviteten och kostnaden för programvarutestning beror till stor del på typen och antalet testfall som utförs på programvaran. Denna artikel visar att testoraklet, en mekanism som avgör om en programvara utförs korrekt för ett testfall, också påverkar feldetekteringseffektiviteten och kostnaden för ett testfall avsevärt. Grafiska användargränssnitt (GUI), som har blivit allestädes närvarande för att interagera med dagens programvara, har skapat nya utmaningar för test oracle-utveckling. Test designers manuellt "assert" de förväntade värdena av specifika egenskaper hos vissa grafiska gränssnitt widgets i varje testfall; under test utförande, dessa påståenden används som test oracles för att avgöra om det grafiska gränssnittet utförs korrekt. Eftersom ett testfall för ett grafiskt gränssnitt är en sekvens av händelser, måste en testdesigner bestämma: 1) vad man ska hävda; och 2) hur ofta man kontrollerar ett påstående, till exempel efter varje händelse i testfallet eller efter att hela testfallet har slutförts. Variationer av dessa två faktorer påverkar avsevärt förmågan att upptäcka fel och kostnaden för ett GUI-testfall. En teknik för att deklarera olika typer av automatiserade GUI test oracles beskrivs. Sex fall av test orakel utvecklas och jämförs i ett experiment på fyra mjukvarusystem. Resultaten visar att testorakler påverkar feldetekteringsförmågan hos testfall på olika och intressanta sätt: (1) Testfallen förlorar signifikant sin förmåga att upptäcka fel vid användning av "svaga" testorakler; (2) i många fall framkallar ett "torgigt" orakel i slutet av testfallet ger det bästa förhållandet mellan kostnad och nytta; (3) vissa testfall upptäcker fel endast om oraklet åberopas under ett litet "tillfällesfönster" under testutförandet; och (4)
Xie och Memon REF studerade olika typer av orakel för testning av grafiskt användargränssnitt (GUI).
Designing and comparing automated test oracles for GUI-based software applications
{'venue': 'TSEM', 'journal': None, 'mag_field_of_study': ['Computer Science']}