en ny tilnærming til test suite generasjon, tilpasset FRA EN CLI teknikk innebærer bruk av et planleggingssystem. Planlegging er en godt studert teknikk fra kunstig intelligens (AI) domenet som forsøker å løse problemer som involverer fire parametere:
- en starttilstand,
- en måltilstand,
- et sett med operatorer og
- et sett med objekter å operere på.
Planleggingssystemer bestemmer en bane fra starttilstanden til måltilstanden ved hjelp av operatorene. Som et enkelt eksempel på et planleggingsproblem, gitt to ord og en enkelt operasjon som erstatter en enkelt bokstav i et ord med en annen, kan målet være å endre ett ord til et annet.
i forfatterne brukte planner IPP for å demonstrere denne teknikken. Systemets UI analyseres først for å bestemme mulige operasjoner. Disse blir operatørene som brukes i planleggingsproblemet. Deretter bestemmes en innledende systemtilstand, og en måltilstand er spesifisert som testeren føler ville tillate utøvelse av systemet. Planleggingssystemet bestemmer en bane fra starttilstanden til måltilstanden, som blir testplanen.
Å bruke en planlegger til å generere testtilfellene har noen spesifikke fordeler i forhold til manuell generering. Et planleggingssystem, i sin natur, genererer løsninger på planleggingsproblemer på en måte som er svært gunstig for testeren:
- planene er alltid gyldige. Resultatet av systemet er enten en gyldig og korrekt plan som bruker operatørene til å oppnå måltilstanden eller ingen plan i det hele tatt. Dette er gunstig fordi mye tid kan være bortkastet når man manuelt oppretter en testpakke på grunn av ugyldige testtilfeller som testeren trodde ville fungere, men ikke gjorde det.
- et planleggingssystem legger merke til bestillingen. Ofte for å teste en bestemt funksjon, må testsaken være kompleks og følge en sti gjennom GUI hvor operasjonene utføres i en bestemt rekkefølge. Når det gjøres manuelt, kan dette føre til feil og kan også være ganske vanskelig og tidkrevende å gjøre.
- Endelig, Og viktigst, er et planleggingssystem målrettet. Testeren fokuserer test suite generasjon på hva som er viktigst, teste funksjonaliteten til systemet.
når du manuelt oppretter en testpakke, er testeren mer fokusert på hvordan du tester en funksjon(dvs. den spesifikke banen gjennom GUI). Ved å bruke et planleggingssystem blir banen tatt vare på og testeren kan fokusere på hvilken funksjon som skal testes. En ekstra fordel med dette er at et planleggingssystem ikke er begrenset på noen måte når du genererer banen, og kan ofte finne en bane som aldri var forventet av testeren. Dette problemet er svært viktig å bekjempe.
En annen metode for å generere GUI testtilfeller simulerer en nybegynner. En ekspertbruker av et system har en tendens til å følge en direkte og forutsigbar bane gjennom EN GUI, mens en nybegynner vil følge en mer tilfeldig bane. En nybegynner bruker er da sannsynlig å utforske flere mulige tilstander AV GUI enn en ekspert.
vanskeligheten ligger i å generere testsuiter som simulerer ‘nybegynner’ systembruk. Ved hjelp av genetiske algoritmer har blitt foreslått for å løse dette problemet. Nybegynnerbaner gjennom systemet er ikke tilfeldige baner. For det første vil en nybegynner lære over tid og vil generelt ikke gjøre de samme feilene gjentatte ganger, og for det andre følger en nybegynner en plan og har sannsynligvis noe domene-eller systemkunnskap.
Genetiske algoritmer fungerer som følger: et sett med gener opprettes tilfeldig og blir deretter utsatt for en oppgave. Genene som fullfører oppgaven best, beholdes og de som ikke blir kassert. Prosessen gjentas igjen med de overlevende gener som replikeres og resten av settet fylles ut med flere tilfeldige gener. Til slutt vil ett gen (eller et lite sett med gener hvis det er noen terskelsett) være det eneste genet i settet og er naturlig nok best egnet for det gitte problemet.
ved GUI-testing fungerer metoden som følger. Hvert gen er i hovedsak en liste over tilfeldige heltallsverdier av noe fast lengde. Hvert av disse genene representerer en bane gjennom GUI. For eksempel, for et gitt tre av widgets, vil den første verdien i genet (hver verdi kalles en allel) velge widgeten for å operere på, følgende alleler vil da fylle inn innspill til widgeten avhengig av antall mulige innganger til widgeten (for eksempel en nedtrekksliste vil ha en inngang…den valgte listeverdien). Suksessen til gener er scoret av et kriterium som belønner den beste ‘nybegynner’ atferd.
et system for å gjøre denne testingen For x window system, men utvidbar til alle windowing system er beskrevet i. X Window system gir funksjonalitet (via XServer og editors’ protocol) for a dynamisk sende GUI-inngang til og fa GUI-utgang fra programmet uten a bruke GUI. For eksempel kan man ringe XSendEvent () for å simulere et klikk på en rullegardinmeny, og så videre. Dette systemet gjør det mulig for forskere å automatisere genopprettelsen og testingen, slik at et sett med nybegynnertesttilfeller kan opprettes for et gitt program under test.