lördag
jul232011
Tredje generationens testverktyg
lördag 23 juli, 2011 Enligt min definition, det finns fler, så kan tredje generationens testverktyg själv hitta vad den skall interagera med på skärmen genom bildigenkänning, dvs verktyget skall kunna efterlikna en manuell mänsklig testare.
Den första generationens testautomatiseringsverktyg baserades på fasta koordinater dvs x- och y-koordinater där verktyget skulle klicka osv. Den andra generationens verktyg baserade sig på objektigenkänning, dvs ett antal egenskaper i den gränssnittskomponent som renderas på skärmen. Fördelen med andra generationens verktyg är att den metoden fungerar bättre på moderna fönsterbaserade applikationer där fönster kan ändra storlek och även flyttas. Nackdelen är att dessa verktyg alltid bara stödjer ett begränsat antal gränssnittskomponenter. När applikationen som testas innehåller något annat så uppstår oftast problem med uppspelningen.
Tredje generationens testverktyg har inte de här svagheterna utan kan användas på alla typer av applikationer och på alla typer av operativsystem.
Finns det inte några nackdelar med verktyg som baserar sig på bildigenkänning då? Jo, det finns det givetvis. En nackdel är att verktygen, än så länge, inte kan läsa upp någon text från skärmen och använda resultatet i något efterföljande moment. Dock något som man får hoppas kan bli möjligt i framtiden. Dessa typer av verktyg har inte haft så många år på marknaden ännu. Det blir dock mycket intressant att se om denna nya generation av verktyg kommer ta över efter de objektbaserade, som nu är vanligast på marknaden.
Här kommer en lista på några verktyg som baserar sig på bildigenkänning för uppspelning av testfall: EggPlant, JAutomate, Project Sikuli, T-Plan Robot.
Den första generationens testautomatiseringsverktyg baserades på fasta koordinater dvs x- och y-koordinater där verktyget skulle klicka osv. Den andra generationens verktyg baserade sig på objektigenkänning, dvs ett antal egenskaper i den gränssnittskomponent som renderas på skärmen. Fördelen med andra generationens verktyg är att den metoden fungerar bättre på moderna fönsterbaserade applikationer där fönster kan ändra storlek och även flyttas. Nackdelen är att dessa verktyg alltid bara stödjer ett begränsat antal gränssnittskomponenter. När applikationen som testas innehåller något annat så uppstår oftast problem med uppspelningen.
Tredje generationens testverktyg har inte de här svagheterna utan kan användas på alla typer av applikationer och på alla typer av operativsystem.
Finns det inte några nackdelar med verktyg som baserar sig på bildigenkänning då? Jo, det finns det givetvis. En nackdel är att verktygen, än så länge, inte kan läsa upp någon text från skärmen och använda resultatet i något efterföljande moment. Dock något som man får hoppas kan bli möjligt i framtiden. Dessa typer av verktyg har inte haft så många år på marknaden ännu. Det blir dock mycket intressant att se om denna nya generation av verktyg kommer ta över efter de objektbaserade, som nu är vanligast på marknaden.
Här kommer en lista på några verktyg som baserar sig på bildigenkänning för uppspelning av testfall: EggPlant, JAutomate, Project Sikuli, T-Plan Robot.
Om författaren
Michel Nass är testkonsult på Inceptive med många år i branschen. Han är expert på test, testmetodik, agil utveckling och har högsta kompetens inom avancerade testverktyg.
Michel Nass är testkonsult på Inceptive med många år i branschen. Han är expert på test, testmetodik, agil utveckling och har högsta kompetens inom avancerade testverktyg.

Reader Comments (7)
Är det någon som har jobbat med EggPlant eller någon av de övriga verktygen?
Jag har tittat lite på EggPlant och tycker att den är intressant, men skulle uppskatta information av någon som använt programmet lite mer. Fördelar / nackdelar / begränsningar etc
Har också kikat lite på eggPlant men tyvärr inte jobbat med det i något riktigt projekt. Nackdelen är väl främst att det inte går att testa en applikation på samma dator som man använder för att köra eggPlant på eftersom man måsta koppla upp sig via VNC. Sedan tror jag att verktyget kostar en slant, har inte fått reda på hur mycket ännu.
Tycker du skulle testa JAutomate som är både gratis och mycket enkelt att komma igång med. Funktionerna liknar de som finns i eggPlant men kräver ingen VNC koppling mot applikationen under test.
Den nackdel jag nämnde i inlägget först stämmer förresten inte längre på dessa två testverktyg, de har båda stöd för att hitta och läsa texter från skärmen via OCR.
Jag tror att en blandning av objekt och bildigenkänning skulle vara det bästa.
I dagsläget kanske det är så, Magnus. Man får dock tänka på att de objektbaserade funnits under många år medans de som baserar sig på bildigenkänning just fått ett genombrott. Föreställ dig ett testverktyg som ser lika bra som en mänsklig testare. Behöver man fortfarande objektbaserade UI testverktyg då?
Det enda jag kan se är när man endast vill validera data och man måste scrolla för att datat ska synas, det behövs inte vid objekt.
Du har rätt Magnus, där har du ett exempel på när det är lite krångligare med visuella verktyg. Det man då får göra är att skapa en loop som klickar på scrollbaren tills bilden man tänkt klicka på eller verifiera syns på skärmen. Problemet kan dock även uppstå för objektbaserade verktyg om websidan t.ex. använder sig av sidor, dvs man tvingas även där byta sida tills det man önskar verifiera laddas till webbläsaren.
Hej
Jag har provat lite mer med eggPlant och JAutomate. Det jag har upplevt med JAutomate är att det är lite "begränsat", men det sagt så kan det bero på mina begränsningar och inte programmet.
Kan hålla med om att jag från början upplevde eggPlant via VCN som en ganska klumpig och besvärlig lösning, men ju mer jag använder det ju mer gillar jag konceptet.. Det är smidigt att kunna testa mot flera OS från en dator (även om det är mot en kostnad till att man måste ha tillgång till flera datorer. EggPlant är inte gratis precis, men med tillräckligt många system att testa mot flera OS och webläsare så går det att räkna hem i minskad arbetskostnad samt bättre regressionstester (gör så att jag kan köra min "käpphäst" rappid testning, något som jag inte hade tid med tidigare).