Användning av testautomation inom Extendas utvecklingsorganisation



Relevanta dokument
Agil testning i SCRUM

Enhetstester på.netplattformen

Testplanering, test-first, testverktyg

Erfarenheter av automatiserad testning

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

Continuous Integration med Jenkins. Linus Tolke Enea Experts

30 år av erfarenhet och branschexperts

Metoder och verktyg för funktionssäkerhet

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

på ett stort spelföretag Andreas Ström

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

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

LETTER OF NET CHANGES RELEASE 5.7. Beställning E-post: FACKTA Point of Sale V5R07

Teknisk kravspecifikation för nytt Omsorgs system

V!cto. Att tjäna pengar genom bättre testning med

Några grundläggande begrepp

Belastningstester med Visual Studio Gränssnittet

LETTER OF NET CHANGES RELEASE 5.3. Beställning E-post: FACKTA Point of Sale V5R03

Version Testteam 4 Testledare: Patrik Bäck

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

Reijo Soréus. NyA. Presentation för Ladok-Inkubator Göteborg

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

LETTER OF NET CHANGES RELEASE 5.4. Beställning E-post: FACKTA Point of Sale V5R04

Övningstenta (Kursplan 2011) Ver 2015,

LETTER OF NET CHANGES RELEASE Beställning E-post: FACKTA Point of Sale V5R10

LETTER OF NET CHANGES RELEASE Beställning E-post: FACKTA Point of Sale V5R11

Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI

Testning av applikationer

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

Vad är. Domändriven design?

Vi gjorde allting rätt

Webbserverprogrammering

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

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Mer om kodkvalitet. Mer om kodkvalitet. Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité?

Visuell GUI Testning

SKOLFS. beslutade den XXX 2017.

Frågor på upphandling av Personal och lönesystem A /2017. Totalt 30 frågor inkomna till och med

LETTER OF NET CHANGES RELEASE 6.2. Beställning E-post: FACKTA Point of Sale V6R2

Platina och kvalité. Rasmus Staberg, Teknisk direktör,

STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5)

LETTER OF NET CHANGES RELEASE 6.5. Beställning E-post: FACKTA Point of Sale V6R2

LETTER OF NET CHANGES RELEASE 6.3. Beställning E-post: FACKTA Point of Sale V6R2

Fem fördelar med att automatisera redovisningen

Filhanterare med AngularJS

Configuration Management Vägen till ordning och reda med rätt stöd!

Mobilt Efos och ny metod för stark autentisering

Basware Catalogs Katalogtjänster för leverantörer och kunder

DI Studio nyheter

SPAice och SPA-Analys Rql-applikationer hos Map Sverige

Makes quality Happen NÖJDA KUNDER EFFEKTIVITET

LETTER OF NET CHANGES RELEASE 6.1. Beställning E-post: FACKTA Point of Sale V6R1

Priskamp. En prisjämförelsesite Björn Larsson

LETTER OF NET CHANGES RELEASE 5.2. Beställning E-post: FACKTA Point of Sale V5R02

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

AdmiPro Deposition/Lojalitet

Mobilt Efos och ny metod för stark autentisering

Exercise 1b: Requirements evaluation

Mobilt Efos och ny metod för stark autentisering

Automatiserade testsystem

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

Teststrategier och användning av testautomation

Kvalitetssäkra ditt projekt med kontinuerlig integration

KUNDREGISTER Sid 2(7) Teknisk specifikation

Testramverk och Model based testing med java i praktiken

Insidan av ett Open Source projekt. Nicklas Avén

Slutrapport. APFy.me

MBS 12 & Mamut Online Desktop. Ole M Hasven - Product Manager, Marketing Partner Summit, oktober 2008 oleha@mamut.com

LEDNINGSÄGARMODUL. Systemkrav 1(6)

Examinationsfrågor

Systemutvecklare.NET, C#/VB, C/C++, ASP.NET, T-SQL, JAVA Systemdesign

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

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

Testautomatisering på en Microsoft-plattform inom banksektorn

Projekt intranät Office 365 av Per Ekstedt

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

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto

LETTER OF NET CHANGES RELEASE 5.5. Beställning E-post: FACKTA Point of Sale V5R05

Dag König Developer Tools Specialist Microsoft Corporation

SF Bio App. Repport. Test summary. 1- Syfte. 2. Produktöversikt. Författare: Zina Alhilfi Datum: Version: v1,0

Innehållsförteckning Bakgrund/Generell Information... 4

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Regressionstestning teori och praktik

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Thomas Pettersson. Sammanfattning. Född: Telefon: Kristinagatan 23B Norrköping.

Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer

(7) Neptune Version release information. Copyright Visma. Med ensamrätt.

Introduktion till hårdvara, mjukvara och operativsystem

LETTER OF NET CHANGES RELEASE 5.8. Beställning E-post: FACKTA Point of Sale V5R08

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

Samarbetsstrukturer för att självorganisera inom givna ramar.

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

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

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

Testplan Cykelgarage

Vår resa till bra Acceptanstestning. Ingela Hagman Thomas Cook Northern Europe

Lösenordsregelverk för Karolinska Institutet

Kurser och seminarier från AddQ Consulting

Transkript:

Testautomation Användning av testautomation inom Extendas utvecklingsorganisation

Agenda Presentation av Extenda Vad är en POS? Test av POS Automatiska tester Sammanfattning 2

Kort historik 1982 Extenda startar 2 anställda 1984 1994 10- årigt samarbete med Nokia/ICL/Fujitsu inleds Extenda Retail ser dagens ljus Windows 95 1995 100 butiker 200 kassor 2008 Idag 170 anställda 5 000 butiker - > 5 500 25 000 kassor - > 30 000 Kunder i 25 länder ( USA,Canada,Europa) 100 personer + tredjepart utvecklar Delphi,.NET, Java Windows (NT,2000,XP,WePOS) Unix / Linux

Kundreferenser - Butikssystem

Vår vardag finns idag i 24 länder med 1345 butiker. Hemköp, Willys och Willys hemma, Dagab samt Axfood Närlivs. Därutöver samverkar Axfood med över 500 handlarägda butiker. 2 300 egna och handlarägda butiker i Sverige, Norge och Baltikum. 25 000 aktiva rabatter. 5

Vår ekvation format länder integrationer konfigurationer 6

Agenda Presentation av Extenda Vad är en POS? Test av POS Automatiska tester Sammanfattning 7

Vad är en POS? Point Of Sale Ett datorbaserat kassaregister där användaren kan skapa försäljningstransaktioner, hantera betalprocesser m.m. Vanlig periferiutrustning: Touch-skärm Specialanpassat tangentbord Streckkodsläsare Kvittoskrivare Kunddisplay Kassalåda Våg Betalterminal Mjukvara POS POS server Back Office Central Office 8

Extendas POS Applikation och ramverk Drygt 80 definierade användningsfall Koden uppdelad i olika delsystem för att kunna återanvändas i andra applikationer All klientkod är inte tillgänglig för test Flera aktiva versioner Höga krav på bakåtkompabilitet Java 250000 rader kod i ramverket 9

Agenda Presentation av Extenda Vad är en POS? Test av POS Automatiska tester Sammanfattning 10

Extenda - Test organisation Distribuerad testverksamhet inom våra Quality Delivery units och Product Development Testarnätverk Testledarforum Ca 25 testare och testledare Test strategi baserad på ISTQB Foundation Syllabus SCRUM / RUP och W-modellen, kund-/produkt-/företagsanpassad release-strategi Testmål definierade för varje kund och produkt Spårbarhet Krav och Testfall hanteras i DOORs och Test Director per kund Manuell och automatiserad test

Agenda Presentation av Extenda Vad är en POS? Test av POS Automatiska tester Sammanfattning 12

Automatiska tester Kostnaden för att rätta defekter ökar dramatiskt när man går från utvecklingsfasen till test- och underhållsfaserna. Viktigt att hitta och rätta defekter medan det fortfarande är billigt 13

Syftet med automatiska tester Hitta fler defekter innan leverans till test Få bort defekter som dyker upp om och om igen Frigöra tid hos testgruppen för mer avancerade tester Göra utvecklarna modigare när det gäller att förändra existerande kod 14

Typer av automatiska tester Statisk analys av källkod Test av funktionalitet Test av 3:e partskod/-applikationer Databashanterare Kodbibliotek/drivrutiner Komponenttest Uppfyller komponenterna de krav som ställs av komponentramverket Meta-tester Finns det unit-tester för alla komponenter Täcker testerna tillräckligt stor del av koden 15

Statisk analys Analys av koden görs i samband med byggsteget Rapporter genereras med detaljerad information om analysen och vilka fel som hittats Verktyg som används: Checkstyle FindBugs JavaNCSS JDepend 16

Checkstyle Checkstyle kontrollerar att koden ser snygg ut och följer kodstandard. T.ex att: koden är dokumenterad namnkonventioner följs man håller sig inom definierade storleksgränser Rader per fil Rader per metod Tecken per rad etc det inte finns copy-paste kod komplexitetstalen för metoder är på en rimlig nivå Checkstyle kan integreras med utvecklingsmiljön Eclipse. Detta gör att utvecklaren direkt ser när ett problem uppstår. 17

JavaNCSS Räknar ut mättal för: Antal kodrader Antal dokumentationsrader Komplexitetstal för metoder Används i byggprocessen och genererar rapporter som ligger till underlag för beslut om refakturering av kod. 18

FindBugs Findbugs letar efter defektmönster i kod Knepiga egenheter i programspråket Missförstådda API metoder Felaktiga booleska uttryck FindBugs kan integreras i utvecklingsmiljön Eclipse och är ytterligare ett exempel på hur man kan hitta fel så tidigt som möjligt. 19

JDepend JDepend mäter designkvalitet utifrån hur lätt koden är att utöka återanvända underhålla Mättal räknas fram som visar hur beroende/oberoende och hur abstrakta/konkreta olika delar av koden är. JDepend-rapporten som skapas i byggprocessen används som underlag för att förbättra ramverksegenskaperna i koden. 20

JUnit JUnit är ett verktyg för att exekvera enhetstester i form av kod. Vi använder JUnit för att testa: Funktionalitet API:er affärsregler Egenskaper hos 3:e parts-kod Transaktionsnivåer i databaser Trådhantering i drivrutiner Komponenter Uppfyller komponenterna de krav som ramverken ställer Finns det dokumentation som beskriver komponenten Är eventuella konfigurationspunkter dokumenterade Har gränssnitt och klasser gjorts tillgängliga för användning i andra kodpaket på ett korrekt sätt Meta-tester Finns det enhetstester för alla komponenter Även Junit finns integrerat med utvecklingsmiljön 21

Emma mäter täckningsgraden av enhetstesterna på olika nivåer. Klass Metod Rad Block Data från flera körningar kan ackumuleras Kan integreras med utvecklingsmiljön 22

Automatiserade Regressionstester - Varför? Manuella regressionstester tar lång tid Produkten är funktionsrik med många användningsfall, var och ett med ett antal flöden Produkten är också mycket konfigurerbar ~ 1 man-vecka för regressionstest av hela produkten Fel hittades sent på releasecykeln Förändringar kan påverka andra delar av systemet Utvecklare var "alltför" försiktiga att göra ändringar i koden För att lösa dessa problem, fanns ett behov av verktyg för automatiserade regressionstester. 23

Extenda Cashier Player - ECP Produktens komplexitet gjorde att befintliga produkter på marknaden inte gick att använda Extenda beslöt att bygga sitt eget verktyg som kallas Extenda Cashier Player. ECP simulerar kassören genom att spela in kassörens handlingar för att kunna spela upp dem vid ett sendare tillfälle. Handlingar spelas in i enheter som kallas Script. De kan ses som olika flöden i ett användningsfall. Script kan antingen köras ett och ett eller i batch-mode. Faktiska utdata från testerna, alltså data på kunddisplayen, kvittoskrivaren osv, jämförs med förväntat utdata. E-post skickas till supporten när fel uppstår vid tester 24

GUI 25

Nuläge Alla våra regressionstester är inspelade som ECP scripts Varje natt kör ECP alla script mot det senaste bygget av produkten. Produktteamet informeras via e-post om utfallet av testerna. Vi genomför alltså dagliga regressionstester av den senaste kodbasen för vår produkt. 26

Vinster Defekter hittas tidigt. Utvecklarna kan göra refaktoreringar och andra kodändringar utan någon större oro. Utbyte av produktplattform eller middleware, som exempelvis databas, kräver inte en stor testinsats. Väsentligt reducerad testtid gör att testarna att koncentrera sig på tester av mer komplex art. Kunder med specifikt anpassad kodbas kan skapa och köra script för denna. ECP är, tillsammans med andra former för automatiserade tester, en avgörande faktor för att Extenda ska leverera högkvalitativa produkter. Vinsterna överväger med god marginal kostnaderna för att utveckla ECP. 27

Problem med automatiserade tester Uppföljning av testresultat Finns ofta fler fel än vad utvecklarna kan fixa och som det är ekonomiskt försvarbart att fixa Falska negativ Verktygen är inte 100%-iga. Ibland rapporterar de fel för saker som inte är fel Testerna ökar kodbasen Ökat utvecklingskostnad Ökat underhåll Fler defekter Tar längre tid att exekvera 28

Framtida förbättringar Dela upp enhetstesterna i olika grupper som körs Innan incheckning till versionshanteringsverktyg Vid varje bygge Varje natt Inför release Samla täckningsdata från körningar av Cashier Player Reducera antalet falska negativ 29

Agenda Presentation av Extenda Vad är en POS? Test av POS Automatiska tester Sammanfattning 30

Sammanfattning Automatiserade tester lönar sig Var inte rädda för att utveckla egna testverktyg Hitta felen så tidigt som möjligt, helst samtidigt som koden skrivs. Bygg in testbarhet i applikationerna 31

Länkar Checkstyle (http://checkstyle.sourceforge.net/) JavaNCSS (http://www.kclee.de/clemens/java/javancss/) FindBugs (http://findbugs.sourceforge.net/) JDepend (http://clarkware.com/software/jdepend.html) Junit (http://www.junit.org/) Emma (http://emma.sourceforge.net/) Doors (http://www.telelogic.com/products/doors/) TestDirector (http://www.hp.com) Extenda (http://www.extenda.se) 32

peter.mathsson@extenda.se anders.rennermalm@extenda.se