The Need for Automated Acceptance Testing in XP

Storlek: px
Starta visningen från sidan:

Download "The Need for Automated Acceptance Testing in XP"

Transkript

1 The Need for Automated Acceptance Testing in XP 14 Mars 1 Johan Astborg LTH, Lund University dt5ja7@student.lth.se ABSTRACT Automatisk acceptanstestning inom agil utveckling är något som kommit att bli avgörande i effektiva team och projekt. I den här artiklen undersöks från ett XP perspektiv i ett team bestående av tio utvecklare under sju hela dagar. Vikten av automatisering lyfts fram och författaren tar hjälp av en enkätundersökning för att fastställa vad som är bra och vad som kan förbättras med inom agil utveckling. En tämligen kontroversiell gränsöverskridning görs då författaren låter utvecklarna ansvara helt för acceptanstesterna, vilket betyder att en dedikerad testare helt tagits bort. Detta strider mot traditionell XP, men var nödvändigt för att få metodiken att passa in i vårt team. Slutligen noteras att mycket finns att göra på området och verktygen, FIT och, är inte riktigt mogna. Det finns utrymme för en hel del forskning och utveckling på området, där en standard vore lämplig. 1. INLEDNING Testning är en av de viktigaste faktorerna inom mjukvaruutveckling [3]. Extreme Programming tar testning till ytterliggare en nivå med TDD, Test Driven Development [3]. Test Driven Development skrivs testerna före själva funktionaliteten börjar implementeras i form av kod [4]. Trenden att automatisera stora delar av utvecklingsprocessen och integrera dessa i utvecklingsmiljön där utvecklingen äger rum. Automatiska acceptanstester är nu på tapeten och blir allt mer uppmärksammat i rapporter och artiklar. Någon självklar standard för automatiska acceptanstester finns dock inte i dagsläget [7]. Den finns en rad verktyg för olika ändamål inom automatiskerad acceptanstestning, några av dem tas upp här och FIT och undersöks närmare. Som stöd för utarbetningen har författaren tillgång till skrivet material, artiklar och böcker, och en grupp utvecklare in ingår i kursen PVG på LTH. Kursen ges obligatoriskt och i varje grupp ingår tio utvecklare. Teamet har tillgång till Coach för Team9 två coacher, äldre teknologer från LTH, som läser en fortsättningskurs av PVG parallellt, där författaren utgör en av coacherna i ett av teamen. I rapporten kommer tillgången till utvecklarna utnyttjas för undersökning hur väl det utvalda verktyget fungerar i praktiken. Detta gör det hela mer intressant än uteslutande skrivet material. Författarens frågeställning inför denna studie var: I vilken omfattning behövs verktyg som stödjer automatisk acceptanstestning inom XP? Från personlig erfarenhet, tror författaren att stöd och verktyg för automatiserade acceptanstester kan vara till stor hjälp och undvika stress och panik nära releaser. De flesta mjukvaror släpps som release när under % av dess funktionalitet täcks av tester [1]. Inom XP är det till stor hjälp att på ett säkert och entydigt sätt försäkra sig om att en story är korrekt, så till vida att kundens funktionella tester går igenom [9]. Som en ledstjärna inom XP, brukar man inte betrakta en story som komplett förän alla tillhörande acceptanstester går igenom [8]. Nya acceptanstester måste skapas i och med varje ny iteration med nya stories för att arbetet skall fortskrida framåt. För att garantera att acceptanstester körs och för att öka produktiviteten kan ett team ta hjälp av verktyg för att automatisera acceptanstester och även skapandet av dessa. Det finns idag en uppsjö verktyg och ramverk som stödjer acceptanstestning. De befinner sig olika långt i mognadsfasen. De verktyg som verkar någorlunda användbara kommer kort beskrivas i artikeln, och det eller de verktyg som verkar mest lämpliga enligt vissa kriterier, se avsnitt 5 för kriterier, kommer studeras närmare i den praktiska studien av PVGteamet. 2. METOD 2.1 Teori I den här delen kommer acceptanstestning att beskrivas utifrån ett mer teoretiskt perspektiv med hänsyn till artiklar och annat befintligt material. 2.2 Studie Studien på PVG-teamet bestod av dels en praktisk iaktagelse av gruppens arbete med det utvalda verktyget och dels helt utan verktyg och automatiserat stöd. De tre första iterationerna, i vårt fall de tre första måndagarna under tre veckor, använde teamet enkla och odefinierade arbetssätt för att accpetanstesta. Mycket av arbetet bestod i att jämföra

2 innehållet mellan textfiler, där det är lätt att göra misstag. Under den fjärde iterationen, infördes det utvalda verktyget i utvecklingsteamet. Utvecklarna hade fått i uppgift att läsa in sig på verktyget och gå igenom en enkel guide om författaren satt ihop rörande delaljer kring exekvering och inläggning av acceptanstester. Det var självklart ett medvetet val att vänta tre iterationer, dels för att kunna jämföra med något i studien och dels för att författaren då fick insikt och kunde lättare välja ut ett passande verktyg med några iterationer i ryggen. Ett par satt tillsammans med författaren under iteration fyra för att överföra de nuvarande acceptanstesterna till det nya ramverket,. Den här processen upplevdes relativt enkel och intuitiv av de två utvecklarna som satt med under processen, mycket tack vare wiki-gränssnitt och det något mekansika upplägg författaren förberett. 3. ACCEPTANSTESTNING I XP För att citera författaren till XP Installed, Ron Jeffries: Successful acceptance tests are, among other things, customerowned and automatic. However, customer-owned does not necessarily mean customer-written. In fact, as Kent Beck points out in Extreme Programming Explained, customers typically can t write functional tests by themselves, which is why an XP team has a dedicated tester: to translate the customers ideas into automatic tests. Han påpekar bland annat att lyckad acceptanstestning är automatisk och att kunden nödvändigtvis alltid är kapabel att skriva sina egna tester, som i vårt fall i PVG-kursen. Ron Jeffries menar att ett XP-team ska ha en dedikerad testare som översätter testerna från kunden till automatiska sådana. Delar av detta togs i beaktelse vid valet var verktyg. Det skulle vara enkelt att editera och lägga in nya tester i verktyget. Acceptanstestning är en benämning på funktionell testning eller black box testning inom mjukvaruutveckling. Benämningen används även inom XP-utveckling där det mer pekar på den slutliga bekräftelsen på att en story är korrekt implementerad, eller rättare sagt att den tänkta funktionaliteten är korrekt hos programvaran. De största möjligheterna vad gäller förbättring i hur mjukvara testas avgörs då acceptanstesterna tas fram [1]. 4. ACCEPTANSTESTNINGSPROCESSEN Acceptanstestningsprocessen inom XP är ganska enkel. Den består av ett mjukvarusystem som ska testas, och en eller flera acceptanstester som ska köras. Ofta är acceptanstesterna exempel på ett förväntat beteende eller utdata från systemet. Systemet körs och det verkiga resultatet jämförs sedan med det förväntade. 5. VERKTYG FÖR AUTOMATISK ACCEP- TANSTESTNING Antalet verktyg som stödjer automatisk acceptanstestning i stort är många, för många för att ta upp i den här artikeln. De mest förekommande är kort beskrivna nedan. Inte alla av dem uppfyller kraven ställda för den praktiska studien. I slutet av den här delen, motiverar författaren valet av ett utav verktygen. Under urvalsprocessen fanns en rad kritierier i åtanke. Listan nedan nämner dessa i grova drag. Även värt att nämna är att för många av verktygen fanns väldigt lite information, både på internet och i publicerad form. Är det lätt att använda för gruppmedlemmarna? Har det stöd kundanpassning och utökningar som krävs? Hur är stödet för Java? Förfarandet kan vara helt automatiserade? Finns det något behov av speciell programvara för att installera? 5.1 FIT Wikis urfader Ward Cunningham utvecklade FIT [16], som är ett ramverk för automatiserade acceptanstester skrivet i Java tillgängligt via öppen källkod. Iden bakom FIT är att enkelt integrera testare, utvecklare och intressenter i testprocessen. FIT ger möjlighet att visa upp testresultat som t ex HTML-sidor, vilket gör det enkelt för icke tekniska personer att förstå testernas utfall och syfte [1]. FIT kan då färga celler i tabeller efter utfallet av testerna, rött symboliserar fel av något slag och grönt att testet gick igenom utan några fel. FIT är i sin tur baserat på JUnit och utökar detta ramverk för stöd för något som heter fixtures. Det finns tre inbyggda grundläggande fixtures som räcker ganska långt vid generell testning. Dessa tre är: RowFixture, ColumnFixture och en ActionFixture. För detaljer kring dessa tre, se avsnitt 6.4. Ytterliggare funktionalitet läggs enkelt till dessa tre fixtures genom arv i Java. FIT kommer vidare användas i den här studien som en del av, se nedan. 5.2 [19] är ett serverbaserat verktyg skrivet i Java med ett wiki-gränssnitt som ger testare och utvecklare möjlighet att skriva tester med en wiki syntax [12]. använder FIT som sin underliggande testmotor. Detta betyder att i stort sett all funktionalitet som finns i FIT är tillgängligt i. Ramverket distribueras i form av ett JAR-arkiv som gör installationen intill obefintlig och plattformsoberoende. Detta möjliggör snabb och smidig uppstart av på vilket system som helst där Java är förinstallerat. använder så kallade fixtures, [intern referens], som står för själva exekveringen av testerna och länkar med artefakten som ska testas. Fixtures ger utvecklaren stor frihet och flexibilitet. 5.3 Selenium Selenium [17] är ett open-source ramverk för testning av webbapplikationer skrivet utvecklat av personer på Thought- Works[11], bl a Jason Huggings [22]. I Selenium ingår en samling verktyg för som stödjer webbaserad automatisk testning på en rad olika plattformar [9], i stort sett alla där det

3 Test cases Wiki pages Standard tools and libs User written applications/code Web server, storage & Wiki FIT Server & Runner Figure 1: overview Fixtures Artefact går att köra en webbläsare. Selenium kan t ex används för att upptäckar browser-inkompatilibitet av den utvecklade produkten i JavaScript och HTML. Selenium kan användas för att återskapa inspelade scenarion och emulera en användares interaktion med en webbsida, med knapptryckningar och inmatning av text[9]. Detta kan vara väldigt användbart i många sammanhang, speciellt vid agil utveckling av produkter för webben där TDD, Test Driven Development, är önskvärt. Eftersom Selenium har sitt fokus på komplicerade webbaserade produkter, svarar det inte mot de krav som är ställda för studien i den här artikeln. 5.4 Test Automation FX Test Automation FX [21] är ett ramverk som stödjer testing av Windows GUI från Visual Studio 5 och Visual Studio 8 [13]. Detta ramverk har sitt fokus på Microsoft Windows med stöd för språk som C, VB.NET etc. Med tanke på den här stora begränsning i användningsområden, utesluts Test Automation FX helt ur den här studien. 5.5 EasyAccept EasyAccept [] är ett verktyg för skrivet i Java för automatisk acceptanstestning bestående av två delar, en skriptmotor och en så kallad Runner. Upplägget är tänkt att underlätta skrivandet och öka uttrycksfullheten av tester [6]. Tester skrivs i ett icke objekt orienterat språk och exekveras efter översättning i Runner. Tanken är god att låta användare skriva tester i ett specifikt språk, nackdelen är att det krävs att det nya skriptspråket lärs in. Bristen på dokumentation och skrivet material om EasyAccept ledde till valet att inte vidare studera verktyget i den här rapporten. 5.6 Anledningar till valet av Valet av motiveras av en rad faktorer. Först och främst verkade det moget och väl använt. Det är baserat på FIT som är det mest välkända verktyget inom acceptanstestning[6]. Sedan är skrivet i Java vilket gör att det är enkelt för personer med goda kunskaper inom Java att använda det, t ex studenter på LTH. Slutligen använder sig av ett wiki gränssnitt mot FIT, vilket författaren från början tyckte lät lockande för sin utspridning och enkelhet. En av kriterierna för urvalsprocessen var just enkelhet och möjligheten att snabbt komma igång med verktyget utan för mycket inläsning. 6. FITNESSE I VÅRT TEAM I den här delen introduceras metodiken kring hur användes i vårt team tillsammans med övriga verktyg och rutiner. Vårt team var det enda teamet under kursens gång som använde ett alternativ till SVN. Det beror på att min par-coach gjorde sin djupstudie inom området distribuerad versionshantering [14] med praktisk fokus på GIT. Eftersom vårt team använde en distribuerad metodik, behövdes vissa saker modifieras och läggas till. 6.1 Kort om GIT GIT [18] är ett distribuerat versionshanteringssystem till motsats mot vanliga oftast centraliserade system som CVS och SVN. Detta betyder att alla utvecklare har sitt eget repositorie lokalt, där av distribuerat. GIT skalar tydligen bra, eftersom det fungerade väl i vårt team som endast bestod av tio utvecklare, dvs fem par som programmerade samtidigt. GIT stödjer en rad finesser som man kan behöva vid versionshantering, så det är inte alls svårt att gå över till GIT från SVN. Genom sin distribuerade arkitektur, behövs ingen central server. Detta kan underlätta installation då teamet inte har tillgång till en server. 6.2 Vår utvecklingsmetodik Vår metodik skiljer sig i den bemärkelse att versionshanteringen är distribuerad och varje team har sitt eget repositorie. Detta är motsatsen till hur det brukar vara i XP, där en central server lagrar den senaste aktuella versionen av programmet som utvecklas. GIT möjliggjorde att vi kunde ha lokala repositorien på varje maskin, där två utvecklare satt och parprogrammerade på en given story. Paren utförde lokala commits, och gjorde detta förhållande vis ofta, jämfört med traditionell versionshantering enligt kursledningens statistik. När ett team tycktes vara klara med en story, granskade min par-coach implementationen och kollade att testerna gick igenom och agerade gatekeeper[15]. Såg allt bra ut och testerna gick igenom, publicerades den nya versionen och övriga par i teamet kunde uppdatera sin kodbas och lösa eventuella merge-konflikter. Detta arbetssätt tvingade delar av ursprungliga upplägg och syfte att modifieras en aning. Vanligtvis har ett XP-team en dedikerad testare som översätter acceptanstesterna från kunden till körbara tester i någon form, se figur 2. Tillvägagångssättet kräver samspel mellan den del av teamet som skriver kod och testaren. Varje gång en story anses klar, måste testaren köra de berörda acceptanstesterna och fatta beslut efter utfallet. Detta arbetssätt kan kan utgöra en flaskhals i utvecklingsarbetet. Ett alternativt sätt är att låta utvecklarna själva köra igenom testerna och fatta beslut efter dessa. Att följa detta arbetssätt, som visas i figur 3, eliminerar behovet av en dedikerad testare och tiden kan då användas mer effektivt. Testarens tid och den tid testaren inte är sysselsatt, kan användas till att producera kod istället. Utvecklarna är nu helt ansvariga för dels testning, som innebär att köra enhetstester (JUnit) kontinuerligt under arbetets gång och till sist köra acceptanstesterna (),

4 Story 2 Story 3... Story 1 SVN Repository Story X root Dedicated tester Figure 2: Centraliserad versionshantering och testning 6.4 Fixtures Två så kallade fixtures behövdes för att få att testa vårt program i projektet. Lite kort kan fixtures beskrivas som det kit som fogar samman tabellerna i med logiken i artefakten [2], programmet som testas i vårt fall. Dessa två fixtures var skrivna i Java och använder FITs färdiga fixtures som bas genom arv, se Appendix A för detaljer. De tre grundläggande fixtures som ingår i FIT och är: RowFixture, ColumnFixture och en ActionFixture. Nedan följer en kort beskrivning av varje, följt av en beskrivning av de två som skrevs specifikt för vårt projekt. Dessa två använder och utökar (extends i Java) ColumnFixture respektive ActionFixture RowFixture RowFixture används för att testa iterativa datatyper som listor, träd och datastrukturer i allmänhet [7]. RowFixture användes inte i vårt projekt, och därför hänvisas läsaren till FITs hemsida [16] för mer information. root Git Repository root Git Repository... root Git Repository ColumnFixture ColumnFixture används då man vill testa ett givet utfall av en operation, tex addition eller division, då givna indata ska resultera i givna utdata [7]. Ett enkelt exempel är en metod som dubblar ett heltal. Given indata respektive utdata kan då vara, indata: 2, utdata: 4. ColumnFixture läs in den givna indatan, förväntade utfallet, exekverar metoden, och jämför utdatan, resultatet, med det som står i kolumnen för utdata. Stämmer dessa går testet igenom, annars inte. Story 1 Story 2 Story X Figure 3: Distribuerad versionshantering och testning och dels för själva programmeringen, som innefattar att skriva testfall och produktionskod. Teamet kan nu arbeta mer fokuserat på att skriva bra kod och slipper de problem som centralisering kan medföra. 6.3 Varför behövde finjusteras Trots att var designat för att användas av ett team eller organisation, behövdes vissa saker modifieras. När det kommer till acceptanstestning, är det meningen de ska avgöra om en story är klar eller ej [5]. Den enklaste lösningen som var aktuell just då när skulle introduceras, var att låta varje par köra sin version av lokalt. är inte i sig självt versionshanterat, utan författaren lät Fit- Nesse ligga i en mapp i vårt repositorie där alla wiki-sidor tillsammans med testfallen lagrades. När en story var klar, publiserades den tillsammans med den tillhörande acceptanstesterna under GITs kontroll. På det här sättet kunde varje par lägga in nya tester, köra sina tester separat från övriga par medan risken för kollisioner och problem var minimal. Nu kunde varje par köra sina versioner av acceptanstesterna parallellt, snabbt och enkelt ActionFixture En ActionFixture tar innehållet i en tabell, en specifik cell, och tolkar detta innehåll som ett kommando som exekveras [16]. ActionFixture används således för att anropa kommandon, dessa kan vara alltifrån navigering i ett GUI till kommandorads program i Linux. Kodexemplet i Appendix A visar hur man utökar ActionFixture genom arv och egen kod i Java SmartFixture StartNr; Namn; #Varv; Totaltid; 1; Bengt Bsson; ; ; ; 2; Anders Asson; ; ; ; StartNr; Namn; #Varv; Totaltid; 1; Bengt Bsson; ; ; ; 2; Anders Asson; ; ; ; Match? Figure 4: SmartFixture bestämmer om två filers innehåll matchar Den så kallade SmartFixture användes för att jämföra innehållet mellan två filer, se figur 4, filen från kunden och filen som genererades från vårt program. SmartFixture läste helt enkelt in två filer från filsystemet och jämförde innehållet med Javas inbyggda compareto-metod. Nackdelen med compareto är att den inte är förlåtande vad gäller teckenkodning, något man måste vara medveten om. Fixturen

5 Table 1: SmartFixture exempeltabell i wikin Expected Result Match? expected.txt result.txt TRUE jämförde filerna tecken för tecken, vilket fungerade tillfredställande, när teckenkodningen var lika. Tabell 1 visar hur det kunde se ut i vår wiki. Expected anger den indatafil som vi fick från kunden med förväntat resultat, Result anger utdatan från vårt program Sorter och Match? anger som de två filerna matchar varandra enligt metoden som beskrivs ovan CommandLineFixture The CommandLineFixture was used to execute the Sorter program with given parameters for the acceptance test to produce the output file. The output file was then used as an argument together with the expected result to SmartFixture to compare the contents of the files. The CommandLineFixture executes the given program that it gets as an argument from the wiki page in. Ytterliggare en fixture som döptes till CommandLineFixture användes för att exekvera vårt huvudprogram, Sorter. Sorter var namnet på den produkt vi skulle ta fram åt vår kund för sortering av tidsdata. Sorter gavs parametrar som var specificerade för varje acceptanstest via konfigurationsfiler. CommandLineFixture exekverade Sorter-programmet med en given konfigurationsfil som då genererade en utdatafil. Utdatafilen jämfördes sedan i SmartFixture med en förväntad utdatafil. CommandLineFixture exekverar det program som den får som inargument från en wiki sida i Fit- Nesse under det aktuella systemet. Do you prefer automated acceptance testing over manual? 1 1 % Figure 6: Enkätfråga nummer 1 Do you think has helped our work? 1 9 % % Wiki page Test execution FIT Fixture Sorter program result.txt Figure 7: Enkätfråga nummer 2 Was it easier to remember to use the acceptance tests after the introduction of? Figure 5: CommandLineFixture exekverar artifakten, Sorter Figur 5 visar hur en wikisida inuti exekverar Sorter genom CommandLineFixture via FIT och som slutligen genererar en utdatafil result.txt. 7 5 % 7. RESULTAT I den här delen presenteras resultaten från den enkätundersökning som gjordes på utvecklarna i PVG-teamet under sista långlabben. Alla tio deltagarna var med och enskilt besvarade de frågor som lades ut på en wiki sida, se Appendix B. 7.1 Sammanfattning av enkät 3 1 % Figure 8: Enkätfråga nummer 3

6 Did you experience GUI as intuitive? Did you test more often with? 5 5 % 5 % 7 5 % % Figure 11: Enkätfråga nummer 6 Figure 9: Enkätfråga nummer 4 Was the guide on sufficient to get going? 7 7 % % Would you be able to add new tests to the wiki? % 3 % Figure 1: Enkätfråga nummer 5 Figure 12: Enkätfråga nummer 7 Undersökningen visar, se figur 6, att alla utvecklarna i teamet föredrog automatiserade acceptanstester med framför manuella tester med JUnit and Eclipse. Det är också väldigt positivt att nästan alla tyckte det var enklare att komma ihåg acceptanstesta med. Den guide som skrevs för att utvecklarna skulle läsa in sig på behöver förbättras, se figur 12. I enkäten fanns även utrymme för egna reflektioner och fria formuleringar. Där kunde det utläsas att bättra koppling till Definition of Done behövs för att få att fungera bättre. Enklast görs detta genom att lägga till de steg som behövs i en checklista, t ex att ska exekveras och verifieras. Vissa utvecklare menade på att även mer automatisering av acceptanstesterna, då speciellt skapandet av dem, vore önskvärt i kommande projekt. Därpå kunde wiki-gränssnitt varit lite enklare och många saker användes aldrig, vilket bara skapade onödig förvirring.

7 Was easy to gain insight into? % 3 % Figure 13: Enkätfråga nummer 8 Det är dock intressant och roligt att notera att nästan alla kan tänkta sig överväga användandet av i kommande XP-projekt. Dessutom fick ett sammanvägt betyg ur ett XP perspektiv på hela 4.1 av 5 möjliga, vilket motsvarar över % i betyg av utvecklarna, se figur Fördelar med Fördelen med är att den låter dig arbeta med acceptanstester i flera nivåer, dvs det är enkelt för kunden att vid behov använda wiki sidorna och modifiera eller köra testerna själv. En mer tekniskt kunnig person, t ex en utvecklare, kan implementera fixtures och skriva domänspecifik kod som stödjer de tester som behövs. och FIT erbjuder stor valfrihet och flexibilitet, men till ett pris. Olika fixtures låter dig testa vad du kan tänkta dig testa, räcker inte de medföljande till, är det någorlunda smidigt att skriva egna. När väl dina fixtures och behoven är täckta, är det bara att köra igång och testa. Would you consider using in a future project? 1 1% Figure 14: Enkätfråga nummer 9 Overall rating of from an XP perspective? 7 7% % 1 % Figure 15: Enkätfråga nummer 1

8 7.3 Nackdelar med Det finns även några nackdelar med. Den största är brisen på tydliga exempel i dokumentationen och det är inte helt intuitivt hur man kommer igång med att skriva egna fixtures för FIT och. Att skriva egna fixtures kräver en del Java kunskaper och en portion tålamod. Eftersom använder ett wiki-gränssnitt till de underliggande testfallen, krävs det kunskaper i den valda wiki kodningen för att kunna editera testfallen. Att editera wiki sidor kan låta enkelt, men blir en aning bökigt i längden då nya testfall skapas, borde finnas stöd för färdiga och egna mallar så man enkelt skapar ett nytt testfall utifrån hur man brukar lägga upp den strukturen. 8. SLUTSATSER Det distribuerade förhållningssätt vårt team använt sig utav har visat sig vara lyckosamt inom stora delar av Extreme Programming. När var någorlulnda integrerat i arbetet, var det enkelt att använda och levererade snabbt testresultaten tydligt och överskådligt. Varje par i teamet hade möjlighet att använda sin egna version av wiki, dvs ett par kunde testa sin egna story separat från vår huvudbranch och samtidigt modifiera och testfallen i wiki sidan utan att störa andras arbete. Detta upplägg var uppskattat av utvecklarna, som nästan omedelbart började kika på Fit- Nesse för att testa sina stories. Det finns fortfarande utrymme för förbättringar hos Fit- Nesse, och man kan ifrågasätta om ett wiki-gränssnitt är det ultimata, här finns en hel del att göra. Författaren tycker att det genomsnittliga betyg utvecklarna gav verktyget på över % är välidigt bra. Utan tvekan är användbart och på rätt väg i sin utveckling, men fortfarande finns mycket att göra för att reducera komplexiteten som är involverad med att skapa nya tester och köra dem. 9. REFERENCES [1] J. L. Fernández. Acceptance testing of object oriented systems. In Ada-Europe 99: Proceedings of the 1999 Ada-Europe International Conference on Reliable Software Technologies, pages , London, UK, Springer-Verlag. [2] B. Haugset and G. K. Hanssen. Automated acceptance testing: A literature review and an industrial case study. In AGILE 8: Proceedings of the Agile 8, pages 27 38, Washington, DC, USA, 8. IEEE Computer Society. [3] R. C. Martin. Professionalism and test-driven development. IEEE Softw., 24(3):32 36, 7. [4] S. S. Park and F. Maurer. The benefits and challenges of executable acceptance testing. In APOS 8: Proceedings of the 8 international workshop on Scrutinizing agile practices or shoot-out at the agile corral, pages 19 22, New York, NY, USA, 8. ACM. [5] K. Read, G. Melnik, and F. Maurer. Student experiences with executable acceptance testing. In ADC 5: Proceedings of the Agile Development Conference, pages , Washington, DC, USA, 5. IEEE Computer Society. [6] J. P. Sauvé, O. L. Abath Neto, and W. Cirne. Easyaccept: a tool to easily create, run and drive development with automated acceptance tests. In AST 6: Proceedings of the 6 international workshop on Automation of software test, pages , New York, NY, USA, 6. ACM. [7] I. C. Society. Automated acceptance testing using fit. In HICSS 9: Proceedings of the 42nd Hawaii International Conference on System Sciences, pages 1 8, Washington, DC, USA, 9. IEEE Computer Society. [8] D. Talby, O. Nakar, N. Shmueli, E. Margolin, and A. Keren. A process-complete automatic acceptance testing framework. In SWSTE 5: Proceedings of the IEEE International Conference on Software - Science, Technology & Engineering, pages , Washington, DC, USA, 5. IEEE Computer Society. [9] X. Wang and P. Xu. Build an auto testing framework based on selenium and fitnesse. In ITCS 9: Proceedings of the 9 International Conference on Information Technology and Computer Science, pages , Washington, DC, USA, 9. IEEE Computer Society. [1] R. Mugride and E. Tempero. Retrofitting and Acceptance Test Framework for Clarity. In ADC 3: Proceedings of the Agile Development Conference. [11] A. Holmes and M. Kellogg. Automating Functional Tests Using Selenium. In AGILE 6: Proceedings of AGILE 6 Conference. [12] F. Fannizzo, G. Marcionetti and P. Moser. Evolution of the Tools and Practices of a Large Distributed Agile Team. In AGILE 8: Proceedings of the Agile Conference. [13] E. Kim, J. Na and S. Ryoo. Implementing an Effective Test Automation Framework. In 33rd Annual IEEE International Software and Application Conference 9: Proceedings of the Conference. [14] D. Arve. Distributed version control in agile teams. In Djupstudier 1. [15] C. Hedin and S. Birgersson. Introducing the Agile Requirements Abstraction Model - Requirements Engineering in a Scrum Environment. In page 69. [16] FIT, [17] Selenium, [18] GIT, [19], [] EasyAccept, [21] Test Automation FX, [22] Selenium Wikipedia,

9 APPENDIX Appendix A - Källkodsutdrag för fixtures public class SmartFixture extends ColumnFixture { public String input ; public String output ; public boolean match () {... i f ( correct. compareto( our ) == ) return true ; return f a l s e ; } } public class CommandLineFixture extends ActionFixture {... } private Process execute ( String command) throws IOException { i f ( isverbose ) System. out. println ( command = + command ) ; Process p = Runtime. getruntime ( ). exec (command ) ; return p ; } Appendix B - Frågor till enkätundersökning Är automatiska acceptanstester bättre än manuella? (Ja / Nej) Tycker ni underlättat arbetet? (Ja / Nej) Kände ni att ni testade oftare med än vid manuell testning? (Ja / Nej) Var det lättare att komma ihåg att acceptanstesta efter införandet av? (Ja / Nej) Skulle ni kunna lägga till egna tester i wikin? (Ja / Nej) Om NEJ: Varför: (Fri formulering) Kändes användargränssnitt intuitivt? (Ja / Nej) Var guiden på projekt-wikin tillräckligt utförlig? (Ja / Nej) Var det lätt att sätta sig in i? (Ja / Nej) Är något ni kan tänka er använda i framtida projekt? (Ja / Nej) Vad får för betyg av er ur ett XP perspektiv? ( till 5) Vad kan förbättras? (Fri formulering)

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions Testdriven utveckling Magnus Jonsson Siemens Medical Solutions 2 Soarian Stort projekt, ca 400 personer i projektet Distribuerad utveckling i USA, Indien och Sverige Web baserat lösning med admin client

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

Testramverk och Model based testing med java i praktiken

Testramverk och Model based testing med java i praktiken WHITE PAPER MODEL BASED TESTING Testramverk och Model based testing med java i praktiken Prolore AB Page 1 (6) Web: www.prolore.se Målet med artikeln Den här artikeln syftar till att praktiskt visa hur

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

Versionshantering. Jan Erik Moström

Versionshantering. Jan Erik Moström Versionshantering Jan Erik Moström Johan Eliasson Versionssystem Gjorda för att användas av en eller flera personer på en eller flera platser, exempelvis: För en ensam användare som jobbar med ett projekt

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel. Page 1 (5) Hemuppgift 1DV404 150115-150118 Deluppgift 1 Processmodeller a) (4p) Alla mjukvaruutvecklare följer någon form av utvecklingsprocess i sitt arbete. Diskutera vad organisationer brukar ange som

Läs mer

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod Systemutveckling TDP029 Systemutveckling Annika Silvervarg COIN/HCCS/IDA Systemutveckling kallas processen att ta emot en beställning på ett datorsystem, skriva en strukturerad kravspecifikation på systemet,

Läs mer

Testplanering, test-first, testverktyg

Testplanering, test-first, testverktyg Testplanering, test-first, testverktyg Mats Skoglund Department of Computer and Systems Sciences Stockholm University/Royal Institute of Technology Stockholm, Sweden 12 mars 2007 Mats Skoglund Page 1(33)

Läs mer

Agil programutveckling

Agil programutveckling Agil programutveckling Pontus Evertsson D00, Lunds Tekniska Högskola d00pe@efd.lth.se Anna Jennerheim D00, Lunds Tekniska Högskola d00aj@efd.lth.se 2003-05-15 1 1. Inledning 3 2. Extreme Programming (XP)

Läs mer

TDP003 Projekt: Egna datormiljön

TDP003 Projekt: Egna datormiljön . TDP003 Projekt: Egna datormiljön Egen utvecklingsmiljö Kursmaterial till kursen TDP003 Höstterminen 2017 Version 2.2 2017-06-30 2017-06-30 Egen utvecklingsmiljö INNEHÅLL Innehåll 1 Revisionshistorik

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

JUnit. Junit Unit Testing. JUnit 3. JUnit 3 forts. Villkorskontroller i test. Exempel JUnit3

JUnit. Junit Unit Testing. JUnit 3. JUnit 3 forts. Villkorskontroller i test. Exempel JUnit3 Johan Eliasson JUnit Junit Unit Testing Unit testing för java Används för att testa att metoder/klasser beter sig som det var tänkt Många IDE:er tex Eclipse har inbyggt stöd för detta. JUnit 3 Vi skriver

Läs mer

Agil testning i SCRUM

Agil testning i SCRUM Agil testning i SCRUM Petter Salomonsson Petter.salomonsson@addq.se Tel: 0708-398435 Kort presentation AddQ Consulting AB tydlig fokus på test och kvalitetssäkringstjänster erbjuder mycket erfarna konsulter

Läs mer

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

1 Vad är Versionshantering? 2 Git. 2.1 GitHub 1 Vad är Versionshantering? Versionshantering (eller Version Control) är ett samlingsnamn för program som ger en användare möjlighet att komma åt tidigare versioner av dokument och spåra ändringar som

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

Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

Versionshantering. Problem som uppstår i större (samt även mindre) projekt: Versionshantering Problem som uppstår i större (samt även mindre) projekt: Samtidiga ändringar. Kålle och Ada öppnar samma fil för redigering vid var sin dator. Om Kålle först sparar sina ändringar och

Läs mer

Kvalitetssäkra ditt projekt med kontinuerlig integration

Kvalitetssäkra ditt projekt med kontinuerlig integration Kvalitetssäkra ditt projekt med kontinuerlig integration Mathias Olausson http://olausson.net/blog Om oss: QWise Vi hjälper systemutvecklingsteam att bli bättre. Vi är experter på ALM och Team System.

Läs mer

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar Skapa testfall Testing Köra testen Hitta fel Inspections and reviews Verifiera resultatet Formal methods Static analysis Completeness Verifiering Kvalitet Maintainability Validering Traceability Fault

Läs mer

Effekter av införande av agila metoder. Daniel Sundmark Mälardalens högskola

Effekter av införande av agila metoder. Daniel Sundmark Mälardalens högskola Effekter av införande av agila metoder Daniel Sundmark Mälardalens högskola Agila metoder Agila metoder Values T. ex., working software over comprehensive documentation (Agile manifesto) Agila metoder

Läs mer

Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski

Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski Testdriven utveckling Januari 2009, KTH Alexander Tarnowski Teorin bakom testdriven utveckling Bakgrund Testdriven utveckling började nämnas kring 1999-2000 av Kent Beck I praktiken implementationen av

Läs mer

Programmering i C++ Kompilering från kommandoraden

Programmering i C++ Kompilering från kommandoraden Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö

Läs mer

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan

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

Labrapport över Rumbokningssytemet Grupp:1

Labrapport över Rumbokningssytemet Grupp:1 Fakulteten för ekonomi, kommunikation, IT & data Labrapport över Rumbokningssytemet Grupp:1 Kurskod: DVGC18 Kursnamn: Software Engineering Inlämningsdatum: 2009 10 28 Scrummaster: Martin Blom Projektmedlemmar:

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

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

Djupstudie Collective Documentation Ownerhip - Wiki. Jakob Nilsson-Ehle

Djupstudie Collective Documentation Ownerhip - Wiki. Jakob Nilsson-Ehle Djupstudie Collective Documentation Ownerhip - Wiki Jakob Nilsson-Ehle (d02jn@efd.lth.se) 1 1 Innehåll 1 Inledning............................... 3 1.1 Vad är en wiki?............................ 3 1.1.1

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

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

Introduktion till git

Introduktion till git Introduktion till git Anders Engström 23 februari 2012 1 / 27 Översikt Introduktion I en värld utan versionshantering Typer av versionshantering Detta är git Komma igång med git Förberedelser Eget repository

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av

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

UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten

UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten UTVECKLINGSVERKTYG Praktiska tips för PUM-projekten TEKNIKER I PROJEKTEN ios 2 C#.NET 1 Java (inkl Android) 6 Webb (HMTL/JS) 4 En genomskumning av de tilldelade projektförslagen ger ovanstående uppfattning

Läs mer

GIT som alternativ till CVS/SVN i agila utvecklingsmiljöer

GIT som alternativ till CVS/SVN i agila utvecklingsmiljöer 1 GIT som alternativ till CVS/SVN i agila utvecklingsmiljöer Kristofer Jacobson, Patrick Ivarsson Abstrakt En studie om versionshanteringssystemet Git och om möjligheten att använda det som alternativ

Läs mer

Scrum + XP samt konsekvensanalys

Scrum + XP samt konsekvensanalys Scrum + XP samt konsekvensanalys Daniel Nimren dt05dn8 Douglas Frisk dt05df1 Dept. of Computer Science, Lunds Tekniska Högskola, Sweden {dt05dn8 dt05df1}@student.lth.se 1 mars 2010 Sammanfattning Denna

Läs mer

Proj-Iteration 3. Grov plan för releaser

Proj-Iteration 3. Grov plan för releaser Proj-Iteration 3 PVG/Coaching Boris Magnusson Datavetenskap LTH Proj-Iter3-1 Grov plan för releaser Kunden är mycket nöjd med första releasen som visar att stora framsteg gjorts med implementationsarbetet.

Läs mer

En studie om parprogrammering i praktiken

En studie om parprogrammering i praktiken En studie om parprogrammering i praktiken Mia Nyström Karin Wanhainen Johan Rix 29 maj 2002 Sammanfattning Parprogrammering är en av de mest omdiskuterade grundstenarna i Extreme Programming (XP). All

Läs mer

Continuous Integration med Jenkins. Linus Tolke Enea Experts

Continuous Integration med Jenkins. Linus Tolke Enea Experts Continuous Integration med Jenkins Linus Tolke Enea Experts Föredraget Grunderna i mjukvaru-cm Trender inom mjukvaruutveckling Continuous Integration Vad är Jenkins Demo Jenkins i ArgoUML-projektet Problem

Läs mer

Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt

Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt Motivationsfaktorer - Test inom Agila utvecklingsprojekt Magnus Jonsson & Therese Hansson Flerårig erfarenhet från ett globalt utvecklingsprojekt där vi införde Agile & Scrum metodik i hela organisationen

Läs mer

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander F6 Objektorienterad design ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se långa ord AKTIVITETER I PROGRAMVARUUTVECKLING Iterativ utveckling Kravspecifikation Design Implementation Testning

Läs mer

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande: WEBBUTVECKLING Ämnet webbutveckling behandlar de tekniker som används för att presentera och bearbeta information i webbläsaren samt utifrån dessa tekniker skapa och vidareutveckla statiska och dynamiska

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

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

QC i en organisation SAST 2008-09-16

QC i en organisation SAST 2008-09-16 QC i en organisation SAST 2008-09-16 1 Agenda Hur är vi organiserade inom test på SEB? Hur är QC uppsatt på SEB? Hur arbetar vi med QC i en stor organisation? Uppfyllde QC våra förväntningar och hur har

Läs mer

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:

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

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Klient/server Översikt Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Lektion 1: Webbtekniker från Microsoft Microsoft webbtekniker. ASP.NET. Klientsidan. Internet Information Server.

Läs mer

TDP023 Projekt: Agil systemutveckling

TDP023 Projekt: Agil systemutveckling TDP023 Projekt: Agil systemutveckling Johan Åberg johan.aberg@liu.se Tre moment Projekt 8hp Marknadsföring av produkt 2hp Kopplat till projektarbetet Individuell rapport 2hp Kopplat till projektarbetet

Läs mer

Kritik av Extrem Programmering

Kritik av Extrem Programmering Kritik av Extrem Programmering Markus Borggren d01mbo@efd.lth.se Martin Persson d01mp@efd.lth.se D01, Lunds Tekniska Högskola 15 februari, 2004 Abstract I denna djupstudie kommer vi att försöka, på ett

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-04-28 Tid: 08-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

Hi-Fi Prototyping + laborationsgenomgång & verktyg

Hi-Fi Prototyping + laborationsgenomgång & verktyg Hi-Fi Prototyping + laborationsgenomgång & verktyg Karin Fahlquist 2015 Frågor att besvara Vad innebär prototyping? Vad är speciellt med hi-fi prototyping? Hur kan man använda dem? Hur väljer man nivå

Läs mer

Beijer Electronics AB 2000, MA00336A, 2000-12

Beijer Electronics AB 2000, MA00336A, 2000-12 Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this

Läs mer

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System Magnus Juvas Qwise Om oss: Qwise Vi hjälper systemutvecklingsteam att bli bättre. Vi är experter på ALM och Team System. Vi

Läs mer

Länkade listor och automatisk testning

Länkade listor och automatisk testning 1 (6) Länkade listor och automatisk testning Algoritmer och datastrukturer Obligatorisk nr 3 Syfte Att ge träning i programmering av länkade listor på låg abstraktionsnivå med primitiv pekarmanipulering.

Läs mer

Versionshantering med Git

Versionshantering med Git Versionshantering med Git Vad, varför och hur? Magnus Nielsen Institutionen för datavetenskap, LiU magnus.nielsen@liu.se Vad ska jag ha Git till? Versionshantering Sparar källkod (eller vad som helst)

Läs mer

Introduk+on +ll programmering i JavaScript

Introduk+on +ll programmering i JavaScript Föreläsning i webbdesign Introduk+on +ll programmering i JavaScript Rune Körnefors Medieteknik 1 2012 Rune Körnefors rune.kornefors@lnu.se Språk Naturliga språk Mänsklig kommunika+on T.ex. Svenska, engelska,

Läs mer

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1 Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4

Läs mer

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH F2 XP Extrem Programmering översikt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH Vad är XP? En metod för hur man utvecklar programvara i grupp i nära samspel

Läs mer

Användarcentrerad systemdesign

Användarcentrerad systemdesign Användarcentrerad systemdesign Föreläsning 11: Agile-processer och ACSD Stefan Blomkvist Avdelningen för MDI/IT, Uppsala Universitet, Stefan.Blomkvist@hci.uu.se www.it.uu.se/edu/course /homepage/acsd/

Läs mer

Proj-Iteration 5B. Plan för återstående iterationer

Proj-Iteration 5B. Plan för återstående iterationer Proj-Iteration 5B PVG/Coaching Boris Magnusson Datavetenskap LTH PVG/Coach 2009. Proj-Iter5B : 1 Plan för återstående iterationer Förutom att arbeta vidare på stories skall release göras både under iteration

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

Scaled Agile Framework

Scaled Agile Framework Scaled Agile Framework Grunder för självorganisation Vad är det och är det bra? @svante_lidman svante.lidman@coreboost.se 1 Vem är Svante? Senaste 6-7 åren Konsultat inom Large-Scale Lean/Agile De +20

Läs mer

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive AGIL KRAVHANTERING Hitta behoven bakom kraven!!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive KRAVSTÄLL EN PRODUKT! Skriv ner tre krav som ni ställer på produkten INNOVATIONSDRIVNA PRODUKTER...

Läs mer

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen. Entity Framework Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen. Vem är jag? Mitt namn är Björn Jönsson och jobbar på Tahoe Solutions, ni når mig via mail: bjorn.jonsson@tahoesolutions.se

Läs mer

2.1 Installation of driver using Internet Installation of driver from disk... 3

2.1 Installation of driver using Internet Installation of driver from disk... 3 &RQWHQW,QQHKnOO 0DQXDOÃ(QJOLVKÃ'HPRGULYHU )RUHZRUG Ã,QWURGXFWLRQ Ã,QVWDOOÃDQGÃXSGDWHÃGULYHU 2.1 Installation of driver using Internet... 3 2.2 Installation of driver from disk... 3 Ã&RQQHFWLQJÃWKHÃWHUPLQDOÃWRÃWKHÃ3/&ÃV\VWHP

Läs mer

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,

Läs mer

Användarcentrerad systemdesign

Användarcentrerad systemdesign Användarcentrerad systemdesign Föreläsning 9: Agile-metoder, XP och ACSD Stefan Blomkvist MDI / IT, Uppsala Universitet, stefan.blomkvist@it.uu.se XP www.it.uu.se/edu/course /homepage/acsd/s04 Dagens föreläsning

Läs mer

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban Presentation Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban Om AddQ Mission Vi skapar affärsnytta för kunden genom specialisttjänster inom test, kvalitetssäkring och effektivisering Tjänsteområden

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH F2 XP Extrem Programmering översikt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH Syfte & Mål Ge en helhet av vad XP är Mål & syfte med XP - varför ser metoden

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

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

Från extern till intern på tre dagar Erfarenheter från externa lärares pedagogiska kompetensutveckling

Från extern till intern på tre dagar Erfarenheter från externa lärares pedagogiska kompetensutveckling Från extern till intern på tre dagar Erfarenheter från externa lärares pedagogiska kompetensutveckling Maria Göransdotter, Designhögskolan, Umeå Universitet Margareta Erhardsson, Universitetspedagogiskt

Läs mer

Slutrapport Get it going contracts

Slutrapport Get it going contracts Slutrapport Get it going contracts Författare: Anthony Dry Datum: 2011-06-02 Program: Utvecklare av digitala tjänster Kurs: Individuellt mjukvaruutvecklingsprojekt 7.5p Linnéuniversitetet (Kalmar) Abstrakt

Läs mer

LARS. Ett e-bokningssystem för skoldatorer.

LARS. Ett e-bokningssystem för skoldatorer. LARS Ett e-bokningssystem för skoldatorer. Därför behöver vi LARS Boka dator i förväg. Underlätta för studenter att hitta ledig dator. Rapportera datorer som är sönder. Samordna med schemaläggarnas system,

Läs mer

Projekt intranät Office 365 av Per Ekstedt

Projekt intranät Office 365 av Per Ekstedt Projekt intranät Office 365 av Per Ekstedt 1 BESKRIVNING AV UTFÖRANDE Uppdraget planeras att genomföras med ett agilt arbetssätt samt best practice från Microsoft gällande SharePoint online. Uppdraget

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

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Aletta Nylén http://user.it.uu.se/~aletta Epost: aletta.nylen@it.uu.se Rum: 1216 Kursinfo Lärare: Aletta Nylén Jesper Wilhelmsson Litteratur: Object-Oriented Software Development

Läs mer

Snabbguide Visma Compact API Version 5.1 Copyright 2006-2008 Visma Spcs AB Visma Compact API

Snabbguide Visma Compact API Version 5.1 Copyright 2006-2008 Visma Spcs AB Visma Compact API Snabbguide Visma Compact API Version 5.1 Copyright 2006-2008 Visma Spcs AB Visma Compact API Introduktion Visma Compact API är ett programmeringsgränssnitt framtaget för att underlätta integration av Visma

Läs mer

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Vad gör vi här? Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad

Läs mer

Introduktionsmöte Innehåll

Introduktionsmöte Innehåll Introduktionsmöte Innehåll Introduktion till kursen Kursens mål och innehåll Undervisning Datavetenskap (LTH) Introduktionsmöte ST 2019 1 / 14 EDAA01 Programmeringsteknik - fördjupningskurs Ingen sommarkurs

Läs mer

Installationsguide för mysql och OLA Server/OLA Klient

Installationsguide för mysql och OLA Server/OLA Klient Installationsguide för mysql och OLA Server/OLA Klient Baserad på OLA 5.0.0-6 Dokumentversion: 20110601 Författare: Gunnar Svanberg, Järfälla Redigering och layout: Niklas Wrane, SOFT Sid 1 (25) version

Läs mer

SCRUM och mycket mer

SCRUM och mycket mer Typ av dokument Anvisning Skapad Senaste uppdatering 2008-01-27 2008-11-13 1 (5) Sida 1 Det minsta möjliga? SCRUM och mycket mer Om man nu vill vara agile och inte har allt tid i världen, vad skall man

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

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02) UMEÅ UNIVERSITET Institutionen för datavetenskap Thomas Johansson Oktober 1998 Programutveckling med Java Development Kit (JDK 1.1.x) och Programmers File Editor (PFE 7.02) Umeå universitet 901 87 Umeå.

Läs mer

Filsäkerhet i Windows NT (NTFS)

Filsäkerhet i Windows NT (NTFS) Filsäkerhet i Windows NT (NTFS) Jens Granlund 19.10.2000 Introduktion Detta dokument försöker att beskriva säkerhetsmekanismerna i Windows NTs filsystem NTFS på ett lättbegripligt sätt. Access Control

Läs mer

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level Kursplan IK1004 Java - Grafiska användargränssnitt med Swing 7,5 högskolepoäng, Grundnivå 1 Java - GUI Programming with Swing - Undergraduate Level 7.5 Higher Education Credits *), First Cycle Level 1

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

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems 2018-05-07 FUNCTONAL SAFETY DO-178C är processorienterad dentifiera risker (hazards) och de säkerhetsfunktioner

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2010-04-07 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

EDA095 Nätverksprogrammering

EDA095 Nätverksprogrammering EDA095 Nätverksprogrammering Projekt Checkers Grupp 8, 2008 Dag Wahlberg Leo Barnes Erik Wallenborg Ylva Mellbin

Läs mer

Agile-metoder, XP och ACSD

Agile-metoder, XP och ACSD Användarcentrerad systemdesign. Föreläsning 12 Agile-metoder, XP och ACSD Stefan Blomkvist MDI / IT, stefan.blomkvist@it.uu.se & Profdoc AB www.profdoc.se www.it.uu.se/edu/course /homepage/acsd/s04 XP

Läs mer

Thomas Pettersson. Sammanfattning. Född: 1969. Telefon: +46760446260. Kristinagatan 23B 602 26 Norrköping. thomas.pettersson@debadata.

Thomas Pettersson. Sammanfattning. Född: 1969. Telefon: +46760446260. Kristinagatan 23B 602 26 Norrköping. thomas.pettersson@debadata. Thomas Pettersson Född: 1969 Telefon: +46760446260 Adress: E-post: Kristinagatan 23B 602 26 Norrköping thomas.pettersson@debadata.se Sammanfattning Thomas är född 1969 och är bosatt i Norrköping. Han har

Läs mer

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Föreläsning 1, vecka 6: Abstraktion genom objektorientering TDA 548: Grundläggande Programvaruutveckling Föreläsning 1, vecka 6: Abstraktion genom objektorientering Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Hur skulle ni implementera detta? (3D demo) Vi återkommer

Läs mer

Introduktion till programmering SMD180. Föreläsning 1: Programmets väg

Introduktion till programmering SMD180. Föreläsning 1: Programmets väg Introduktion till programmering Föreläsning 1: Programmets väg 1 1 Vad är en dator? En maskin vars beteende styrs av de bitmönster som finns lagrade i datorns minne (inte helt olikt förra seklets självspelande

Läs mer

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE SVENSK STANDARD SS-ISO/IEC 26300:2008 Fastställd/Approved: 2008-06-17 Publicerad/Published: 2008-08-04 Utgåva/Edition: 1 Språk/Language: engelska/english ICS: 35.240.30 Information technology Open Document

Läs mer