Allt du behöver veta om testmetoder för mjukvara

Författare: Laura McKinney
Skapelsedatum: 6 April 2021
Uppdatera Datum: 16 Maj 2024
Anonim
Calling All Cars: I Asked For It / The Unbroken Spirit / The 13th Grave
Video: Calling All Cars: I Asked For It / The Unbroken Spirit / The 13th Grave

Innehåll

Innan programvara skickas för offentlig eller kommersiell användning lägger programmerare timmar på att stryka ut varje fel, och produkten förblir i limbo tills alla intressenter är nöjda.

Silicon Valley mjukvaragiganter som Google och Facebook kommer ofta att sända populära produkter till marknaden trots de lågprioriterade buggarna i deras programvara. Investerare och miljoner lojala användare tolererar mjukvaruuppdateringar och tillfälliga kinks med de gratisprodukter som dessa företag erbjuder, även när dessa buggar leder till dataintrång och dålig publicitet.

De flesta mjukvaruföretag har inte denna lyx. Kunderna förväntar sig att produkter gör vad de påstår på försäljningssidan och är med rätta oroade över sårbarheten i deras företags immateriella egendom och känsliga data. Med så många mjukvaruutvecklingsalternativ tillgängliga, tänker kunder inte två gånger på hoppfartyg om produkten stinker av slösad tid och pengar. Programvaruföretag måste därför utföra rigorösa tester på sina produkter innan de släpps till kunderna. Dessa tester ger följande insikter:


  • Markera skillnader mellan det ursprungliga konceptet och slutproduktionen.
  • Kontrollera att programvaran fungerar som designarna planerat.
  • Utvärdera funktioner och kvalitet.
  • Validera slutprodukten uppfyller kundens krav.

Testning följer en strikt plan för att optimera arbetsbelastning, tid och pengar samtidigt som intressenterna får viktig information för att föra produkten framåt. Målet är att underlätta en positiv slutanvändarupplevelse genom att hålla ett grundligt kvalitetssäkringsprogram (QA). Med tanke på de höga insatserna för utvecklare är QA-chefer några av de bästa i teknikindustrin. Testning följer vanligtvis dessa steg:

  1. Kravanalys, där chefer skisserar en plan för att sätta en lämplig teststrategi på plats.
  2. Tester börjar och resultaten genomgår analys.
  3. Eventuella fel korrigeras och programvaran går igenom regressionstest (ett system för att kontrollera att programmet fortfarande fungerar efter modifieringar).
  4. En testavslutningsrapport som beskriver processen och resultaten.

Individer kan bli certifierade mjukvarutestare genom organisationer som BCS, The Chartered Institute for IT, ISTQB® (International Software Testing Qualifications Board) och ASQ (tidigare American Society for Quality).


Testmetoder för programvara

Testning av svarta och vita rutorna är två grundläggande metoder för att bedöma produktbeteende och prestanda, men det finns andra metoder också:

  • Testning av svart låda: Denna metod, även kallad funktionell eller specifikationsbaserad testning, fokuserar på output. Testare handlar inte om de interna mekanismerna. De kontrollerar bara att programvaran gör vad den ska göra. Kunskap om kodning är inte nödvändig, och testare fungerar på användargränssnittsnivå.
  • Testning av vit låda: Denna metod använder kodningsupplevelse som en del av testproceduren. När en produkt misslyckas går testare djupt in i koden för att hitta orsaken. Programvaruutvecklare kommer att göra detta själva, eftersom de har anförtrott att avgöra hur produkten ska fungera. Testning av vitlåda benämns också "strukturbaserad" eller "glaslåda" -testning.
  • Statisk testning: Testare granskar källkoden och all bifogad dokumentation men kör inte programmet. Statiska tester börjar tidigt i produktens utveckling under verifieringsprocessen.
  • Dynamisk testning: Programvaran körs med olika ingångar och testare jämför resultat med förväntat beteende.
  • Grafisk användargränssnitt (GUI) -test: Testa egenskaper som textformatering, textrutor, knappar, listor, layout, färger, teckensnitt, teckenstorlekar och så vidare. GUI-testning är tidskrävande och tredjepartsföretag tar ofta på sig jobbet istället för utvecklare.

Testnivåer

Olika testnivåer används för att identifiera områden med svaghet och överlappning i varje fas i programvaruutvecklingens livscykel.


  • Enhetstestning: Utvecklare testar de mest grundläggande delarna av koden som klasser, gränssnitt och funktioner / procedurer. De vet hur deras kod ska svara och kan göra justeringar beroende på utgång.
  • Komponenttestning: Detta steg kallas också "modul" eller "program" -testning. Det liknar enhetstest men innehåller en högre integrationsnivå. Programvarans moduler testas för fel för att verifiera deras individuella funktion.
  • Integrationstest: Detta identifierar fel när modulerna är integrerade. Olika metoder för integrationstest inkluderar "bottom-up", "top down" och "function incremental".
  • Systemtest: Komponenter i ett projekt testas som en helhet i olika miljöer. Systemtest faller under black box-metoden och är en av de sista testerna i processen. Det kommer att avgöra om systemet är beredd att möta affärs- och användarnas behov.
  • Alfa-testning: Intern personal testar programvaran på utvecklarens webbplats i en simulerad eller faktisk miljö. Efter det korrigerar utvecklare buggar och andra problem.
  • Betatestning: Även känd som fälttestning testar kunder produkten på sina egna webbplatser under verkliga förhållanden. Kunder kan erbjuda en grupp slutanvändare möjlighet att testa programvaran via förversioner eller betaversioner. Feedback om möjliga förbättringar skickas sedan till utvecklaren.
  • Acceptantestning: Också inom ramen för svartboxtestning testar klienter mjukvara för att ta reda på om utvecklaren har utvecklat programmet för att passa önskade specifikationer.

Testtyper

Olika typer av programvarutester är utformade för att fokusera på specifika mål:

  • Installationstest: Testingenjören och konfigurationshanteraren utför detta test för att säkerställa att slutanvändaren kan installera och köra programmet. Det täcker områden som installationsfiler, installationsplatser och administrativa behörigheter.
  • Utvecklingstest: Detta implementerar en rad synkroniserade strategier för att upptäcka och förebygga fel. Det inkluderar statisk kodanalys, granskningskoder, spårbarhet och metriska analyser. Målet är att minska riskerna och spara kostnader.
  • Test av användbarhet: Användarupplevelsen kommer i rampljuset med detta test. Det mäter hur väl GUI: s användarvänlighet. Testet kontrollerar noggrannhet och effektivitet hos funktioner och känslomässiga svar från testpersoner.
  • Sanitetstest: Detta indikerar om programvaran är värt tiden och kostnaden för att fortsätta ytterligare tester. Om det finns för många brister följer inte mer aggressiva test.
  • Rökning: Röktest avslöjar grundfel som är allvarliga nog för att förhindra utsläpp. När detta utförs på en nybyggnad kallas det ett "byggverifieringstest".
  • Regressionstestning: När systemet genomgår modifiering övervakar regressionstest oväntat beteende. Den påpekar negativa effekter på moduler eller komponenter.
  • Destruktiv testning: Testare matar in onormala poster och urskiljer programvarans förmåga att hantera oväntade input. Detta visar utvecklarna hur robust programmet är vid felhantering.
  • Återställningstest: När hårdvara eller andra funktioner misslyckas, visar detta test hur bra programvaran kan återställa och fortsätta arbeta.
  • Automatisk testning: Detta utför funktioner som är svåra att implementera manuellt. Den använder specifik programvara för att köra tester och tillhandahålla data om faktiska kontra förväntade resultat.
  • Kompatibilitetstest: Programvaran måste köras i olika datormiljöer, så det kontrollerar kompatibiliteten med olika system. Testa till exempel programvaran med olika operativsystem och webbläsare.
  • Prestandatester: Detta är ett djupgående test som undersöker mjukvaruprestanda i olika scenarier. Information om lyhördhet, stabilitet, resursallokering och hastighet samlas in. Deltester som volym, kapacitet och spikningstest spelar en roll i denna process.
  • Säkerhetstest: Detta mäter programvarans förmåga att skydda användarnas säkerhet. Detta innebär auktoriseringsfunktioner, autentisering, konfidentialitet, integritet, tillgänglighet och avvisande.
  • Test av tillgänglighet: Detta är inte detsamma som användbarhetstest. Detta avgör i vilken utsträckning användare med olika förmågor, inlärning och fysiska funktionsnedsättningar kan använda programvaran.
  • Internationalisering och lokaliseringstest: Resultaten visar hur programvaran kan anpassa sig till olika språk och regionala krav. Detta inkluderar att lägga till komponenter för specifika platser och textöversättning.