
Att skriva automatiserade tester som en del av sin leveranskedja börjar idag bli mer och mer naturligt för många. Något som kan vara en utmaning är att få det att fungera i långa loppet inom teamet och ska man börja automatisera något så finns det en uppsjö av olika verktyg man kan välja. Ditt val av testautomatiseringsverktyg för ett projekt eller ditt agila team kan påverka kvaliteten och effektiviteten av testprocessen. Vilket som är det bästa verktyget för ett visst scenario beror på ett antal faktorer.
Vad är viktigt att tänka på när man väljer testautomatiseringsverktyg?
-
Typen av programvara
Varje testautomatiseringsverktyg har utformats med en viss typ av programvara, plattform eller språk i åtanke. Det är avgörande att välja ett verktyg som är specialiserat för den specifika typen av applikation som ska testas. Vissa verktyg är inriktade på webbapplikationer medan andra kan vara mer lämpliga för mobilappar eller desktopapplikationer.
-
Omfattningen av testningen
Beroende på projektets storlek och komplexitet kan vissa verktyg vara bättre lämpade för omfattande testning medan andra passar bättre för mindre omfattande testning. För stora projekt kan verktyg med funktionaliteter för omfattande testhantering vara avgörande, medan mindre projekt kanske drar nytta av enklare och mer lättanvända verktyg. Att förstå omfattningen av testningen hjälper till att identifiera vilka verktyg som bäst möter kraven.
-
Nivån av automatisering
Verktygens förmåga att stödja olika nivåer (såsom enhets-, API- eller GUI-baserade tester) av automatisering är också viktigt att överväga. En del verktyg är konstruerade för att skapa helt automatiserade testfall för att kunna automatisera alla delar av testningen, medan andra ger mer flexibilitet och kräver mer manuellt ingripande. Det är nödvändigt att analysera behovet av automatisering och välja ett verktyg som kan anpassas efter dessa krav.
-
Budget
Priset på testautomatiseringsverktyg varierar avsevärt. Vid valet av verktyg måste man överväga projektets budgetrestriktioner. Det är exempelvis viktigt att utvärdera om de extra funktionerna eller supporten som erbjuds av licensierade verktyg rättfärdigar kostnaden jämfört med öppen källkod. Man kan få många ramar på plats och med flera funktioner som underlättar testdatahantering, objektigenkänning och även modellerande med testfall om man använder ett licensverktyg. De som har öppen källkod har man större frihet med då det ofta blir det man kodar, vilket kan vara bra för utvecklare men mer komplicerat att hantera om man inte är lika teknisk samt att man har en längre startsträcka.
-
Tillför testautomatisering något värde?
Innan man investerar tid och resurser i testautomatisering är det viktigt att utvärdera om det faktiskt tillför något värde för det aktuella projektet. Om testautomatisering inte sparar tid eller pengar och inte heller ger mätbara fördelar kan man kanske överväga att avstå från att automatisera vissa delar av testningen. Om det till exempel handlar om en enkel applikation med få användare, kan det vara mer effektivt att utföra testningen manuellt.
-
Teamets kunskaper:
Teamets befintliga kunskaper om olika verktyg är en nyckelfaktor. Om utvecklarna eller testarna redan är bekanta med ett visst verktyg kan det vara kostnadseffektivt och tidsbesparande att fortsätta använda det. Å andra sidan kan det vara nödvändigt att lära sig ett nytt verktyg om det bättre uppfyller projektets behov. Idet fallet måste man även ta hänsyn till upplärningstiden som krävs för att lära sig det nya verktyget samtidigt som det kan vara lämpligt att ta ställning till vad som är gångbart på marknaden så att man lär sig ett verktyg som är mer framtidssäkert.
-
Öppen källkod vs licensierad mjukvara:
Valet mellan öppen källkod och licensierad mjukvara är värt att överväga. Öppen källkod ger en lägre initial kostnad och mer frihet, men kräver ofta mer teknisk kompetens som i vissa fall kan innebära en mer långsiktig investering av både tid och pengar om en kompetensutveckling måste ske hos individerna i teamet. Licensierad mjukvara ger fördelar som support och högre tillgänglighet i form av mindre teknisk insikt, men till en högre kostnad initialt.
-
Tillgängliga resurser:
Utvärdera vilka resurser som är tillgängliga inom organisationen, inklusive människor, tid, maskinvara och redan befintliga verktyg. Om det finns begränsningar i resurser kan det påverka valet av testautomatiseringsverktyg. Vissa verktyg kanske kräver mer teknisk expertis, vilket potentiellt kan leda till en extrakostnad i form av upplärning, medan andra kan vara mer användarvänliga och kräva mindre tekniska resurser. Alternativt kanske den redan befintliga verktygsfloran begränsar valet av det testautomatiseringsverktyg som är kompatibelt med dessa verktyg. Att bedöma tillgängliga resurser kan vara avgörande för att välja ett verktyg som passar in i organisationens kapacitet och behov.
Det här är några av de viktigaste delarna att utvärdera så att man lättare kan besluta om vilket testautomatiseringsverktyg som passar bäst för just ditt projekt eller ditt team.
Nedan listas ett antal testautomatiseringsverktyg baserat på vilken typ av applikationer man vill testa utifrån vissa av frågeställningarna ovan.
Om man vill testa webbapplikationer, GUI (Graphical User Interface) eller E2E (End-to-End) och har den tekniska kunskapen som gör det möjligt att välja en lösning baserad på öppen källkod, så är några populära verktyg idag Playwright, Selenium eller Cypress. Om man i stället föredrar att skriva mindre kod och vill få mer struktur och verktygsstöd så är OpenText UFT One, Smartbear TestComplete och Tricentis Tosca väletablerade på marknaden och bra alternativ.
Om man i stället vill testa API:er med hjälp av verktyg som är baserade på öppen källkod, så är Postman och SoapUI de främsta alternativen som nästan alla testare har jobbat med idag. Båda dessa har också licenserade versioner där man får mer funktionalitet, struktur för samarbete, plattform i molnet, stöd för API design, Service Virtualization, Prestandatest mm.
Om enhetstester (unit tests) och testdriven utveckling (TDD) är målet, så hänger det mycket ihop med det utvecklingsspråk du jobbar. Några vanliga är JUnit för Java, xUnit.net för C#/.Net-plattformen generellt, Pytest för Python samt Cucumber.
För mobilappar så finns det inbyggd funktionalitet för test och testautomatisering direkt i SDK:n för respektive plattform. Xcode för UI test på iOS samt Espresso för Android i Android Studio. Appium är ett alternativ med öppen källkod. Men föredrar man licenserad mjukvara så är UFT Digital Lab, TestComplete och Tricentis Tosca alldeles utmärkta alternativ.
Ett exempelscenario – testautomatisering av webbappar.
Playwright och Selenium är båda kraftfulla verktyg för testautomatisering av webbappar. De har dock några viktiga skillnader som kan göra den ena till ett bättre val än den andra beroende på dina behov.
Modernitet
Playwright är ett relativt nytt verktyg som bygger på moderna tekniker, såsom WebDriver API och DOM-manipulation. Detta gör det mer effektivt och skalbart än äldre verktyg som Selenium, som bygger på WebDriver-protokollet.
Flexibilitet
Playwright stöder en mängd olika webbläsare och operativsystem, inklusive de senaste versionerna av Chrome, Firefox, Edge och Safari. Selenium stöder också en mängd olika webbläsare, men det är inte lika enkelt att använda med nyare webbläsare.
Lärbarhet
Playwright är enkelt att lära sig och använda. Det använder ett objektorienterat API som liknar JavaScript, vilket gör det lätt för utvecklare att komma igång. Selenium är också relativt enkelt att lära sig, men det kan vara mer komplext att använda för vissa typer av tester, då det kan kräva mer kod för att uppnå vissa uppgifter.
Erfarenhet
Selenium har varit i bruk i många år och har ett stort community av användare och utvecklare. Detta gör det till ett bra val för företag som behöver stöd för komplexa tester eller som vill ha tillgång till ett stort utbud av verktyg och bibliotek.
Stöd
Selenium stöds av en mängd olika verktyg och bibliotek, vilket gör det till ett bra val för komplexa tester. Playwright stöder också ett antal verktyg och bibliotek, men det är inte lika omfattande som Seleniums stöd.
Pris
Selenium är gratis och öppen källkod, vilket gör det till ett kostnadseffektivt alternativ. Playwright är också gratis, men det är inte lika öppen källkod som Selenium.
Sammanfattning
I allmänhet är Playwright ett bra val för företag och utvecklare som vill automatisera sina tester på ett effektivt och skalbart sätt. Det är särskilt bra för nybörjare som vill lära sig testautomatisering. Selenium är ett bra val för företag och utvecklare som behöver stöd för komplexa tester eller som har en budget.
Specifika situationer där det ena verktyget kan vara bättre än det andra.
Webbläsarstöd. Playwright är bättre på att hantera nya webbläsare än Selenium. Detta beror på att Playwright använder WebDriver API, som är utformad för att vara kompatibel med de senaste webbläsarna. Playwright fokuserar mer på moderna webbplattformar och ger djupare insikter i WebKit-baserade webbläsare. Selenium använder WebDriver-protokollet, som kan vara mindre kompatibelt med nya webbläsare.
Cross-browser-tester. Playwright är bättre på att automatisera cross-browser-tester än Selenium. Detta beror på att Playwright stöder en mängd olika webbläsare och operativsystem. Selenium stöder också en mängd olika webbläsare, men det kan vara mer komplext att använda för cross-browser-tester.
Asynkrona operationer. Selenium är huvudsakligen synkront och kan ha vissa begränsningar när det gäller hantering av asynkrona webbtekniker. Playwright har inbyggt stöd för asynkrona operationer och är utformat för att hantera moderna webbapplikationer som använder asynkrona JavaScript- och AJAX-tekniker.
Headless-tester. Playwright är bättre på att automatisera headless-tester än Selenium. Detta beror på att Playwright stöder headless-rendering, vilket gör det möjligt att automatisera tester utan en visuell webbläsare. Selenium stöder också headless-rendering, men det kan vara mindre effektivt än Playwright, då det ibland kräver ytterligare konfiguration för detta.
Komplexa tester. Selenium är bättre på att stödja komplexa tester än Playwright. Detta beror på att Selenium har ett större utbud av funktioner och verktyg för att stödja komplexa tester. Playwright stöder också komplexa tester, men det kan vara mer begränsat än Selenium.
Automatisering av flera sidor samtidigt. Selenium kräver oftast flera WebDriver-instanser för att testa flera webbplatser samtidigt. Playwright har inbyggt stöd för att automatisera flera sidor samtidigt, vilket kan vara användbart för tester som kräver interaktioner mellan flera flikar och fönster.
Begränsad budget. Selenium är ett kostnadseffektivt alternativ till Playwright. Detta beror på att Selenium är gratis och öppen källkod. Playwright är också gratis, men det är inte lika öppet källkod som Selenium.
Vilket verktyg är bäst?
Sammanfattningsvis beror valet mellan Selenium och Playwright på specifika behov och preferenser. Om man behöver ett brett webbläsarstöd och är bekant med Selenium kan det vara ett bra val. Å andra sidan, om man efterfrågar moderna funktioner, enklare syntax och stöd för flera sidor samtidigt, kan Playwright vara ett lämpligt alternativ. Det kan också vara värt att överväga hur väl verktyget passar in i den aktuella teknikstacken och hur enkelt det kan integreras i det redan befintliga testautomatiseringsflödet.