Testning av användargränssnitt

Storlek: px
Starta visningen från sidan:

Download "Testning av användargränssnitt"

Transkript

1 Testning av användargränssnitt Författare: Christian Holmgren Sanna Mauritzon Datum: Sammandrag Rapporten är ämnad att ge en överblick över området att testa grafiska användargränssnitt. Detta är ett område som blir allt viktigare bland dagens produkter och som är under ständig utveckling. En stor mängd av de produkter som utvecklas idag har ett grafiskt användargränssnitt, ett så kallat GUI, och då även denna del av produkten behöver testas har flertalet verktyg utvecklats för att automatisera processen. I denna rapport presenteras ett antal verktyg och två analyseras djupare. Dessa är jfcunit och Abbot som båda är omfattande och har möjlighet att dynamiskt känna igen komponenter på skärmen för att gör testerna anpassningsbara. Fokus för analysen är delvis vilket verktyg som skulle passa vid ett projekt som använder sig av extreme programming men även hur marknaden ser ut, idag och i framtiden, samt hur de olika verktygen skiljer sig.

2 1. Inledning Denna rapport undersöker testning av grafiska användargränssnitt vid mjukvaruutveckling med fokus på automatisering av processen. Olika relevanta verktyg utvärderas utifrån olika kriterier, däribland användarvänlighet, fullständighet och anpassningsbarhet. Utifrån analysen läggs resultat fram som kan användas som stöd vid val av verktyg. Av verktygen som analyseras kommer två undersökas mer utförligt än de andra. Dessa verktygen är jfcunit 1 och Abbot 2. Två oberoende utvecklarteam av studenter vid Lunds Tekniska Högskola kommer utvärdera dessa verktygen under ett fiktivt projekt. Tanken med detta är att samla in synpunkter och i slutet kunna rekommendera ett verktyg som lämpar sig bäst för ett projekt av den typen. För utförligare beskrivning av projekttypen, se rubriken 1.1 Projekt. En förhoppning med studien är att kunna göra rekommendationer av verktyg som kan hjälpa andra projekt i framtiden. Alla verktyg som utvärderas kommer alltså beskrivas med fördelar och nackdelar så att kommande projekt kan använda sig av informationen för att välja ett verktyg som passar bäst i deras situation. 1.1 Projekt Projekten som kommer utvärdera jfcunit och Abbot är identiska med varandra i många avseende och ingår i en kurs på Lunds Tekniska Högskola. Nedanstående text beskriver båda projekten. Ytterligare information om kursen som innehåller projekten kan hittas på hemsidan för kursens kursplan 3. Projekten pågår under sju veckor med en iteration i veckan där nedlagd tid per vecka är cirka 14 timmar. De är agila projekt som följer extreme programmings (XP) metodik och kommer utföras i en skolmiljö. Varje projektgrupp är nio personer där en av dem är en äldre student som agerar coach. De yngre studenterna går alla civilingenjörsutbildningen med inriktning datateknik och har därför tidigare erfarenhet av mjukvaruutveckling. De har också viss erfarenhet av JUnit 4. Coacherna i projekten är författarna till denna rapport och agerar utöver coacher även tracker och i viss mån projektledare. Systemet som ska utvecklas är ett tidtagarsystem för endurotävlingar som ska utvecklas i programmeringsspråket Java. Tidigt i utvecklingen kommer det krav från kunden på ett grafiskt användargränssnitt som ska tydliggöra och hjälpa användarna. Eftersom produkten ska levereras till kunden är det viktigt att kunna kvalitetstesta även den del av koden som berör det grafiska användargränssnittet. Projektet upplägg består av åtta timmar långlabb varje vecka, två timmar planeringsmöte och

3 fyra timmar spike-tid. Varje vecka motsvarar en iteration och i hälften av iterationerna ingår en extern release som utvärderas av kunden. De fyra timmarna som projektmedlemmarna varje vecka ska lägga ner på spikes är tid som ska användas för att läsa material som är relaterat till kursen, sätta sig in i systemlösningar för att underlätta utvecklingen och andra projektrelaterade saker som coacherna bestämmer. Under planeringsmötet tidsestimeras och prioriteras nästa iterations stories i samförstånd med kunden. Veckans spikes delas också ut. 1.2 Utvärdering För att kunna göra en så rättvis jämförelse mellan de två verktygen som möjligt har ett formulär framställt som ska användas för utvärdering av både jfcunit och Abbot. För att se formuläret, studera Appendix A. De två projektgrupperna som testar de olika verktygen får mot slutet av projektet fylla i dessa utvärderingsformulär och svaren sammanställs sedan för att fastställa om något verktyg är att föredra framför det andra. Naturligtvis spelar andra faktorer roll vid fastställandet av det slutgiltiga resultatet men projektgruppernas åsikter kommer spela en viktig roll. 2. Automatiserad GUI-testning Grafiskt användargränssnitt heter på engelska Graphical User Interface, förkortat GUI och är ett begrepp som ofta används för att beskriva de fönster, knappar, menyer med mera som används vid kommunikation mellan användaren och datorn. När mjukvara innehållande ett GUI utvecklas behöver alla delar testas, både koden bakom gränssnittet och själva gränssnittet. Det går inte att släppa ett program som har fungerande kod men ingenting händer när man trycker på knapparna i gränssnittet. Då kan användarna inte interagera med programmet och det ses snabbt som värdelöst. 2.1 Problem vid GUI-testning Att testa ett programs GUI är annorlunda från att testa koden bakom gränssnittet. Ofta anses det vara svårare att testa GUI:t och detta beror på att andra problem dyker upp vid testning av denna programdel. Ett vanlig problem är att användarna av programmet har möjlighet att klicka och röra sig överallt i gränssnittet vilket leder till en enormt stor mängd möjliga händelser som behöver testas 5. En användare kan närsom stänga ner ett fönster, byta fokus, klicka någonstans på skärmen eller göra något annat som behöver behandlas på rätt sätt av programmet. Denna stora mängd möjligheter måste hanteras av utvecklarna vilket också betyder att den behöver testas så att rätt funktionalitet kan försäkras. Ett annat problem som uppstår då GUI ska testas är att många program har dolda beroenden samt behov av synkronisering 5. Det kan till exempel vara att en besökare på en resebyrås hemsida klickar på önskad destination och då ska aktuella flygförbindelser visas i en ruta. Det kan även vara så att synkroniseringen sträcker sig bortom användarens fönster, till

4 exempel då besökaren köper en flygbiljett och antalet fria flygbiljetter i flygbolagets databas ska minska. All denna funktionalitet behöver testas men det är inte alltid så lätt att kontrollera att synkroniseringen fungerar korrekt. I vissa fall döljer det sig mycket funktionalitet bakom GUI:t som kan ge fel som inte syns utåt. När testningen av ett GUI ska göras automatisk uppstår ytterligare problem, bland annat då mindre förändringar görs i GUI:ts utseende 6. Om en knapp flyttas ett par pixlar åt höger förstörs ingen funktionalitet utan bara utseendet ändras. Det kan vara svårt för automatiska verktyg att göra dessa bedömningar vilket ofta innebär att fel lär hittas vid testningen även om förflyttningen av knappen inte resulterade i några funktionalitetsfel. 2.2 Verktyg Flertalet verktyg har utvecklats för att hjälpa utvecklare och testare med att skapa och genomföra testning av användargränssnitt. Verktygen har olika tillvägagångssätt och därmed olika för- och nackdelar. Detta gör att vissa verktyg passar bättre in i vissa situationer och sämre i andra och gör det svårare att välja verktyg för ett projekt. Många verktyg använder sig av en metod som kallas inspelning/uppspelning som går ut på att spela in användarnas handlingar och spara i ett script för att sedan kunna spela upp händelserna igen och jämföra så att resultatet fortfarande är korrekt 7. Detta är ett smart sätt att snabbt skapa tester men har också en del nackdelar. Till exempel slutar scriptet att köra då en bugg upptäcks och allting behöver köras igen från början när buggen är fixad, för att kanske stöta på nästa bugg två sekunder efter där den förra hittades 8. Det kan också bli problem om utseendet på GUI:t jämförs med en bildfil. Ändras en liten pixel misslyckas testet, precis som det beskrivs i sektion 2.1 Problem vid GUI-testning. Inspelning/uppspelnings-metoden löser alltså inte alla problem som finns vid testning av användargränssnitt. Ett annat tillvägagångssätt för GUI-testning är en metod som fritt översatt kallas programmeringsmetoden 7. Med denna metoden skrivs tester i kod och det går lättare att anpassa testerna och göra att de klarar en del förändringar i GUI:ts utseende. På så sätt kan de problem som uppstår med script undvikas. En nackdel är att det kan ställa till stora problem att få testen att utföra det som ska testas. Att få tillgång till fönster för att utföra test i dem är ett stort problem då det inte finns några lätta sätt att få tag på dem. Själva testen blir också väldigt komplicerade och svårlästa då de måste hålla reda på all komponenthiarki. I kommande sektioner presenteras och utvärderas ett antal verktyg som har som uppgift att automatisera testning av GUI. Två verktyg kommer utvärderas grundligare än de andra och dessa verktyg är jfcunit och Abbot. Anledningen till att fokus läggs på dessa verktyg är att de erbjuder möjlighet att använda både inspelning/uppspelnings-metoden och programmeringsmetoden vilket ger användaren större möjligheter att skapa och modifiera tester 7. Först presenteras en del intressanta verktyg som även de kan användas för att testa GUI.

5 3. Några intressanta verktyg Utöver jfcunit och Abbot som utvärderas närmare senare i rapporten, finns det flertalet andra verktyg som hjälper till vid testning av grafiska användargränssnitt. Många av dem har inte samma omfattning, mångsidighet eller tillgänglighet och har därför inte valts ut för utvärdering. Istället presenteras några av dem kort nedan. 3.1 SwingUnit SwingUnit är ett automatiserat testnings verktyg för Java Swing applikationer 10. Det fungerar som ett vanligt macro eller script för Swing. SwingUnit använder sig utav kodtest och har inte stöd för att spela in script där muspekaren rör sig eller klickar på element. Det integrerar sig med JUnit vilket medför att det går att använda sig av de verktyg som finns i JUnit för att underlätta GUI- testningen. Testerna kan skrivas i en XML-fil (extensible Markup Language) vilket underlättar då XML är ett stort och utbrett format vilket medför att kunskapen om hur det skrivs är stor. Huvudkonceptet bakom SwingUnit är att kapsla in events i Swings komponenter och därigenom kunna utföra test operationer och avläsa resultaten. 3.2 GUITAR GUITAR (GUI Testing framework) är inte ett enda verktyg utan en svit av olika verktyg som tillsammans skapar möjligheter att testa grafiska användargränssnitt automatiskt 11. Tillsammans verkar de för att inte bara testa på ett smart sätt, utan även att automatisera processen av att skapa testfall. En stor fördel med GUITAR är att det är ett gratisverktyg. Nedanstående komponenter är exempel på de moduler som ingår i GUITAR. EFG2EIGConvert - Ett program som med hjälp av en graf över händelseflödet skapar en graf över händelseinteraktionen. Det mappar även varje båge i ursprungsgrafen med motsvarande både i utdatan. AbstractEIG2ExecutableTC - Använder utdatan från föregående program för att skapa exekverbara testfall. WGReplayer - Ett program som automatiskt kör GUI-testfall på applikationen. 3.3 Fest Fest är ett gratisverktyg som består av flera moduler vilka tillsammans underlättar testning av mjukvara 12. Det kan användas tillsammans med JUnit och grundkonceptet är att tillhandahålla en samling av API:er (Application Programming Interface) för testning. Det innehåller mer än bara funktionalitet för testning av GUI men det finns moduler som är speciellt avsedda för just GUI-testning. En sådan modul är GUI Functional Testing: Swing and JavaFX. Den gör precis vad det låter som, tillhandahåller API för funktionstestning av GUI.

6 De testfall som är producerade med hjälp av Fests moduler hittar objekt dynamiskt och en förändring i layouten hos GUI:t ska inte resultera i fel hos testfallet. Skulle ett testfall inte gå genom visas det tydligt vad som hände genom att bland annat uppvisa en hierarkisk bild över GUI:t. 3.4 Squish Squish är ett verktyg med fokus på att automatisera regressionstestningen av användargränssnittet 13. Det kan automatiskt spela in testscript och dessa script blir inte beroende av skärmens koordinater. Koden i scripten kan väljas till flera olika språk, däribland Python och JavaScript. Under testerna kan skärmdumpar verifieras men även den lagrade datan både internt i programmet och externt i tillhörande databaser. Det har en stor fördel i att det är anpassat till flera GUI-teknologier och därmed fungerar inte bara på Java Swing eller AWT utan även HTML, iphone CocoaTouch, Native Windows.NET och flera andra. En nackdel är dock att det inte är ett öppet program utan användaren måste betala för att få tillgång till produkten. 4. jfcunit jfcunit är ett gratis verktyg för att testa användargränssnitt. I detta avsnitt beskrivs och utvärderas verktyget. 4.1 Vad är det? jfcunit är ett verktyg designat för att underlätta testning av GUI:s. Det använder sig av det välkända testframeworket JUnit 4. jfcunit utvidgar JUnit vilket möjliggör för utvecklare som redan är bekanta med JUnit att lätt lära sig att använda jfcunit. Det vanligaste sättet att bygga GUI i java är att använda sig av standardbiblioteket Swing och det är endast mot detta som jfcunit kan användas. Detta för med sig nackedelen att verktyget kan bli begränsad ifall en annan lösning på hur GUI:t ska implementeras genomförs. jfcunit fungerar på följande sätt 1 : Den får tillgång till fönster och dialogfönster som öppnas genom javakod. Identifierar komponenter inom en komponenthiarki. Utför händelser på hittade komponenter, till exempel att det trycks på en knapp eller att text skrivs in i en ruta. jfcunit tillåter även att scripts skrivs i XML som driver testningen. Detta underlättar editeringen av scripts då XML enkelt och lätt kan ändras. jfcunit stödjer också utvecklingsverktyget Eclipse vilket gör det enkelt för användare att integrera verktyget direkt i sin utvecklingsmiljö genom att installera ett plugin.

7 En av de svåraste sakerna att testa är när ett nytt fönster skapas under exekvering. Detta eftersom det är svårt att få tag på det nya fönstret. Det finns ingen metod där det går att få tag på fönstret. Detta löser jfcunit genom att detektera när fönstret skapas i AWTs Event queue. Detta för dock med sig att testet alltid måste startas innan GUI:t då det är omöjligt att få tag på det annars. 4.2 Utvärdering Eftersom GUI-testning kan vara väldigt komplicerat valdes två utvecklare ut som skulle vara ansvariga för testningen. Dessa två fick som spike den första veckan att läsa på vad jfcunit var och hur det installerades. Deras andra spike under iteration 2 var att installera det och skriva något testfall så att de visste att det verkligen fungerade. Detta innebar att de lade ner 8 timmar var på att sätta sig in i hur jfcunit fungerade. Det bidrog även till att ingen tid förlorades på långlaborationerna då detta skulle ha bidragit negativt till projektets utveckling vilket vi ville undvika så långt som möjligt. I figur 1 och 2 går det att se hur det GUI som testades såg ut. Figur 1. Utseende av det grafiska användargränssnitt för registrering som testats av projektgruppen.

8 Figur 2. Utseende av det grafiska användargränssnitt för resultat som testats av projektgruppen. I iteration 3 fick utvecklarna som uppgift att skriva testfall för första gången som testade GUI:t. De första testen som producerades och som var enklast att skriva var att kontrollera om GUIelement existerade. Dessa test kan vara användbara men då det viktigaste i GUI-test är att input till de olika elementen fungerar fick utvecklarna instruktioner att koncentrera sig på test som producerade något. Detta tog länge tid men resultatet var att vi fick en mycket bättre testning. Under den femte iterationen fick projektmedlemmarna fylla i ett formulär, se appendix A, där de skulle utvärdera hur de upplevde jfcunit. Resultaten från denna utvärdering presenteras i nästa avsnitt. 4.3 Resultat av utvärdering De två utvecklarna som hade ansvaret för GUI-testning fick i slutet av projektet svara på en enkät, se Appendix A. Ingen av utvecklarna hade tidigare erfarenheter av att testa GUI:s. Detta innebar att hela konceptet var okänt och de var tvungna att lära sig allt från grunden. Detta bidrog till att det tog längre tid att lära sig hur testarna skulle utföras och hur verktyget fungerade. Eftersom det finns likheter mellan de olika verktygen skulle tidigare erfarenheter ha bidragit till en kortare inlärningstid. Trots detta tyckte utvecklarna att det endast tog 1-3 timmar att lära sig hur jfcunit fungerade vilket indikerar att det är ett lätt verktyg att lära sig under förutsättning att utvecklaren har använt sig utav JUnit tidigare.

9 Svarsalternativ Medelsvar Lätt att sätta sig in i 1 1 3,5 Kan vara användbart i arbetslivet 1 1 3,5 Lättanpassat 2 3 Lättintegrerbart med Eclipse och JUnit Verktyget underlättade utvecklingen av projektet 1 1 4,5 2 2 Kommer använda det igen 1 1 2,5 Tabell 1. Visar hur många personer som kryssat för respektive val i varje fråga. 1 = Stämmer inte alls, 2 = Stämmer inte, 3 = Stämmer något, 4 = Stämmer bra, 5 = Stämmer mycket bra. Sista kolumnen visar medelsvaret hos deltagarna. Svarsalternativ Medelsvar Hur viktigt tycker du det är att testa GUI vid programvaruutveckling? 1 1 2,5 Tabell 2. Visar hur många personer som kryssat för respektive val i den aktuella frågan. 1 = Mycket onödigt, 2 = Ganska onödigt, 3 = Ganska viktigt, 4 = Mycket viktigt. Sista kolumnen visar medelsvaret hos deltagarna. I Tabell 1 går det att utläsa resultaten från en del av svaren på frågeformuläret. På frågorna om vad de tyckte om jfcunit hade de ett positivt intryck utav verktyget. De tyckte att det var lättanpassat och att det integrerade på ett bra sätt med Eclipse och JUnit. De tror även att det kan vara användbart att kunna använda sig av jfcunit i arbetslivet. På frågan om de tyckte att verktyget underlättade vid utvecklingen av projektet var svaren inte så positiva. Båda angav att det knappt hjälpte alls vilket troligtvis beror på att det GUI som tas fram i projektet är en väldigt liten del av projektet. De var inte så positiva till om de kommer använda sig av jfcunit igen. Den frågan där svaren skiljer sig åt är hur viktigt de tycker att GUI-testning är. Detta visas i tabell 2. En tycker att det är ganska viktigt medans den andra tycker att det är ganska onödigt. En trolig anledningen till att de inte är helt positiva till detta är att de var tvungna att använda sig utav verktyget i ett projekt där det inte är speciellt viktigt att testa GUI:t. Det är möjligt att de skulle haft mer positiva omdömen om de först skulle ha introducerats till jfcunit i ett projekt där GUI:t är en mycket större del av utvecklingen.

10 4.3.2 Kommentarer från andra utvecklare Att det endast var två utvecklare som hade hand om GUI-testningen innebar inte att de andra utvecklarna inte kom i kontakt med testningen. Det var endast de ansvariga som skrev tester men övriga teammedlemmar interagerade också med testerna under utvecklingen. Under projektets gång så hade de diverse kommentarer på vad de tyckte om GUI-testningen och de kommentarerna redovisas här. I början av projektet upplevde de flesta utvecklarna att GUI-testningen endast hindrade dem från att effektivt kunna utveckla projektet. Då de tidiga testerna endast testade om element fanns i GUI:t tyckte de inte att testerna tillförde något. När de mer avancerade testerna togs fram i slutet av projektet, som faktiskt testade att sätta in värden i GUI:t och testa att de kom in korrekt, så ändrades kommentarerna till att vara lite mer positiva. De mest negativa kommentarerna om testerna var att det tog för lång tid att köra igenom dem vilket ledde till att testerna inte kördes så ofta. Detta är naturligtvis inte så bra då XP går ut på att det ska testas ofta. De tyckte också att det gick snabbare att testa GUI:t manuellt än att köra igenom testerna. En viktig aspekt att ta i beaktning är hårdvarans roll i dessa negativa åsikter. De datorer som projektutvecklingen sker på är inte så bra vilket är anledningen till att testerna tar så lång tid att köra igenom. Om alla GUI-testerna körs på en snabb dator går det betydligt snabbare att köra igenom dem vilket gör att det inte är några problem att GUI-testa. Alltså kan slutsatsen dras att hårdvaran är en av de stora anledningarna till att utvecklingsgruppen hade mestadels negativa kommentarer om jfcunit. 5. Abbot Detta avsnitt kommer behandla Abbot och den tillhörande texteditorn Costello. Tillsammans utgör de ett kraftfullt verktyg för att automatisera GUI-testning. 5.1 Vad är det? Abbot är ett verktyg för att automatisera testningen av användargränssnitt för programvara skriven i programspråket Java. Tillsammans med editorn Costello möjliggör det att både skriva programkod och spela in användarhändelser för att förenkla testning av GUI 7. Verktyget innebär bland annat att GUI-testen kan skrivas innan själva koden för GUI:t vilket gör att det passar bra vid testdriven utveckling. Detta beror på verktygets sätt att identifiera komponenter i gränssnittet. Eftersom Abbot stöder både inspelning/uppspelnings-metoden och programmeringsmetoden för att skapa tester till GUI:t kan verktyget användas på två olika sätt. Dels kan Costello spela in händelser och spara i script och dels kan tester liknande de i JUnit skrivas i ren kod. Om Costello används sparas inte händelserna utifrån var på skärmen musen befinner sig vilket hade gjort att testet misslyckats om små ändringar i GUI:t hade gjorts. Istället identifieras

11 komponenter på skärmen genom flertalet dynamiska attribut så att testen i största möjliga mån ska klara av att hantera ändringar. Om programmeringsmetoden används skrivs tester på samma sätt som JUnit-tester skrivs, men det finns en speciell API för Abbot och det är detta som gör verktyget så kraftfullt 9. Abbot står för A Better Bot och grundstenen i verktyget är komponenten Robot som simulerar händelser och tillhandahåller en mer abstrakt nivå för inmatning. 5.2 Utvärdering Eftersom det ingick så kallade spikes i projektet på fyra timmar per projektmedlem varje vecka utnyttjades denna tiden till att få en del av projektmedlemmarna insatta i Abbot och dess miljö. Under projektets första vecka tilldelades fyra projektmedlemmar uppgifter där de skulle svara på frågorna Vad är Abbot? och Hur installerar man det?. Veckan efter fick fyra projektmedlemmar (två som haft Abbot-spike veckan innan och två som inte haft det) spikes där de skulle svara på frågan Hur använder man Abbot?. Alla i projektgruppen fick även till uppgift att läsa på om det som skrivits om Abbot av medlemmarna under respektive spike. Under den tredje iterationen utvecklades testfall för att testa det grafiska användargränssnittet genom att använda Abbot. Även om inte alla medlemmar deltog i utvecklingen fick alla i uppgift att sätta sig in i hur framställningen av testfall fungerar och i den kod som faktiskt resulterat från iterationen. Denna kod var inte på någon högt avancerad nivå då själva gränssnittet inte var komplext. I figur 1 visas det testade gränssnittet. Under den femte iterationen fick projektmedlemmarna fylla i ett formulär, se appendix A, där de skulle utvärdera hur de upplevde Abbot. Resultaten från denna utvärdering presenteras i nästa avsnitt. Figur 3. Utseende av det grafiska användargränssnitt som testats av projektgruppen.

12 5.3 Resultat av utvärdering Ingen som svarade på enkäten hade tidigare använt ett verktyg som testar användargränssnitt. 80 % av projektmedlemmarna uppskattade att det tog mellan två och tre timmar att sätta sig in i Abbot, resterande del ansåg att det tog tre till sex timmar. I denna tiden ingick nedladdningstid, installationstid samt inläsningstid för att kunna skapa ett lyckat test i programmet. I tabell 3 visas svaren på vissa av de påståenden som besvarades i utvärderingen. Där går det att se att alla åtta projektmedlemmar svarat på varje påstående och att medelbetyget för Abbot inte är överväldigande högt. Det som fått lägst medelpoäng är Kommer använda det igen. En anledning till att projektdeltagarna tror att de inte kommer använda verktyget igen kan vara att de inte uppskattade alla komponenter som ingår och att de tror att andra, bättre verktyg finns på marknaden. En annan anledning kan vara att de tycker GUI-testning inte är en av de viktigaste punkterna vid programvaruutveckling, vilket går att se i tabell 4 där deras svar ligger lite under alternativet Ganska viktigt. Tabell 3 visar även ett lågt medelsvar för påståendet Verktyget underlättade utvecklingen av projektet. Efter efterforskningar till varför denna siffra var så låg framkom det att då testfallen endast testade delar av funktionaliteten hos GUI:t ansågs det inte riktigt vara värt den arbetsinsats som behövdes läggas för att skapa testen. De delar av GUI:t som inte testades borde enligt projektdeltagarna ha testats men detta ansågs vara för avancerat och gjordes därför inte. Svarsalternativ Medelsvar Lätt att sätta sig in i ,9 Kan vara användbart i arbetslivet ,9 Lättanpassat Lättintegrerbart med Eclipse och JUnit Verktyget underlättade utvecklingen av projektet ,6 Kommer använda det igen ,5 Tabell 3. Visar hur många personer som kryssat för respektive val i varje fråga. 1 = Stämmer inte alls, 2 = Stämmer inte, 3 = Stämmer något, 4 = Stämmer bra, 5 = Stämmer mycket bra. Sista kolumnen visar medelsvaret hos deltagarna.

13 Svarsalternativ Medelsvar Hur viktigt tycker du det är att testa GUI vid programvaruutveckling? ,9 Tabell 4. Visar hur många personer som kryssat för respektive val i den aktuella frågan. 1 = Mycket onödigt, 2 = Ganska onödigt, 3 = Ganska viktigt, 4 = Mycket viktigt. Sista kolumnen visar medelsvaret hos deltagarna. Från de fria kommentarerna hos projektmedlemmarna går det att dra slutsatsen att den del av Abbot som fungerade sämst under projektet var scripteditorn Costello. Denna ansågs ha buggar, dåliga felmeddelanden och ett icke användavänligt gränssnitt. Troligtvis har detta påverkat helhetsintrycket av verktyget. En annan aspekt som troligtvis har påverkat gruppens intryck av Abbot var att testen utvecklades efter GUI:t. En av Abbots styrkor är att GUI-testen med fördel kan utvecklas innan själva GUI:t men då detta inte skedde i projektet fick gruppen aldrig uppleva denna fördel. 6. Framtiden Eftersom grafiska användargränssnitt inte fanns i samma utsträckning för några årtionden sedan, är testningen av sådana något som är relativt nytt. Speciellt är verktyg för automatisering av GUI-test något som fortfarande håller på att utvecklas och därför kommer antagligen fler och mer omfattande verktyg dyka upp på marknaden i framtiden. Vi förutspår även att framtiden för med sig mer automatisering under testningsprocessen. Idag är det mycket fokus på bland annat inspelning/uppspelnings-metoder 6 men det finns redan idag program som försöker skapa testfall utifrån kod eller andra artefakter 11. Dessa kommer antagligen utvecklas ytterligare och på så sätt snabba upp testningen ännu mer. Vi kan inte tänka oss att testningen av GUI kommer upphöra i framtiden, eller att betydelsen av användargränssnitt kommer minska. Snarare tror vi på att GUI får en ännu viktigare roll i konsumentprodukter. Vi tror på en intressant och händelserik framtid för automatiserad GUItestning. 7. Slutsats Utvärderingen av GUI-testningsverktyg genomfördes på två olika sätt av utvecklingsgrupperna. I teamet som utvärderade jfcunit fick två utvecklare ansvaret för att lära sig verktyget och skriva testerna. I det andra teamet fick hela gruppen ett gemensamt ansvar och alla var tvungna att lära sig att skriva GUI-test. Den stora fördelen med att hela utvecklingsgruppen fick lära sig testverktyget var att det var möjligt att få ett mycket större antal svar på enkäten i slutet vilket bidrog till att det gick att utläsa ett mycket mer tillförlitligt svar på frågorna än när bara två utvecklare svarade på den som i jfcunit fallet. Anledningen till de olika utvärderingssätten var att de två projektgrupperna hade olika kunder som de levererade produkten till och dessa kunder ställde olika krav. I projektgruppen som utvärderade Abbot var kunden beredd att betala för

14 att få stabilitet i GUI:t och därmed beredd att betala för GUI-testen medan kunden i den andra gruppen inte betalade för denna aktivitet. Från enkätsvaren går det också att se att det verkar som att Abbot är svårare att lära sig att använda än vad jfcunit är. Tre stycken av utvecklarna som använde sig av Abbot tyckte att det var svårt att sätta sig in i, medans de två utvecklarna som använde jfcunit tyckte det var rätt så lätt att sätta sig in i verktyget. Anledningen till denna skillnad mellan verktygen kan bero på att de två utvalda projektmedlemmarna som testade jfcunit var mer intresserade av testning då de självmant tog på sig uppgiften att utvärdera verktyget. Av utvärderingsenkäten går det att dra några gemensamma slutsatser om GUI-testning. Intressant att notera är att ingen av projektgrupperna tyckte att testerna hjälpte speciellt mycket i projektet. Detta är sannolikt inte en kommentar om testningen i allmänhet utan beror troligare på projektens utformning och dess avsaknad av ett omfattande GUI i utvecklingsarbetet. Förhoppningen var från början att en rekommendation skulle kunna göras gällande vilket verktyg som var att föredra, men detta har visat sig vara svårt. De båda verktygen har sina egna för- och nackdelar vilket leder till att en tydlig rekommendation inte går att ge. Fördelen med jfcunit är att testerna skrivs som vanliga JUnit-test vilket innebär att en utvecklare som har använt sig av JUnit tidigare inte kommer att ha några stora problem med att börja använda sig av jfcunit. Abbots stora fördel är tillgången till scripteditorn Costello där testfallen kan spelas in och sedan modifieras genom att förändra den genererade koden. Tyvärr ansågs denna fördel också vara den största nackdelen med verktyget och därför är det svårt att rekommendera det för framtida projekt. För att kunna göra en rekommendation av ett verktyg på ett korrekt sätt skulle utvärderingen haft ett annat tillvägagångssätt. Hade båda projektgrupperna fått utvärdera båda verktygen kunde en mer korrekt jämförelse gjorts och respektive verktygs för- och nackdelar hade varit tydligare. Tyvärr valdes inte detta förfarande då författande ansåg detta ta för mycket tid från de två projekten. I kommande projekt som liknar de som presenterats här rekommenderas det att använda ett testningsverktyg som använder sig av inspelnings/uppspelnings-metoden. Detta därför att utseendet på det grafiska användargränssnittet inte förändras i så stor utsträckning och om det förändras kan ett nytt testfall spelas in och det gamla kasseras. Troligtvis kommer detta minska projektets kostnader jämfört med om tid läggs ned på att skapa dynamiska och avancerade tester genom hela projektet.

15 Referenser 1 Caswell, Matt; Aravamudhan, Vijay; Wilson, Kevin; Introduction to jfcunit; 2004; hämtad Wall, Timothy; Getting Started with the Abbot Java GUI Test Framework; 2008; hämtad Kursplan: Programvaruutveckling i grupp - projekt; hämtad hämtad Gerrard, Paul; Testing GUI Applications; EuroSTAR; Ruiz, Alex; Price, Yvonne Wang; GUI Testing Made Easy; Testing: Academic&Industrial Conference - Practice and Research Techniques, pages ; Ruiz, Alex; Price, Yvonne Wang; Test-Driven GUI Development with TestNG and Abbot; Oracle Corp., Redwood Shores, CA, USA; Li, Kanglin; Wu, Mengqi; Effective GUI Test Automation: Developing an Automated GUI Testing Tool, Chapter 2; SYBEX Inc., Alameda, CA, USA; hämtad hämtad GUITAR - A GUI Testing Framework; hämtad fest - Fixtures for Easy Software Testing; hämtad Squish - The cross-platform GUI test automation tool; hämtad

16 Appendix A: Frågeformulär

Visuell GUI Testning

Visuell GUI Testning Visuell GUI Testning Vad är ett Graphical User Interface (GUI)? Icke-animerat GUI Animerat GUI Nuläget System- och acceptanstestning är dyrt! Manuellt Långsamt Enformigt Svårt att replikera exakt Nödvändigt

Läs mer

Creo Customization. Lars Björs 2014-10-16

Creo Customization. Lars Björs 2014-10-16 Creo Customization Lars Björs 2014-10-16 Norra Europas största partner och återförsäljare av PTC relaterad programvara (Windchill, Creo, Arbortext, MathCad, Relex) 70 anställda Egen utvecklingsavdelning

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java jonas.kvarnstrom@liu.se 2017 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Till stor del ersatt av Swing: Mer omfattande,

Läs mer

Proj-Iteration1. Arkitektur alt. 1

Proj-Iteration1. Arkitektur alt. 1 Proj-Iteration1 PVG/Coaching Boris Magnusson Datavetenskap LTH Proj-Iter1-1 Registrering Registrering Arkitektur alt. 1 Personuppgifter Starttid Sorterare Måltid Efterbehandling Resultat Tre program som

Läs mer

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets GUI (forts) Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets Sven-Olof Nyström Uppsala Universitet 18 mars 2005 Skansholm: Kapitel 6 Användaren kan kommunicera med programmet

Läs mer

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll En allmän inledning Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Komponenter i Calligra.................................. 5 1.2 Översikt över funktioner i

Läs mer

Verktyget FindBugs. Djupstudie i kursen EDA 270 Coachning av programvaruteam. Christofer Bach dt05cb6 Daniel Nilsson dt05dn4. Lunds Tekniska Högskola

Verktyget FindBugs. Djupstudie i kursen EDA 270 Coachning av programvaruteam. Christofer Bach dt05cb6 Daniel Nilsson dt05dn4. Lunds Tekniska Högskola Verktyget FindBugs Djupstudie i kursen EDA 270 Coachning av programvaruteam Christofer Bach dt05cb6 Daniel Nilsson dt05dn4 Lunds Tekniska Högskola 15 feb 08 1. Sammanfattning Denna djupstudie kommer att

Läs mer

Testplan Cykelgarage

Testplan Cykelgarage Testplan Cykelgarage Stefan Johansson D08 (dt08sj7@student.lth.se) Johan Anderholm D08 (dt08ja5@student.lth.se) Angelica Gabasio D08 (dt08ag8@student.lth.se) Marcus Carlberg D08 (dt08mc4@student.lth.se)

Läs mer

Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu. Mina listor En Android-applikation Rickard Karlsson 2013-06-09 Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.se Innehållsförteckning 2. Innehållsförteckning 3. Abstrakt 4. Inledning/bakgrund

Läs mer

Filhanterare med AngularJS

Filhanterare med AngularJS Filhanterare med AngularJS Författare: Filip Johansson Peter Emilsson Oskar Georgsson Christian Nilsson Datum: 2014-03-26 1 Sammanfattning Filhanterare med AngularJS är en filhanterare skapad för Sigma

Läs mer

PH Bicycle Storage 8000 Testplan

PH Bicycle Storage 8000 Testplan PH Bicycle Storage 8000 Testplan Projektdeltagare: Mattias Nordahl (dt07mn0@student.lth.se) Hannes Nevalainen (dt07hn2@student.lth.se) Daniel Olofsson (dt07do1@student.lth.se) Fredrik Andersson (dt07fa5@student.lth.se)

Läs mer

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI NG STRESS LUNDS TEKNISKA HÖGSKOLA - 2013-05-22 Projektmedlemmar: Emil Apelgren adi10eap@student.lu.se Fredrik Helander gda10fhe@student.lu.se Jonathan Klingberg

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har

Läs mer

Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning

Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning Idrottsapen Slutrapport för projektet Idrottsappen. Projekttitel: Idrottsappen Uppdragstagaren: Sandklef GNU Labs, 710413-5137 1. Inledning Under samtal med olika aktiva personer inom olika idrotter framkom

Läs mer

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se

Läs mer

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg Datavetenskap Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg Oppositionsrapport, C-nivå 2006:12 1 Sammanfattat omdöme av examensarbetet Examensarbetet är intressant eftersom

Läs mer

Automatiserad testning av GUI

Automatiserad testning av GUI Automatiserad testning av GUI Mehmet Fatih Cicek (ada10mci@student.lu.se) Farhad Johari (ada10fjo@student.lu.se) 4/3 2014 Abstrakt Den här rapporten är en del av kursen Coaching av programvaruteam (EDA270)

Läs mer

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2) 1 Instruktioner Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 2. Logga in (SIDA 2) 3. Hem (SIDA 2) 4. Skapa/redigera sidor (SIDA 3) 41. Lägg till ny sida (SIDA 3) 42. Avancerat (SIDA 4) 5. Texteditor (SIDA

Läs mer

Enhetstester på.netplattformen

Enhetstester på.netplattformen Enhetstester på.netplattformen Praktikfall ur verkligheten Copyright Prolore 2007. All Rights Reserved. Viktor Laszlo Vem är jag 11 år inom test Prolore: specialiserat på Testautomatisering, Prestandatest

Läs mer

Universe Engine Rapport

Universe Engine Rapport 1 Universe Engine Rapport Alexander Mennborg 2017-05-08 2 Inledning I denna rapport diskuteras utvecklingsprocessen till projektet Universe Engine. Denna diskussion omfattar hela utveckling från starten

Läs mer

Installationsbeskrivning för CAB Service Platform med CABInstall

Installationsbeskrivning för CAB Service Platform med CABInstall Installationsbeskrivning för CAB Service Platform med CABInstall INLEDNING... 2 INSTALLATION... 3 AVANCERAD INSTALLATION... 10 YTTERLIGARE INFORMATION... 11 Proxy... 11 Sida 1 av 12 Inledning Denna beskrivning

Läs mer

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,

Läs mer

F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH

F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH F9 del B Organisatoriskt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH 1 Projektet - moment Projektstartsmöte 6 Iterationer (en per vecka) - 10-12 team - 12-14 personer

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015 Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation

Läs mer

Webservice & ERP-Integration Rapport

Webservice & ERP-Integration Rapport Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...

Läs mer

A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices

A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices Mattias Jarheden och Thomas Forsström Sammanfattning Denna djupstudie försöker ge en inblick

Läs mer

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund gussk258@student.liu.se. Marcus Widblom marwi026@student.liu.se. Senast ändrad: 13 / 05 / 08

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund gussk258@student.liu.se. Marcus Widblom marwi026@student.liu.se. Senast ändrad: 13 / 05 / 08 JavaRats Kravspecifikation Version 1.1 Gustav Skoglund gussk258@student.liu.se Marcus Widblom marwi026@student.liu.se Senast ändrad: 13 / 05 / 08 Sammanfattning Kravspecifikationen för JavaRats har skrivit

Läs mer

Några grundläggande begrepp

Några grundläggande begrepp Några grundläggande begrepp Validering bygger vi rätt system? Uppfyller kravspecifikationen de verkliga behoven? Verifiering bygger vi systemet rätt? Uppfyller det färdiga systemet kravspecifikationen?

Läs mer

Windows Forms Winstrand Development

Windows Forms Winstrand Development 2013-01-23 1 Winstrand Development Användargränssnitt Hittills har vi skapat program för kommandoraden. Den bakomliggande koden fungerar som den ska, men vi upptäcker snabbt att programmen är begränsade

Läs mer

Fyra i rad Javaprojekt inom TDDC32

Fyra i rad Javaprojekt inom TDDC32 Fyra i rad Javaprojekt inom TDDC32 Analys och design-dokument Version 2.0 Datum 2008-05-19 Dokumentnummer 20080303 Sammanfattning Detta är analys och design-dokumentet för programmet Fyra i rad. Fyra i

Läs mer

SLUTRAPPORT WEBBPROJEKT 1

SLUTRAPPORT WEBBPROJEKT 1 SLUTRAPPORT WEBBPROJEKT 1 Kostregistrering 30 mars 2012 Webbprojekt 1 1DV411 Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Ella Källman - ella@kallman.se Martin Kuoppa - martin@duofy.com

Läs mer

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

SCRUM. Marcus Bendtsen Institutionen för datavetenskap SCRUM Marcus Bendtsen Institutionen för datavetenskap 2 Metodik Systematiskt tillvägagångssätt för att garantera utfallet Metodiken behöver passa kontexten och tillgängliga resurser Verifiering av metodiken

Läs mer

Introduktion. Skriv in användarnamn och lösenord

Introduktion. Skriv in användarnamn och lösenord LATHUND Introduktion Välkommen till vår interaktiva kursportal. Detta är en lathund för dig som ska utbilda dig med hjälp av ipoint-kurser. Instruktionerna gäller när du har Internet Explorer med Windows

Läs mer

Innehålls förteckning

Innehålls förteckning Programmering Uppsats i skrivteknik Axxell Företagsekonomi i informationsteknik 19.3.2015 Respondent: Tomas Björklöf Opponent: Theo Wahlström Handledare: Katarina Wikström Innehålls förteckning 1. Inledning...3

Läs mer

ALEPH ver. 16 Introduktion

ALEPH ver. 16 Introduktion Fujitsu, Westmansgatan 47, 582 16 Linköping INNEHÅLLSFÖRTECKNING 1. SKRIVBORDET... 1 2. FLYTTA RUNT M.M.... 2 3. LOGGA IN... 3 4. VAL AV DATABAS... 4 5. STORLEK PÅ RUTORNA... 5 6. NAVIGATIONSRUTA NAVIGATIONSTRÄD...

Läs mer

Guide för Innehållsleverantörer

Guide för Innehållsleverantörer Library of Labs Content Provider s Guide Guide för Innehållsleverantörer Inom LiLa ramverket är innehållsleverantörer ansvariga för att skapa experiment som "LiLa Learning Objects", att ladda upp dessa

Läs mer

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum Författare: Juha Söderqvist IT-GUI Version 1.0 Datum 2017-08-18 Innehåll 1. Introduktion... 3 Human-computer interaction... 3 Grafiska användargränssnitt... 4 Operativsystem... 4 Xerox Alto Executive file

Läs mer

Manual för din hemsida

Manual för din hemsida Manual för din hemsida Dynamiska hemsidor är en lösning för att man på ett enkelt sätt skall kunna lägga till, ändra och ta bort sidor på sin hemsida. För att detta skall vara möjligt bygger lösningen

Läs mer

Projektuppgift: Kalender Martin Hultman 840813 marhu002 Patrik Karlsson 840320 patka843

Projektuppgift: Kalender Martin Hultman 840813 marhu002 Patrik Karlsson 840320 patka843 TNM065 Dokumentstrukturer Projektuppgift: Kalender Martin Hultman 840813 marhu002 Patrik Karlsson 840320 patka843 Innehållsförteckning Inledning... 3 Användningsområdet för systemet... 4 Köranvisning...

Läs mer

Testautomatisering. Intro

Testautomatisering. Intro Testautomatisering FM: Presentation Genomgång av Kursplan / Kursupplägg Varför testautomatisering? Video + diskussion Idag David Gullmarsvik david.g@jetas.se Software Developer Tidigare Lärare KYH, TI

Läs mer

Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca

Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca System vi undersökte Den system vi valde att undersöka var en av de senaste smart tv som finns i markanden och var nämnd till bästa

Läs mer

Kom igång med TIS-Office

Kom igång med TIS-Office Kom igång med TIS-Office Denna guide hjälper dig att komma igång med TIS-Office, mer information om hur man använder programmet finns i manualer på TIS-Office CD-skivan och i den inbyggda hjälpfunktionen

Läs mer

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS Individuellt Mjukvaruutvecklingsprojekt (Utvecklare av digitala tjänster) Den 1 juni 2011 ABSTRAKT Rapporten tar upp positiva och negativa erfarenheter som jag erhållit

Läs mer

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson Rapport grupp 4 Software Engineering Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson 2009-10-29 Processer Sprinter Scrum har varit till stor hjälp för oss för att nå våra mål,

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

Programmering. Scratch - grundövningar

Programmering. Scratch - grundövningar Programmering Scratch - grundövningar Lär känna programmet: Menyer för att växla mellan att arbeta med script, utseende/bakgrund och ljud. Scenen där allting utspelar sig. Här klickar du på bakgrunden

Läs mer

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Model View Controller Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Model View Controller Model View Controller (MVC) är ett design pattern (architectural pattern) som är väldigt

Läs mer

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Verktyg och Utvecklingsmiljö. Jochim von Hacht Verktyg och Utvecklingsmiljö Jochim von Hacht Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg Editorer Kompilatorer Avlusare (debugger) Versionhantering (kommer i projektkurs)

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Mobilanpassning

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Mobilanpassning Avancerade Webbteknologier 2 AD11g Göteborg 2012 Mobilanpassning Idag Reality Check Strategier för mobilanpassning Problem vid mobilanpassning Exempel på några ramverk Statistik Det finns väldigt mycket

Läs mer

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse Verktyg och Utvecklingsmiljö Föreläsning 2 Eclipse Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg. Editorer Kompilatorer Avlusare(debugger) Versionshantering(kommer i

Läs mer

Beskrivning av gesällprov RMI Chat Mikael Rydmark

Beskrivning av gesällprov RMI Chat Mikael Rydmark Beskrivning av gesällprov RMI Chat Mikael Rydmark rydmark@kth.se Mikael Rydmark 1(8) 12-06-06 Innehållsförteckning Inledning...3 Server...3 Klient... 3 Ansluta till servern...3 Huvudchat...4 Privat kommunikation...5

Läs mer

Kom igång med LUPP 6.1

Kom igång med LUPP 6.1 Kom igång med LUPP 6.1 Introduktion... 3 Installation... 7 Logga in... 9 Skapa användare... 11 Lägg in organisation, stationer och enheter... 13 Öppna Verksamhetsöversikten... 15 Hjälp i LUPP... 17 1 1.

Läs mer

Mattekungen åk 6-9 vers. 1.0

Mattekungen åk 6-9 vers. 1.0 Presentation av programvara våren 2008 Bodil Holmström Anna Holmström Bearbetat av Karolina Höglund Mattekungen åk 6-9 vers. 1.0 Allmänt om programmet Mattekungen är ett undervisningsprogram som produceras

Läs mer

Laboration i datateknik

Laboration i datateknik KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Programmering av LEGO-robot Rickard Eriksson 2012-09-06 rieri@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Denna rapport är till följd

Läs mer

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 2.0.1 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. * Filen MP.exe (Mobilus programmet) får inte användas* under tiden uppdateringen

Läs mer

30 år av erfarenhet och branschexperts

30 år av erfarenhet och branschexperts 30 år av erfarenhet och branschexperts Integrerad Säkerhet Integrerad Säkerhet Varför överordnat system Användarvänlighet Kvalitet Trygghet Kostnadseffektivitet Varför ett överordnat system? Med stora

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet.

Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet. Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet. Då du klickar på Användare öppnas denna bläddringslista.

Läs mer

1 Kravspecifikation Snake App

1 Kravspecifikation Snake App Kravspecifikation Snake App - Kravspecifikation Snake App Utskriven/PDF Export: 2011-09-07 Copyright 2011 Sidan 1 av 7 1 Kravspecifikation Snake App 1.1 Vad är Snake App? Vi skall gör ett Snake Spel för

Läs mer

Bakgrund. Genomförande

Bakgrund. Genomförande Datorprogrammet BioMolCraft hjälper studenter till en interaktiv inlärning av cellulära processer Bakgrund Syftet med projektet var att utveckla en mjukvara för interaktiv inlärning av cellulära processer

Läs mer

Metoder och verktyg för funktionssäkerhet

Metoder och verktyg för funktionssäkerhet Metoder och verktyg för funktionssäkerhet Projektstart 1. Hantera kraven En bra process är grunden för att hantera kraven i ett säkerhetsprojekt. Det krävs att du har en tydlig spårbarhet mellan krav och

Läs mer

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning PMM (Process Maturity Metrics) PMM är en metod för att mäta processmognad i utvecklingsprojekt. I korthet går metoden ut på att man utvärderar sin utvecklingsprocess med avseende på ett antal framgångsfaktorer

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt. Kom igång Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.se/login Nu dyker en ruta upp på skärmen. Fyll i ditt användarnamn och lösenord och klicka på "logga in". Nu

Läs mer

KUNGLIGA TEKNISKA HÖGSKOLAN. Laboration II1310. Programmera Lego Mindstorm robot i NXC

KUNGLIGA TEKNISKA HÖGSKOLAN. Laboration II1310. Programmera Lego Mindstorm robot i NXC KUNGLIGA TEKNISKA HÖGSKOLAN Laboration II1310 Programmera Lego Mindstorm robot i NXC Johnny Vu 120904 Jvu@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Vi har genomfört en laboration för

Läs mer

Validering av XML, Svensk geoprocess Guide för validering av XML, Svensk Geoprocess

Validering av XML, Svensk geoprocess Guide för validering av XML, Svensk Geoprocess 2017-06-21 Validering av XML, Svensk geoprocess Guide för validering av XML, Svensk Geoprocess Validering av XML, Svensk geoprocess Bakgrund Ett behov finns av att kunna kontrollera och validera XML-filer

Läs mer

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips Lab1 Introduktion Förberedelse för planetlabben genom att kapsla in (skapa wrappers) systemanrop. 1 Syfte Få en känsla av hur Win32API fungerar, dvs programmerarens interface gentemot Windows. Känsla för

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

Studentmanual. 2013-08-09 (Bb Learn 9.1.13) iktsupport@oru.se

Studentmanual. 2013-08-09 (Bb Learn 9.1.13) iktsupport@oru.se Studentmanual Inledning... 1 Krav på dator och rekommenderade webbläsare... 1 Support och stöd... 1 Översikt... 1 Logga in i Blackboard... 1 Navigeringsmenyn... 2 Fliken Min Blackboard... 2 Struktur inne

Läs mer

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

Läs mer

Preliminär specifikation av projekt

Preliminär specifikation av projekt Preliminär specifikation av projekt Projektets namn: Infraröd Minneslåda (numera omdöpt till FastSync) Uppdragsgivare: Alex Olwal aolwal@cs.columbia.edu Deltagare: Johan Ullberg Nils

Läs mer

Vad utmärker ett bra användargränssnitt?

Vad utmärker ett bra användargränssnitt? Vad utmärker ett bra användargränssnitt? Att kommunicera med användarna Feedback och Pliancy Excise kontra Flow GUI = Graphic User Interface GUI = Graphic User Interface GUIn, eller grafiska gränssnitt

Läs mer

Kravspecifikation. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status

Kravspecifikation. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status 2006-02-02 Kravspecifikation Version.0 Status Granskad Godkänd Bilder och grafik projektkurs, CDIO MCIV LIPs 2006-02-02 PROJEKTIDENTITET MCIV 2006 VT Linköpings Tekniska Högskola, CVL Namn Ansvar Telefon

Läs mer

Inlämningsuppgifter, EDAF30, 2015

Inlämningsuppgifter, EDAF30, 2015 LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Programmering i C++ Inlämningsuppgifter, EDAF30, 2015 Det finns två deluppgifter som båda ska lösas: 1. skriv ett program för att hantera bankkonton

Läs mer

Gränssnitt för FakeGranska. Lars Mattsson

Gränssnitt för FakeGranska. Lars Mattsson Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken

Läs mer

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

emopluppen Användning av Ant Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC) emopluppen Användning av "Ant" Version: 1.4 ( 2002/04/26 07:27:52 UTC) Niklas Backlund Sammanfattning Det här dokumentet handlar om programmet Ant, som är en byggmiljö för programutvecklingsprojekt. Dess

Läs mer

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till?

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till? 1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till? Att lära sig via metaforer innebär att man drar nytta av kunskap som användaren redan har,

Läs mer

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall Sammanfattning I denna rapport behandlas ett projekt inom kursen Digitala Projekt, EITF11, vid Lunds Tekniska högskola. Syftet med projektet är att konstruera en enkel digital prototyp samt programmera

Läs mer

Introduktion till programmering med hjälp av Lego Mindstorm

Introduktion till programmering med hjälp av Lego Mindstorm Kungliga Tekniska Högskolan Introduktion till programmering med hjälp av Lego Mindstorm Laborationsrapport gällande programmering inom NXC Simon Jansson 31 08 2014 simonjan@kth.se Introduktionskurs i datateknik

Läs mer

extensible Markup Language

extensible Markup Language Datavetenskap Opponenter: Björn Olsson Andreas Svensson Respondenter: Sanaa Al-abuhalje Afrah Al-abuhalje XML extensible Markup Language Oppositionsrapport, C-nivå 2007:06 1 Sammanfattat omdöme av examensarbetet

Läs mer

Introduktionsmanual till Design- / Utvecklarmodulen

Introduktionsmanual till Design- / Utvecklarmodulen Introduktionsmanual till Design- / Utvecklarmodulen Redigera utskriftslayouter och fönsterdesignen I den senaste versionen av System Bokhållaren (från ver 4.6 och senare), finns en helt ny avancerad funktion,

Läs mer

Praktikum i programvaruproduktion

Praktikum i programvaruproduktion Praktikum i programvaruproduktion Introduktion Föreläsare/Ansvarig: Pontus Boström Email:pontus.bostrom@abo.fi Rum A5055 Assistent: Petter Sandvik Email: petter.sandvik@abo.fi Rum: A5048 Föreläsningar:

Läs mer

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt Design och konstruktion av grafiska gränssnitt Armin Nezirevic Peter Börjesson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Idag Vad utmärker ett bra användargränssnitt? Kort kursinfo

Läs mer

Artologik Survey&Report. Nya funktioner, oktober 2016

Artologik Survey&Report. Nya funktioner, oktober 2016 Artologik Survey&Report Nya funktioner, oktober 2016 1 Innehållsförteckning Enkäter... 3 Använd avvikande tema för enskilda frågor i enkäten... 3 Öppna svarsenkäten som matchar en viss fritext... 3 Rapporter...

Läs mer

EDAA01 Programmeringsteknik - fördjupningskurs

EDAA01 Programmeringsteknik - fördjupningskurs EDAA01 Programmeringsteknik - fördjupningskurs Läsperiod lp 1+2 (Ges även lp 3) 7.5 hp anna.axelsson@cs.lth.se sandra.nilsson@cs.lth.se http://cs.lth.se/edaa01ht Förkunskapskrav: Godkänd på obligatoriska

Läs mer

12 principer of agile practice (rörlig)

12 principer of agile practice (rörlig) X-treme programming 12 principer of agile practice (rörlig) Ge nöjd kund genom tidig och kontinuerliga leveranser Den viktigaste punkten som betyder att min vill ha kontinuerlig feedback Välkomna sena

Läs mer

Widgetguiden Vad är Publits widgetshop?

Widgetguiden Vad är Publits widgetshop? Widgetguiden Den här guiden är till för dig som vill använda Publits widgetshop för att enkelt sälja böcker direkt på din egen hemsida, blog eller Facebook. Här går vi steg för steg igenom processen för

Läs mer

JAVAUTVECKLING LEKTION 1

JAVAUTVECKLING LEKTION 1 JAVAUTVECKLING LEKTION 1 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Introduktion till kursen Java historik och särdrag Javautvecklarens yrkesroll Installation och konfiguration

Läs mer

Handbok Förstoringsglaset. Sarang Lakare Olaf Schmidt Översättare: Stefan Asserhäll

Handbok Förstoringsglaset. Sarang Lakare Olaf Schmidt Översättare: Stefan Asserhäll Sarang Lakare Olaf Schmidt Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 6 2 Att använda Förstoringsglaset 7 2.1 Ändra del av skärmen som ska förstoras......................... 7 2.2 Fler funktioner

Läs mer

Utfärdat av Revideringsdatum Dokument ID Håkan Tropp Systembeskrivning_Kursinfo.doc

Utfärdat av Revideringsdatum Dokument ID Håkan Tropp Systembeskrivning_Kursinfo.doc SYSTEMBESKRIVNING 2005-12-22 1.0 1 (7) Kursinfo Översiktlig beskrivning Kursinfo är ett egenutvecklat system, för att hantera utbildningsrelaterad information. I Kursinfo hanteras all administration av

Läs mer

OBS!!! Anslut ej USB kabeln till dator eller GPS innan du först har installerat drivrutinerna för USB kabeln i din dator.

OBS!!! Anslut ej USB kabeln till dator eller GPS innan du först har installerat drivrutinerna för USB kabeln i din dator. Navirad User Tool 3,7 Manual för GPS 1 Easy, GPS 2, GPS 4 samt Navirad Elite. Du kan ladda ner programmet från följande websida: Leta upp fliken Download och följ instruktionerna. http://www.tmobilteknik.com

Läs mer

Installation av M7005 och till M7005 hörande serverprogram

Installation av M7005 och till M7005 hörande serverprogram 150607/150716/151005/SJn Installation av M7005 och till M7005 hörande serverprogram samt Anpassning av M7005:s utseende Installation och anpassning av M7005 sida 1 (18) Innehåll 1 M7005:s hemsida är M7005.Metem.se...

Läs mer

IT-system. BUP Användarmanual

IT-system. BUP Användarmanual IT-system Användarmanual Innehållsförteckning 1. Att komma igång med... 1 1.1 Installera... 1 1.1.1 Byt databas... 1 1.1.2 Behörighet att byta databas... 2 1.2 Logga in... 3 1.2 Inloggad... 3 1.3 Logga

Läs mer

Magnus Palm. Lättläst IT

Magnus Palm. Lättläst IT Magnus Palm Lättläst IT Del 1 LÄRA KÄNNA DIN DATOR 1. Persondatorn... 6. Bekanta dig med Windows XP... 7 3. Filer... 10. Hitta i datorn... 1 5. Gör det enkelt att hitta i datorn... 16 6. Övningsuppgifter...

Läs mer

Se till att posten är i Ändringsläge. Gå till rullgardinsmenyn under Föremål och välj Lägg in bild.

Se till att posten är i Ändringsläge. Gå till rullgardinsmenyn under Föremål och välj Lägg in bild. Bilder (11) Det går att lägga en eller flera bilder till varje föremålspost. Det enklaste är att lägga in en bild, från den registrerade föremålsposten. Det går också att lägga in ett större antal bilder

Läs mer

BuildingPortalSuite. Beskrivning. 2012-09-03 BuildingPortalSuite - Beskrivning

BuildingPortalSuite. Beskrivning. 2012-09-03 BuildingPortalSuite - Beskrivning Beskrivning 1 Komma igång Följ dessa steg för att enkelt komma igång med BuildingPortalSuite: 1. Installera BuildingPortalSuite 2. Använd Setup Tool BuildingPortalSuite för att ställa in uppkopplingen

Läs mer

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år Javautvecklare 400 YH-poäng, 2 år Utbildningsfakta Kurser (12 stycken) Grundläggande programmering och javaverktyg 50 yhp Grafiskt gränssnitt och interaktion 20 yhp Internet, webb och webbramverk 40 yhp

Läs mer