language arrow_drop_down
DK NO EN
share
Blogg: 2020-12-04

Tre steg till testautomatiserad miljö.

Att testning av mjukvara har blivit allt mer automatiserad är numera för de flesta en självklarhet. Men hur ska man hitta rätt i djungeln bland verktyg och program? Och finns det tillfällen när automatiserade tester lämpar sig bättre eller sämre?  

Tre steg till testautomatiserad miljö

I detta inlägg redovisar jag några verktyg som jag stött på samt lite trix och knep – för att hitta rätt väg i testautomatiseringsvärlden. Och nej, det är inte så snårigt som det verkar! 

Vi lever i en värld som tycks gå fortare för varje minut. Som testare innebär det att nya tekniker och program dyker upp som svampar ur marken varje dag. Det gäller att vara anpassningsbar och ständigt söka efter nya metoder för att möta nya krav och att kunna leverera snabbt.

Låt pyramiden visa dig vägen att välja rätt 

Till att börja med är det på sin plats att klargöra att testautomatisering kan vara ett bra komplement till manuell testning eftersom det kan bidra till effektivisering av en nuvarande testprocess. Men hur vet du när du ska använda dig av ett verktyg för testautomatisering? 

Testpyramiden nedan är en av flera bra hjälpmedel som du kan använda dig av. 
Pyramiden visar hur stor täckning av automatiserade tester man kan använda sig av på respektive nivå i en applikation. Unit-tester bör enligt pyramiden ha bredast täckning medan UI-tester har minst täckning av automatiserade tester. 

IoT, pains and gains

Steg 1, Gränssnittstester

Överst i pyramiden är gränssnittstester/UI-lagret. Denna nivå är som sagt minst lämpad och bör därför utgöra den minsta andelen av automatiserade tester. Testerna tar lång tid att exekvera och det finns mycket integration som kan göra dina tester instabila.

Ett exempel på verktyg som en testare kan använda sig av är Selenium, som är ett ramverk som används för att automatisera webbapplikationer. Selenium består av två varianter där Selenium IDE är ett plugin till webbläsaren. Den kan spela in de kommandon du utför i webbläsaren för att sedan kunna återupprepa samma kommandon. SeleniumWebDriver är den andra varianten, vilket är ett open source ramverk som har stöd från webbläsare som exempelvis Chrome och Firefox . Den består av ett API som kan anropas från flertalet programmeringsspråk, bland annat Java och Python.

Steg 2, Servicetester

Enligt testpyramiden bör nivån för servicelagret kunna utgöra en ganska stor del av automatiska tester. Dessa går till skillnad från UI-testerna lite snabbare att exekvera. Tester i detta lager kan exempelvis vara att testa programmets API, som i sin tur kan vara REST- eller SOAP-tjänster.

Postman är en API-klient som låter dig testa och automatisera SOAP-tjänster och är även populärt för att testa REST-tjänster.

SoapUI är ett annat open source verktyg som används för att testa SOAP och REST-tjänster.

Steg 3, Enhetstester

Enhetstester/Unit-lagret. Enligt pyramiden kan detta lagrer utgöra den största andelen av automatiserade tester och de är också dessa som går snabbast att exekvera. Ett enhetstest kan vara ett test av en metod i en klass.

Det finns många olika ramverk för enhetstester att välja mellan baserat på vilket språk man använder sig av och till vilket användningsområde. JUnit och Mockito är två exempel på open source ramverk som kan användas vid enhetstester för Java-källkod. Medans språk som C/C++ använder sig t.ex. av CUnit, CPPUnit och CUTE ramverk för enhetstester.

Tips på fler ramverk: https://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B

Testpyramiden är ett av många trix man kan ta till för att utröna vilket program eller vilken metod som ska användas vid testautomatisering. Detta var bara ett axplock av verktyg för testautomatisering. Använder ni samtliga delar utav pyramiden i eran verksamhet eller har ni egna erfarenheter att dela med er av så hör gärna av er!

// Claudia von Semkov, Software Consultant, Prevas AB

Kommentarer

    Du måste vara inloggad för att få kommentera

    Stängd för fler kommentarer

    Relaterade artiklar

    pageRefs: [Produktutveckling, Digitalisering]