Svartlådetestning är en typ av programvarutestning där du undersöker ett programs funktionalitet utan att känna till hur det fungerar internt. Tänk på det som att försöka lösa ett pussel utan att veta hur det sattes ihop.
Som testare med nästan 10 års erfarenhet ser jag fram emot att dela med mig av mina kunskaper om svartlådetestning. I den här artikeln går jag igenom vad svartlådetestning är, hur det fungerar och varför det är viktigt i programvaruutvecklingsprocessen. Så spänn fast dig och låt oss börja!
Vad är svartlådetestning?

Svartlådetestning är en testmetod där testningen utförs utan kunskap om den interna strukturen hos applikationen som testas (AUT). Detta står i kontrast till vitlådetestning, som bygger på en djupgående förståelse av applikationens källkod och utförs av utvecklingsteamet.
Svartlådetestning utförs vanligtvis av kvalitetssäkringsteamet och fokuserar på applikationens indata och utdata. Testare använder giltiga och ogiltiga indata och observerar resultaten. Det kallas ibland beteendetestning eftersom testningen utförs ur slutanvändarens perspektiv.
Svartlådetestning kan tillämpas på alla testnivåer: enhetstestning, integrationstestning, systemtestning och användaracceptanstestning. Det finns också en mängd verktyg för svartlådetestning som gör det enkelt att använda denna metod för programvarutestning.
Typer av svartlådetestning
Funktionstestning: avser en typ av testning där vi testar VAD applikationen gör. Testfallen kan skrivas utifrån de funktionella kraven. Funktionstester för en inloggningssida kan till exempel omfatta:
- Logga in med giltiga inloggningsuppgifter och kontrollera länken ”Glömt lösenordet?”.
- Verifiera funktionen ”Kom ihåg mig”.
- Negativa tester, som att logga in med ogiltiga inloggningsuppgifter och försöka logga in utan obligatoriska uppgifter.
Icke-funktionell testning: avser HUR applikationen gör det den gör. Vi kan också ha icke-funktionella programvarukrav. Det kan till exempel handla om hur snabbt en sida ska laddas, hur många samtidiga användare den ska kunna ta emot, eller vilka riktlinjer för tillgänglighet den ska uppfylla. Det finns flera undertyper av icke-funktionell testning som vi kan ta hänsyn till under testprocessen (och beroende på kravspecifikationerna):
- Användbarhetstestning: fokuserar vanligtvis på hur enkelt slutanvändaren kan komma åt applikationens funktioner.
- Tillgänglighetstestning: här testar vi att applikationen är tillgänglig för alla användare, inklusive personer med funktionsnedsättningar.
- Prestandatestning: testning av applikationens prestanda. Det är en typ av testning som lämpar sig bättre för automatisering, där testverktyg används. Vid belastningstestning kan vi till exempel försöka testa applikationen med ett stort antal samtidiga användare, vilket inte är något vi kan uppnå manuellt.
- Säkerhetstestning: där vi testar applikationens säkerhet och hur väl känsliga data skyddas. Det omfattar testmetoder som penetrationstestning.
Regressionstestning: detta är en typ av testning där vi kontrollerar att befintlig funktionalitet inte har gått sönder på grund av nyligen tillagd kod.
Omtestning: en typ av testning där vi verifierar att en tidigare ej fungerande funktion har åtgärdats.
Svartlådetestning jämfört med vitlådetestning
”Motsatsen” till svartlådetestning är typen vitlådetestning – även kallad transparent testning. Vitlådetestning utförs vanligtvis av teamets utvecklare och fokuserar på källkoden för applikationen som testas.
Låt oss titta på de viktigaste skillnaderna mellan de två:
- Svartlådetester utförs utan kännedom om appens interna funktion, medan vitlådetestning innebär kännedom om källkoden.
- Vid svartlådetestning behövs ingen programmeringskunskap; vitlådetestning innebär vanligtvis att man skriver automatiserade tester för att uppnå testtäckning.
- Svartlådetestning är QA-teamets ansvar, medan vitlådetestning utförs av utvecklingsteamet.
- Svartlådetestning använder tekniker som ekvivalensklassindelning, analys av gränsvärden, beslutstabeller och tillståndsövergångar (mer om detta nedan). Tekniker för vitlådetestning omfattar sats-, gren- och villkorstäckning.
- Till skillnad från vitlådetestning, som ofta kräver djupgående kunskaper om kodbasen, gör svartlådetestning det möjligt för testare att fokusera på applikationens beteende. Båda metoderna kräver dock användning av pålitliga verktyg för databashantering för optimala resultat.
- Vitlådetestning utförs bäst på lägre testnivåer (till exempel enhets- eller integrationstestning), medan svartlådetester utförs på högre nivåer (systemtestning och testning från början till slut samt användaracceptanstestning).
En kombination av de två är grålådetestning, där testare har tillgång till viss information om programvarans interna funktion, till exempel dess arkitektur eller databasstruktur, men inte hela kodbasen. Detta gör det möjligt för dem att testa programvaran mer noggrant än med svartlådetestning, men utan den fullständiga kunskap om och kontroll över systemet som vitlådetestning innebär.
Tekniker för svartlådetestning
För att uppnå god testtäckning finns det flera tekniker för svartlådetestning som kan användas när testfall skapas:
Analys av gränsvärden: med denna teknik identifieras de mest extrema indatavärdena, och testscenarierna omfattar endast dessa värden. Statistiskt sett är det mer sannolikt att dessa ”gränsvärden” upptäcker fel.
Ekvivalensklassindelning: med denna teknik delas möjliga indatavärden upp i ekvivalensklasser. Varje värde i en ekvivalensklass förväntas ge samma resultat, så ett testfall för varje klass räcker för fullständig täckning. Vi bör täcka både giltiga och ogiltiga indata.
Testning med beslutstabeller: en testmetod där användningsfallen härleds från regler som använder kombinationer av indata och deras förväntade utdata.
Testning av tillståndsövergångar: en teknik för programvarutestning som fokuserar på att testa beteendet hos en programvaruapplikation när den övergår mellan olika tillstånd.
Felgissning: en erfarenhetsbaserad teknik där testare använder sin intuition och erfarenhet för att förutse och upptäcka fel i systemet utifrån sina tidigare kunskaper om och sin förståelse av möjliga felkällor.
Slutsats
Svartlådetestning är en viktig del av programvarutestning som bidrar till att säkerställa programvarans kvalitet och funktionalitet. Genom att testa appen ur slutanvändarens perspektiv kan svartlådetestning hjälpa till att hitta problem som annars kanske inte skulle upptäckas.
Svartlådetestning är ett praktiskt verktyg för att identifiera funktionella fel i programvara. Genom att testa systemets indata och utdata och verifiera att det fungerar som förväntat kan testare få en bättre förståelse för hur programvaran fungerar och identifiera områden där förbättringar kan göras. Sammantaget bör svartlådetestning vara en integrerad del av varje heltäckande strategi för programvarutestning för att säkerställa att programvaran är användarvänlig, tillförlitlig och fri från funktionella fel.
Om du uppskattar artiklar om programvarutestning rekommenderar jag att du prenumererar på QA Leads nyhetsbrev!
