Översikt av testverktyg

2004-06-02 Artikelbanken Test Läst 15638 gånger

Inledning

Allt fler företag tar hjälp av olika tekniska hjälpmedel i testarbetet. Den här artikeln är en översikt till olika typer av testverktyg. Texten är baserad på de erfarenheter som jag har fått av att hjälpa kunder i olika verksamheter att välja och införa testverktyg i sin organisation. Om du vill fördjupa dina kunskaper om testverktyg, så rekommenderar jag min bok ”Test och kvalitetssäkring av IT-system” som är utgiven på Studentlitteratur. Boken innehåller ett kapitel som detaljerat beskriver syftet med olika testverktyg samt en process som hjälper dig att välja rätt verktyg och att införa det i din organisation.

Olika typer av testverktyg

Verktyg för hantering av krav

Verktyg för hantering av krav består av en databas där kraven lagras. Verktyget gör det möjligt att sortera och kraven och att skapa en hierarki som blir sökbar. Stöd för prioritering och dokumentgranskning finns i några få verktyg. I små organisationer används ofta Word och Excel i stället för ett särskilt kravhanteringsverktyg. Det går bra när den som arbetar med kraven är ensam, men så snart det är några personer som samtidigt behöver arbeta med kraven, blir dessa verktyg en begränsning eftersom det inte är möjligt att arbeta i samma fil samtidigt. Det blir lätt så att användarna slåss om samma Word-dokument eller Excel-fil.

En del kravhanteringsverktyg innehåller funktioner för att hantera testfall och felrapporter. Detta kan ge en god bild av hur kraven är relaterade till testfall och minska risken att det finns krav som inte testas. Det blir då möjligt att bedöma hur omfattande arbetsinsats som behövs om ett krav ändras. Tänk dig också möjligheten att kunna lämna en prognos till projektledningen för hur många nya fel som kan komma att hittas om ett krav ändras.

Hantering av testfall

De verktyg som finns på marknaden för att hantera testfall fungerar i stort sett på samma sätt som verktygen för att hantera krav. Testaren skriver in testfallen i verktyget och bygger upp en hierarki som gör det möjligt att sortera testfallen och söka bland dem. Ett verktyg gör det enkelt att vara flera personer som samtidigt deltar i arbetet med testfallen.

Verktygen innehåller ofta en funktion för att importera testfall från andra källor som Word och Excel. I vissa fall går det att skicka testfall för granskning av kollegor innan de godkänns för användning.

Testdata

Det är viktigt att kunna återställa testdata i testmiljön till en ursprungsnivå då och då under testarbetet. Detta för att testdata förstörs av testare under testerna. Det går att skapa testdata för testerna på flera olika sätt, bland annat följande:

  • Kopiering av data från driftmiljön till testmiljön. Data som kopieras avidentifieras så att inga känsliga uppgifter förekommer i testmiljön.
  • Användning av metadata som beskriver hur testdata ska se ut. Genom att beskriva vilka fält som ska ingå och hur många poster som behövs, kan en stor mängd data snabbt skapas. Det tar lång tid att definiera regelverket.
  • Val av testdata baserat på olika statistiska metoder som gränsvärdesanalys och indelning i ekvivalensklasser. Detta används företrädesvis i testfaserna från komponenttest till systemtest.
  • Det finns inte en perfekt lösning på testdatabehovet för alla situationer, alla varianter har för- och nackdelar.

Verktyg för statiska tester

Ordet ”statisk” innebär att systemet inte är igång under testerna, systemet kanske inte ens är konstruerat ännu. En manuell statisk testteknik är granskning av dokument eller programkod. Verktygen för statisk analys fokuserar också på granskning, dock är granskningen maskinell eftersom verktyg används. Statiska tester med verktyg görs ofta av utvecklare i samband med komponent- och systemtest.

Avvikelser från utvecklingsstandarder

Att hitta avvikelser från företagets namn- och kodstandarder går att genomföra manuellt exempelvis med hjälp av kodgranskning, men det är en tidsödande uppgift som det inte lönar sig att genomföra. I stället bör testverktyg användas som jämför hur programkoden är skriven med företagets definierade kodstandard. Ett exempel på regel som kan finnas i företagets standard är hur variabler ska skrivas. I många programmeringsspråk är det tillåtet att deklarera variabler på flera olika sätt, exempelvis på något av dessa sätt:

  • Dim strNamn as string
  • Dim sNamn as string
  • Dim Namn as string

Även om alla dessa är tillåtna ur programmeringsspråkets perspektiv, bör endast en form väljas som företagets standard. Detta eftersom det förbättrar möjligheten för andra utvecklare att läsa och förstå koden och därmed sänker systemets underhållskostnader. Denna standard och andra standarder som gäller inom företaget definieras i testverktyget som sedan automatiskt läser igenom programkoden i jakten på avvikelser gentemot standarden. Utöver kontroll av variabler, kan testverktyget innehålla funktioner för att hitta avsnitt i koden som saknar kommentarer eller hantering av felsituationer.

Död kod

Död kod är programkod som inte går att anropa från andra ställen i programmet. Om ett formulär i systemet innehåller en knapp, finns det programkod som är kopplad till knappen. Om utvecklaren tar bort knappen är det lätt att glömma att ta bort programkoden. Den knapp som då låg bakom knappen är död och går inte att anropa. Död kod försämrar möjligheten att underhålla systemet på ett kostnadseffektivt sätt. Det är teoretiskt sätt möjligt att hitta död kod vid läsning av koden, men det tar lång tid samtidigt som verktygen som finns är förhållandevis billiga.

Oändliga slingor

Verktyg för statisk analys kan även användas för att hitta oändliga slingor (kallas också oändliga loopar). En oändlig slinga innebär att programmet ”hänger sig” och inte går att avbryta och leder ofta till att datorn måste startas om. Sådana fel kan upptäckas av ett verktyg för statisk analys.

Beräkning av komplexitet

Kod som sparar en inmatad kund i databasen är inte speciellt komplex. Kod för att beräkna en bils bromsverkan i ett system för ABS-bromsar är mycket mer komplex. Om vi vet att en viss del av systemet har kod som är mer komplex, kan vi välja att testa den mera utförligt än en annan del av programmet som har mindre komplex programkod. Det finns statiska analysprogram som kan beräkna komplexiteten hos kod. Beräkningen av komplexitet kan enkelt sägas bygga på antalet hopp, grenar eller if-satser i programmet.

Verktyg för hantering av krav

De tester som görs när programmet som testas är igång, kallas dynamiska. Den vanligaste manuella dynamiska testtekniken är användningen av testfall. Det finns ett antal dynamiska tester som kan göras med hjälp av verktyg.

Testautomatisering - Med automatisering av tester menas att man gör om manuella testfall till testprogram som automatiskt utför ett antal teststeg och sedan jämför det verkliga resultatet med det förväntade.

Stress- och prestandatest

Verktyg för stress- och prestandatest skapar en belastning på systemet som motsvarar belastningen från ett visst antal användare samt annan trafik på nätverket. Verktyget samlar in statistik från olika delar av systemet som testas och hjälper till att analysera resultatet så att eventuella flaskhalsar blir synliga och kan åtgärdas.

Felrapporteringsverktyg

Det är viktigt att de buggar som hittas under testarbetet hanteras på ett så effektivt sätt som möjligt så att inte onödig tid åtgår till att administrera felrapporter. Felrapporterna innehåller viktig information för testarbetets intressenter som utvecklare, projektledare och testare. För beställare och användare kan ett felrapporteringsverktyg göra att alla får information om vad som händer med felrapporter och förändringsönskemål. Utan ett sådant verktyg, ökar risken att fel och önskemål som rapporteras försvinner eller glöms bort.

Ett lättanvänt felrapporteringsverktyg gör det lättare att rapportera fel. Det får inte vara krångligt att rapportera fel. Om felrapporteringsverktyget är svårt att använda eller om flera verktyg måste användas i kombination, exempelvis både Word och Outlook i kombination, kommer färre fel att rapporteras.

En hel del felrapporter färdas en lång väg från det att de öppnas tills det att de stängs. Ett verktyg gör det möjligt att se vem som äger ett fel för närvarande. Ett fel som har öppnats av en testare kan ha skickats vidare till projektledaren eller till ett så kallat felklassningsråd som fattar beslut om felet ska åtgärdas. Med hjälp av historik som visas i verktyget, blir det lättare att se vad som har hänt med felrapporten.

Testledare och projektledare kan använda felrapporteringsverktyget för att se hur arbetet är fördelat mellan olika personer, t ex utvecklare och testare. Är arbetsbelastningen någorlunda jämnt fördelad, eller är det någon utvecklare som har väldigt många fel på sitt bord? Testerna kan inte slutföras förrän den utvecklare som har flest felrapporter är klar med alla sina felrapporter. Verktyget gör det möjligt att snabbt byta ägare på felrapporter för att åstadkomma en jämnare arbetsbelastning.

För utvecklare gör verktyget det möjligt att se vem som har rapporterat felet. Felrapporter som skrivs i ett felrapporteringsverktyg innehåller alltid samma information, vilket underlättar felsökning. Om felrapporterna skrivs på något manuellt sätt exempelvis i Word eller som mail, kan viktiga uppgifter saknas eller vara ofullständiga. Utvecklare som inte använder ett felrapporteringsverktyg varje dag, kan få information via e-post när ett nytt fel har skapats.

Statistik från felrapporterna ligger till grund för viktiga beslut som att systemet kan driftsättas eller att ytterligare tester. Om testarna hittar många fel varje dag i en takt som inte tycks avta, är det troligt att systemet bör testas ytterligare en tid innan det går att avsluta testarbetet. Om däremot antalet fel avtar samtidigt som utvecklarna hinner ikapp med att rätta de funna felen, kan det var läge att avsluta testerna. Felrapporteringsverktygen innehåller funktioner för uppföljning med statistik. I vissa verktyg kan det även vara möjligt att jämföra testernas kvalitet jämfört med förra testomgången. Det kan hjälpa oss att bedöma om kvalitén har blivit bättre eller sämre.

Ett felrapporteringsverktyg bör kunna visa hur gamla felrapporterna är i antal dagar. En varning kan då visas när en felrapport har legat för länge. Felrapporter bör inte få ligga orörda mer än några få dagar upp till en vecka. Verktyget bör ha funktioner för att skicka e-post när en ny felrapport skapas. Detta är praktiskt inte minst under förvaltning då utvecklare kanske inte alltid har behov att gå in i verktyget för att kolla om det har kommit några nya felrapporter, då antalet fel är färre än under en intensiv nyutvecklingsfas. En annan bevakningsfunktion i verktygen är att kunna få ett e-postmeddelande varje dag eller varje vecka med information om vilka buggar du för tillfället äger. Alla dessa åtgärder gör att verktyget används i större utsträckning och minskar risken att verktyget blir en hyllvärmare.

Andra testverktyg

Det finns även andra verktyg som vi kan ha nytta av i testarbetet, ofta verktyg som egentligen inte är gjorda för att vara felrapportverktyg. Alla slags verktyg som effektiviserar testarbetet kan användas som testverktyg.

Excel, Word och Paint

Excel och Word används ofta för att hantera testfall och testdata när företaget saknar speciella testverktyg för ändamålet. Även andra program som medföljer Windows kan komma till användning i testarbetet. En vanligt förekommande typ av testfall är att spara uppgifter i en databas och sedan söka fram det som sparats och kontrollera om det visas exakt på samma sätt som testaren angav det. Det kan vara krångligt att kontrollera resultatet exakt om det du sparade matades in i många inmatningsfält. Genom att ta en skärmdump och klistra in den i Word eller i ett ritprogram som Paint, kan du växla mellan fönstret för systemet du testar och fönstret med skärmdumpen för att jämföra informationen. Paint kan användas som ett verktyg för att ta skärmdumpar som kan bifogas som bilagor till felrapporter. Det finns även specialiserade program som underlättar arbetet att skapa skärmdumpar. Ett sådant är SnagIt som är ett sharewareprogram och därför inte kostar speciellt mycket.

Program som spelar in musrörelser och tangentbordstryckningar

Vårt minne är tyvärr lite för kort ibland. Det kan bli särskilt tydligt när vi genomför oplanerade tester, så kallade ad hoc-tester. Helt plötsligt, när du testar, upptäcker du en bugg, men vad var det som framkallade felet? Var det de senaste tre handgreppen, eller beror felet på något du gjorde för en halvtimme sedan? Det finns program som spelar in alla musrörelser och tangentbordstryckningar till en filmsekvens i ett filformat som exempelvis AVI. När testerna inleds, startar testaren inspelningen. Vid behov går det att spela upp filmen igen. Ett annat användningsområde är att spela in korta filmsnuttar och bifoga till felrapporterna för att visa för utvecklaren hur felet yttrade sig. Det gör det också lättare att komma ihåg felet när du ska göra omtest för att se att felet är åtgärdat på ett tillfredsställande sätt. Ett sådant inspelningsprogram ingår i en svit av verktyg från Robohelp, en programvara som främst används för att skapa hjälpfiler.

Program för att spara undan datorkonfigurationer

Det finns program som gör det möjligt att spara en hel datorkonfiguration till en enda stor fil. Detta är mycket användbart när det finns ett behov av att återställa datorn till ett grundläge exempelvis inför det att testerna ska genomföras. Ett exempel på ett sådant program är Ghost från Symantec. Programmet fungerar så att man installerar operativsystemet samt de program som man önskar ha i sin grundläggande konfiguration. Därefter sparar man en ghost-fil och inleder testerna. När man senare vill återgå till den sparade konfigurationen, startar man ghost-programmet och läser tillbaka den sparade filen. Resultatet är att man är tillbaka vid grundläget. Normalt tar det flera timmar att installera om en dator från grunden, med ett program som Ghost tar det 15-20 minuter beroende på återställningsfilens storlek. Ghost-filen kan sparas på en CD-skiva eller på en server tillsammans med andra sparade filer.

Ett exempel på användningsområde är vid konfigurationstester av webbplatser. I stället för att ha många datorer i testlabbet med olika operativsystem och olika webbläsare, kan man ha ett fåtal datorer med många olika återställnignsfiler, en för Windows 2000 med Internet Explorer 6, en för Windows 2003 och så vidare.

Händelseloggen

Händelseloggen är en systemkomponent i Windows. Motsvarande funktion finns även i andra operativsystem. Programmerare kan använda loggen för att skriva detaljerad information om fel som uppstår. Denna felbeskrivning kan göras mycket mer teknisk än de felmeddelanden som visas för användaren och därmed kan informationen tillföra mer till utvecklaren vid felsökning, t ex kan man i loggen skriva vilken komponent som kraschade och på vilken rad i programkoden felet inträffade. Det är inte säkert att systemet som du testar använder händelseloggen, men det bör använda någon motsvarande mekanism eftersom det underlättar felsökningen.

Skriptspråk

Skriptspråk som VBScript för Windows eller Perl som finns för de flesta plattformar är populära testverktyg för att utföra administrativa uppgifter som annars måste utföras manuellt. Vi har använt VBScript för att ansluta nätverksenheter, kopiera filer, skapa användarkonton för testerna och konfigurera webbplatser automatiskt. Databasverktygen som Microsoft SQL Server kan användas som ett testverktyg. Med SQL-språket kan man skriva skript som fyller databasen med testdata. Verktyget kan också användas för att titta på databasens innehåll för att kontrollera att rätt resultat sparats av testerna. Det går också att skapa många testhjälpmedel på ett enkelt sätt med ASP, PHP eller motsvarande. Vi har byggt program som analyserar loggfiler med hjälp av dessa enklare skriptspråk. Nackdelen med samtliga dessa verktyg är att det krävs vissa programmeringskunskaper för att kunna utnyttja språken tillräckligt bra. Om du har det, rekommenderar jag verkligen att du tittar på dessa verktyg.

Spåra systemändringar

Det finns många verktyg som håller koll på ändringar i systemfiler, systemkataloger och datorns register. Flera gratisverktyg finns på sysinternals, exempelvis filemon och regmon. Dessa verktyg är ovärderliga verktyg vid test av installation/avinstallation för att se att rätt filer ändras av installationsprogrammet.

Hur gör andra företag?

Många företag skaffar testverktyg i följande ordning:

  • Felrapporteringsverktyg för att administrera felrapporter.
  • Verktyg för att lagra och organisera testfall.
  • Verktyg för lagring och hantering av krav
  • Verktyg för automatisering av regressionstester.

Vidare läsning

  • Ulf Erikssons böcker Test och kvalitetssäkring av IT-system, Kravhantering för IT-system.
  • Faktabanken.

 

KONTAKTA OSS

Har du frågor? Vill du ha hjälp med områden inom kravhantering och test?
Hör av dig till oss! Vi hjälper dig gärna. 

Kontakt 

Dela artikeln