uudenlainen lähestymistapa test suite-generointiin, joka on mukautettu CLI-tekniikasta, edellyttää suunnittelujärjestelmän käyttöä. Suunnittelu on hyvin tutkittu tekniikka tekoäly (AI) domain, joka yrittää ratkaista ongelmia, joihin liittyy neljä parametria:
- alkutila,
- maalitila,
- joukko operaattoreita ja
- joukko kohteita joilla operoida.
suunnittelujärjestelmät määrittävät reitin alkutilasta maalitilaan operaattoreiden avulla. Yksinkertaisena esimerkkinä suunnitteluongelmasta, kun otetaan huomioon kaksi sanaa ja yksi toimenpide, joka korvaa yhden kirjaimen sanassa toisella, tavoitteena voi olla yhden sanan muuttaminen toiseksi.
kirjoittajat käyttivät suunnittelijaa IPP osoittaakseen tämän tekniikan. Järjestelmän käyttöliittymä analysoidaan ensin mahdollisten toimintojen määrittämiseksi. Näistä tulee suunnitteluongelmassa käytettyjä toimijoita. Seuraavaksi määritetään järjestelmän alkutila ja tavoitetila, jonka testaaja katsoo mahdollistavan järjestelmän käyttämisen. Suunnittelujärjestelmä määrittää polun lähtötilasta tavoitetilaan, josta tulee testisuunnitelma.
suunnitteluohjelman käyttäminen testitapausten luomiseen on joitakin erityisetuja manuaaliseen generointiin verrattuna. Suunnittelujärjestelmä luo luonnostaan ratkaisuja suunnitteluongelmiin tavalla, joka on testaajalle erittäin hyödyllinen:
- suunnitelmat ovat aina voimassa. Järjestelmän tuotos on joko kelvollinen ja oikea suunnitelma, jossa operaattorit pyrkivät saavuttamaan tavoitetilan, tai sitten suunnitelmaa ei ole lainkaan. Tämä on hyödyllistä, koska testisarjan manuaaliseen luomiseen voi kulua paljon aikaa virheellisten testitapausten vuoksi, joiden testaaja luuli toimivan, mutta ei toiminut.
- suunnittelujärjestelmä kiinnittää huomiota järjestykseen. Usein tietyn toiminnon testaamiseksi testitapauksen on oltava monimutkainen ja seurattava GUI: n kautta kulkevaa polkua, jossa toiminnot suoritetaan tietyssä järjestyksessä. Kun tehdään manuaalisesti, tämä voi johtaa virheisiin ja voi myös olla melko vaikeaa ja aikaa vievää tehdä.
- lopuksi, ja mikä tärkeintä, suunnittelujärjestelmä on tavoitteellinen. Testaaja keskittää test suite-sukupolven siihen, mikä on tärkeintä, testaamaan järjestelmän toimivuutta.
kun testisarjaa luodaan manuaalisesti, testaaja keskittyy enemmän siihen, miten funktio testataan (esim. GUI: n läpi kulkeva tietty polku). Suunnittelujärjestelmän avulla polusta huolehditaan ja testaaja voi keskittyä siihen, mitä toimintoa testataan. Lisäetuna tästä on se, että suunnittelujärjestelmää ei rajoiteta millään tavalla polkua luotaessa ja se saattaa usein löytää polun, jota testaaja ei koskaan osannut ennakoida. Tätä ongelmaa on erittäin tärkeä torjua.
toinen tapa tuottaa GUI – testitapauksia simuloi aloittelevaa käyttäjää. Järjestelmän asiantunteva käyttäjä pyrkii seuraamaan suoraa ja ennustettavaa polkua graafisen käyttöliittymän kautta, kun taas aloitteleva käyttäjä seuraisi satunnaisempaa polkua. Noviisi käyttäjä on sitten todennäköisesti tutkia enemmän mahdollisia tiloja GUI kuin asiantuntija.
vaikeutena on luoda testisarjoja, jotka simuloivat ”noviisi” – järjestelmän käyttöä. Ongelman ratkaisemiseksi on ehdotettu geneettisten algoritmien käyttöä. Noviisi polut läpi järjestelmän eivät ole satunnaisia polkuja. Ensinnäkin, noviisi käyttäjä oppii ajan mittaan ja yleensä ei tee samoja virheitä toistuvasti, ja, toiseksi, noviisi käyttäjä seuraa suunnitelmaa ja luultavasti on joitakin verkkotunnuksen tai järjestelmän tietoa.
geneettiset algoritmit toimivat seuraavasti: joukko ”geenejä” luodaan satunnaisesti, minkä jälkeen niille tehdään jokin tehtävä. Ne geenit, jotka suorittavat tehtävän parhaiten, pidetään ja ne, jotka eivät, hylätään. Prosessi toistuu jälleen, kun jäljelle jääneet geenit monistetaan ja loput joukosta täytetään satunnaisemmilla geeneillä. Lopulta yksi geeni (tai pieni joukko geenejä, jos on jokin kynnysjoukko) on joukon ainoa geeni ja sopii luonnollisesti parhaiten annettuun ongelmaan.
GUI-testauksessa menetelmä toimii seuraavasti. Jokainen geeni on pohjimmiltaan luettelo satunnaisista kokonaislukuarvoista, joilla on jokin kiinteä pituus. Jokainen näistä geeneistä edustaa polkua GUI: n läpi. Esimerkiksi tietyn puun widgetit, ensimmäinen arvo geenin (jokaista arvoa kutsutaan alleeli) valitsisi widget toimia, seuraavat alleelit sitten täyttää tulo widget riippuen useita mahdollisia tuloa widget (esimerkiksi vedä alas luettelo laatikko olisi yksi tulo…valitun luettelon arvo). Geenien menestys lasketaan kriteerillä, joka palkitsee parhaan ”noviisikäyttäytymisen”.
järjestelmä, joka tekee tämän testauksen X-ikkunajärjestelmälle,mutta laajennettavissa mihin tahansa windowing-järjestelmään, on kuvattu. X Window system tarjoaa toimintoja (kautta XServer ja editors ’ protokolla)dynaamisesti lähettää GUI Tulo ja saada GUI lähtö ohjelmasta ilman suoraan GUI. Esimerkiksi xsendeventiä () voi kutsua simuloimaan alasvedettävän valikon klikkausta ja niin edelleen. Tämän järjestelmän avulla tutkijat voivat automatisoida geenien luomisen ja testauksen, joten mille tahansa testattavalle sovellukselle voidaan luoda joukko aloittelevia käyttäjätestitapauksia.