Mjukvarutestning, eller mjukvarutestning, är också känd som applikationstestning.
Programvarutestning är i första hand en stor process som består av flera sammankopplade processer. Huvudsyftet med mjukvarutestning är att mäta programvarans integritet tillsammans med dess fullständighet när det gäller dess grundläggande krav. Programvarutestning innebär att undersöka och testa programvara genom olika testprocesser. Målen för dessa processer kan inkludera:
Verifiering av programvarans fullständighet mot funktionella/affärsmässiga krav
Identifiera buggar/tekniska fel och se till att programvaran är felfri
Utvärdering av användbarhet, prestanda, säkerhet, lokalisering, kompatibilitet och installation
Testad programvara måste klara alla tester för att vara komplett eller lämplig för användning. Några av de olika typerna av mjukvarutestningsmetoder inkluderar testning av vit låda, testning av svart låda och testning av grå låda. Dessutom kan mjukvaran testas som en helhet, i komponenter/enheter eller inom ett livesystem.
Black Box Testing är en mjukvarutestteknik som fokuserar på att analysera programvarans funktionalitet med hänsyn till systemets interna funktion. Black Box Testing utvecklades som en metod för att analysera kundkrav, specifikationer och designstrategier på hög nivå.
En Black Box-testare väljer en uppsättning giltiga och ogiltiga kodexekverings- och inmatningsvillkor och kontrollerar efter giltiga utsvar.
Black Box Testing är också känd som funktionstestning eller sluten box-testning.
En sökmotor är ett enkelt exempel på en applikation som är föremål för black box-testning. En sökmotoranvändare skriver in text i sökfältet i en webbläsare. Sökmotorn lokaliserar och hämtar sedan användardataresultat (output).
Fördelarna med Black Box-testning inkluderar:
Black Box-testning har också några nackdelar, enligt följande:
Under white-box-testning körs kod med förvalda ingångsvärden för att validera de förvalda utvärdena. White-box-testning involverar ofta att skriva stubbkod (en kod som används för att ersätta en specifik funktion. En stubb kan simulera beteendet hos befintlig kod, till exempel en procedur på en fjärrmaskin.) och även drivrutiner.
Fördelarna med white-box-testning inkluderar:
Nackdelarna inkluderar:
Ett enhetstest är en komponent i Software Development Life Cycle (SDLC) där en omfattande testprocedur tillämpas individuellt på de minsta delarna av ett program för önskad lämplighet eller beteende.
Ett enhetstest är en kvalitetsmätnings- och utvärderingsprocedur som tillämpas i de flesta verksamheter för utveckling av programvara för företag. I allmänhet utvärderar ett enhetstest hur väl mjukvarukoden överensstämmer med programmets/applikationens/programmets övergripande mål och hur dess lämplighet påverkar andra mindre enheter. Enhetstester kan göras manuellt – av en eller flera utvecklare – eller genom en automatiserad mjukvarulösning.
Under testningen är varje enhet isolerad från huvudprogrammet eller gränssnittet. Enhetstester utförs vanligtvis efter utveckling och före driftsättning, vilket underlättar integration och tidig problemupptäckt. Storleken eller omfattningen av en enhet varierar beroende på programmeringsspråk, programvara och testmål.
Funktionstestning är en testprocess som används inom mjukvaruutveckling där mjukvara testas för att säkerställa att den uppfyller alla krav. Det är ett sätt att kontrollera programvara för att säkerställa att den har alla nödvändiga funktioner som anges i dess funktionskrav.
Funktionstestning används huvudsakligen för att verifiera att en mjukvara ger samma utdata som krävs av slutanvändaren eller företaget. Typiskt innebär funktionstestning att utvärdera och jämföra varje programvarufunktion mot affärskrav. Programvaran testas genom att ge den någon relaterad input så att utdata kan utvärderas för att se hur den överensstämmer med, relaterar till eller varierar från dess grundläggande krav. Dessutom kontrollerar funktionstester även mjukvarans användbarhet, till exempel att navigeringsfunktionerna fungerar efter behov.
Regressionstestning är en typ av mjukvarutestning som används för att avgöra om nya problem är resultatet av mjukvaruförändringar.
Innan en ändring tillämpas testas ett program. Efter att en ändring har tillämpats testas programmet igen i utvalda områden för att upptäcka om ändringen har skapat nya buggar eller problem, eller om den faktiska ändringen har tjänat sitt avsedda syfte.
Regressionstestning är avgörande för stora mjukvaruapplikationer, eftersom det ofta är svårt att veta om en förändring av en del av ett problem har skapat ett nytt problem för en annan del av applikationen. Till exempel kan en ändring av en bankansökan låneblankett resultera i att en månatlig transaktionsrapport misslyckas. I de flesta fall kan problemen verka orelaterade, men de kan faktiskt vara orsaken till frustration bland applikationsutvecklare.
Andra situationer som kräver regressionstestning inkluderar att upptäcka om vissa förändringar uppnår ett uppsatt mål eller testning för nya faror associerade med problem som dyker upp igen efter en period utan problem.
Modern regressionstestning hanteras i första hand genom specialiserade kommersiella testverktyg som tar ögonblicksbilder av befintlig programvara som sedan jämförs efter att en specifik ändring har tillämpats. Det är nästan omöjligt för mänskliga testare att utföra samma uppgifter lika effektivt som automatiserade programvarutestare. Detta gäller särskilt med stora och komplexa mjukvaruapplikationer inom stora IT-miljöer som banker, sjukhus, tillverkande företag och stora återförsäljare.
Stresstestning avser testning av mjukvara eller hårdvara för att avgöra om dess prestanda är tillfredsställande under extrema och ogynnsamma förhållanden, vilket kan uppstå som ett resultat av tung nätverkstrafik, processbelastning, underklockning, överklockning och toppanvändning av resurser.
De flesta system är utvecklade under normala driftsförhållanden. Därför, även om en gräns överskrids, är felen försumbara om systemet stresstestas under utveckling.
Stresstestning används i följande sammanhang:
Automatiserad testning (software test automation) är ett tillvägagångssätt för kodtestning som använder sig av speciella mjukvaruverktyg som kör tester automatiskt och sedan jämför faktiska testresultat med förväntade resultat.
Automatiserad testning spelar en viktig roll i Continuous Delivery (CD), Continuous Integration (CI), DevOps och DevSecOps. De främsta fördelarna med automatiserad testning inkluderar:
Vid mjukvaruutveckling är det särskilt användbart att utföra automatiserade tester under byggprocessen för att säkerställa att en applikation är fri från byggfel och utför sin avsedda funktion.
Att ta sig tid att automatisera mjukvarutestning kommer i slutändan att spara tid för utvecklare genom att minska risken för att en kodändring kommer att bryta befintlig funktionalitet.
Testning är ett mycket viktigt steg i utvecklingsprocessen. Säkerställer att alla buggar är åtgärdade och att produkten, mjukvaran eller hårdvaran fungerar som avsett eller så nära målprestanda som möjligt. Automatiserad testning, snarare än manuell testning, är avgörande för att konsekvent leverera kostnadseffektiv programvara som möter användarnas behov i tid med minimala defekter.
Manuell testning görs fortfarande vid olika tidpunkter under utvecklingen, men detta görs mestadels av utvecklarna eller hårdvaruingenjörerna själva för att snabbt se om de ändringar de har gjort har haft önskad effekt.
Ercole Palmeri
En oftalmoplastikoperation med Apple Vision Pro kommersiella tittare utfördes på Catania Polyclinic...
Att utveckla finmotorik genom färgläggning förbereder barn för mer komplexa färdigheter som att skriva. Att färglägga…
Marinesektorn är en sann global ekonomisk makt, som har navigerat mot en marknad på 150 miljarder...
I måndags tillkännagav Financial Times ett avtal med OpenAI. FT licensierar sin journalistik i världsklass...