software development
Vad är programvaruutveckling och testmetoder?
Testning är en viktig del av mjukvaruutvecklingsprocessen. En robust och stabil programvaruprodukt kan levereras med användning av standardtestmetoder som hjälper till att förutsäga tidslinjen för programvarusystemet.
En programvara kan bli ännu mer komplex med ett stort antal plattformar och enheter. Ännu viktigare är det att det måste säkerställas om de uppfyller de angivna kraven och kan installeras och användas effektivt på användarens maskin eller inte.
Med hjälp av säkerhet , kompatibilitet , och användbarhet, bör en programvaruprodukt testas med rätt testmetod.
I den här artikeln , vi kommer att diskutera vad som menas med testmetoder, hur det skiljer sig från teststrategier och typer av testmetoder för programvara i detalj.
Vad du kommer att lära dig:
- Betydelsen av testmetoder
- Testtekniker
- Modeller i SDLC
- Skillnad mellan testmetoder och teststrategier
- Slutsats:
- Rekommenderad läsning
Betydelsen av testmetoder
Metoder kan betraktas som en uppsättning testmekanismer som används i programvaruutvecklingens livscykel från enhetstestning till systemtestning. Att välja en lämplig testmetod anses vara kärnan i testprocessen.
Testtekniker
I grund och botten finns det tre testmetoder som används för testning. De är White Box Testing, Black Box Testing och Testning av grå låda . Dessa kallas också som Testtekniker . Var och en av testteknikerna beskrivs nedan för bättre förståelse.
# 1) White Box Testing:
Testningsteknik för vitlåda används för att undersöka programstrukturen och affärslogiken, validerar den koden eller programmet för en applikation. Det kallas också som Clear Box Testing, Glass Box Testing eller Open Box Testing .
White Box-testtekniker inkluderar:
- Uttalande täckning: Granskar alla programmeringsuttalanden.
- Filialtäckning: Serier av löptester för att säkerställa att alla grenar testas.
- Vägtäckning: Testar alla möjliga vägar för att täcka varje uttalande och gren.
# 2) Black Box-testning:
Black Box testmetod används för att testa funktionaliteten i en applikation baserat på kravspecifikationen. Till skillnad från White Box Testing fokuserar den inte på applikationens interna struktur / kod.
Black Box-tekniker inkluderar:
- Gränsvärde analys
- Equivalence Partitioning (Equivalence Class Partitioning)
- Beslutstabeller
- Domänprov
- Statliga modeller
- Exploratory Testing (kräver mindre förberedelser och hjälper också till att snabbt hitta defekterna).
# 3) Test av grå låda:
Denna testmetod utförs med mindre information om den interna strukturen i en applikation. I allmänhet utförs detta endast som Black Box Testing men för vissa kritiska applikationsområden används White Box Testing.
Modeller i SDLC
Att välja lämpliga testmetoder innefattar också att välja rätt modell i SDLC.
Modellerna inkluderar:
- Vattenfall modell
- I modellen
- Smidig modell
- Spiralmodell
- RAD
Låt oss titta närmare på varje programvaruutvecklingsmetodik med en kort förklaring.
# 1) Vattenfallsmodell
Vattenfall modell är den grundläggande livscykelmodellen som utvecklades av Winston Royce 1970. Denna modell representerar flera steg eller processer på ett sekventiellt sätt som flödar gradvis nedåt.
Detta tillvägagångssätt är användbart när kraven är välkända, tekniken förstås och resurser med erforderlig expertis finns tillgängliga.
Vattenfallsmodellen definieras av följande steg:
- Insamling och analys av krav: Fånga och analysera alla krav och se till att de kan testas eller inte.
- Systemdesign: Skapa och dokumentera design baserat på kravanalys. Definiera hårdvaru- och programvarukraven.
- Genomförande: Skapa robust kod för komponenter enligt designen och integrera dem.
- Systemtestning: Integrerade komponenter bildar ett helt system, denna fas utförs för att säkerställa om systemet fungerar enligt kraven, spårar och rapporterar testförloppet.
- Systemdistribution: Se till att om systemet är stabilt med nollfel hade alla testkriterier varit
uppfyller, se till att miljöinställningar etc. - System underhåll: Kontrollerar att applikationen fungerar effektivt enligt kraven med lämplig miljö. Om en defekt upptäcks bör den åtgärdas och distribueras (uppdateras) i miljön.
Fördelar med vattenfallsmodell:
- Enkelt och lätt att förstå.
- Lätt att hantera eftersom varje fas har sina egna specifika leveranser.
- Överlappning av etapper undviks.
- Bra för små projekt.
Nackdelar med vattenfallsmodell:
- Ökning av risk och osäkerhet.
- När du har gått in i testfasen kan du inte ändra någonting i tidigare steg t.ex Design och kodning etc.
- Inte bra för komplexa och stora projekt.
- Inte lämpligt där kraven ändras.
# 2) I modell
V-modell är en förlängning av vattenfallsmodellen där processkörningen sker i sekventiell stil i V-form och kallas även Verification and Validation Model. I detta tillvägagångssätt finns det en direkt associerad testfas i varje enskild fas av utvecklingscykeln.
Det har visat sig vara fördelaktigt och kostnadseffektivt än vattenfallsmodellen eftersom testningen utförs vid varje utvecklingsfas snarare än i slutet av utvecklingscykeln.
V-modellen klassificeras i tre faser.
- Verifieringsfas
- Kodningsfas
- Valideringsfas
a) Verifieringsfas :
- Analys av affärsbehov: Kommunicera med kunden för att förstå deras förväntningar och krav.
- Systemdesign: Designkomplettsystem och dess komponenter tillsammans med hårdvaru- och programvarukraven.
- Arkitektonisk design: I denna fas fångas arkitektoniska specifikationer. Detta kallas också Design på hög nivå.
- Moduldesign: Detta kallas också Low-Level Design, detaljerad intern design för alla specificerade systemmoduler.
b) Kodningsfas:
Denna fas innehåller den faktiska kodningsfasen i utvecklingslivscykeln. Programmeringsspråk bör väljas baserat på det system och den arkitektoniska design som specificerades i den tidigare fasteknologiplattformen. Kodning utförs enligt de fördefinierade standarder och riktlinjer.
c) Valideringsfas :
- Enhetstestning: Utfördes på en enskild modul för att eliminera buggarna i ett tidigt skede.
- Integrationstestning: Utförd för att testa kommunikationen mellan olika moduler i systemet.
- Systemtestning: Systemtestning utförs på ett system som helhet.
- Godkännande testning: Detta är förknippat med affärskraven. Det utförs i en användarmiljö ur användarens synvinkel.
Fördelar med V-modellen
- Enkelt, lätt att använda och förstå.
- Överlappning undviks eftersom faser körs en i taget.
- Lätt att hantera och lämpar sig för små projekt.
Nackdelarna med V-modellen liknar mer eller mindre nackdelarna med Vattenfallsmodellen.
# 3) Agil modell
Agil modell visar ett iterativt och inkrementellt tillvägagångssätt. Detta tillvägagångssätt delar upp produkten i små stegvisa enheter för att ge iterationer. Sedan involverar varje iteration steg som planering, kravanalys, design, kodning, enhetstest, acceptantestning etc.
Detta tillvägagångssätt möjliggör också kontinuerlig interaktion med kunden för deras feedback och korrigeringar i kraven med jämna mellanrum.
Följande diagram hjälper dig att förstå Agile Model-metoden mer exakt:
Följande bild visar iterationscykeln i Agile Model:
Fördelar med Agile-modellen:
- En realistisk metod för utveckling av programvara.
- Främjar lagarbete.
- Eliminerar obalans mellan krav och testfall.
- Snabbt och kräver minsta mängd resurser.
- Lämplig för stora och långsiktiga projekt.
- Bra för förändrade krav.
- Lätt att hantera.
Nackdelar med Agile-modellen:
- Inte lämpligt för komplexa projekt.
- Kräver stor mängd interaktion med kunden som kan orsaka förseningar.
- Felaktig bedömning av kraven kan orsaka felaktig utveckling av programvaruprodukten.
- Ökad underhållsrisk.
- Överlämning till ett annat lag kan vara ganska utmanande.
# 4) Spiralmodell
Spiralmodellen innehåller iterativ utvecklingsstrategi tillsammans med vattenfallsmodellens systematiska tillvägagångssätt. Det liknar den inkrementella modellen och betoning på riskanalys.
Spiral Model har fyra steg:
- Planeringsfas
- Riskanalys
- Ingenjörsfas
- Utvärderingsfas
1) Planeringsfas: I denna fas samlas kraven och granskas för att slutföra testfallet.
2) Riskanalys: Detta steg inkluderar att identifiera, övervaka och uppskatta riskerna för hanteringen. Krav analyseras för att identifiera riskerna med hjälp av tekniker som brainstorming, genomgång etc.
3) Ingenjörsfas: I denna fas utvecklas och testas programvaran i slutet.
4) Utvärderingsfas: Detta är det sista steget där en kund utvärderar resultatet av ett projekt och ger sin feedback för antingen nästa spiral eller godkännande.
Bildrepresentation av Spiral Model:
När ska man använda Spiral-modellen:
- För högriskprojekt.
- När kraven är komplexa.
- Om ett projekt är stort.
- Ha tillräckligt med tid för att få användarens feedback för nästa spiral.
- Kräver betydande förändringar på grund av forskning och utforskning.
- Användarna är inte säkra på sina behov.
Fördelar med spiralmodell:
- Undvikande av risk eftersom det innebär en hög riskanalys.
- Snabb utveckling.
- Förändringar i kraven tillgodoses enkelt.
- Krav kan förvärvas mer exakt.
Nackdelar med spiralmodell:
- Komplex hantering.
- Inte lämpligt för små projekt.
- Kan innebära nej. av spiraler (obestämd).
- Kostsam.
- Kräver stor mängd riskanalys och expertis för att deras projekt ska lyckas.
# 5) RAD-modell
Rapid Application Development (RAD) är en typ av inkrementell modell. I detta tillvägagångssätt utvecklas komponenter parallellt.
Detta är ett snabbt tillvägagångssätt och det kan ge en snabb produkt till kunden för att ge feedback.
Faserna i RAD är som följer:
- Affärsmodellering: Identifierar viktig information och dess flöde mellan olika affärskanaler.
- Datamodellering: Information som samlats in i föregående steg används för att definiera dataobjekt som krävs för verksamheten.
- Processmodellering: Dataobjekt konverteras för att få affärsmål och informationsflöde.
- Applikationsgenerering: I denna fas används automatiseringsverktyg för att konvertera processmodellen till faktisk kod.
- Testning och omsättning: Testar alla systemkomponenter, varför den totala testtiden reduceras.
Fördelar med RAD-modell:
- Framsteg kan mätas.
- Minskar utvecklingstiden.
- Ökad återanvändbarhet.
- Snabba första recensioner.
- Förbättrar feedback från kunder.
Nackdelar med RAD-modell:
- Kräver högkvalificerade resurser.
- Högkostnadsberäkning.
- Gäller inte för billigare projekt.
- Högt beroende av modelleringsförmåga.
- Endast ett modulärt system kan byggas med RAD.
Skillnad mellan testmetoder och teststrategier
Svaret på detta är inte så komplicerat eftersom det finns en enkel skillnad mellan båda.
Testmetoder är metoderna eller metoderna för testning som inkluderar från enhetstestning genom systemtestning.
Teststrategier är en översikt över de viktigaste frågorna som uppstår i testprocessen och ska beaktas av projektledaren, ett team av utvecklare och testare.
Ovan diskuterade testmetoder för programvara används för att implementera n antal teststrategier.
Några av dem listas nedan:
1) Enhetstestning:
- Fokuserar på mycket små funktionella enheter.
- Det enklaste sättet att kontrollera de minsta enheterna för isolering.
- Generellt utförs av utvecklare.
2) Integrationstest:
smart identifiering i qtp med exempel
- Detta är nästa steg som ska utföras på utvecklarens sida.
- Tillhandahålla mekanism för att testa interaktion, samverkan och kommunikation mellan olika programvarumoduler
3) Funktionell testning:
Den används för att kontrollera funktionerna i ett mjukvarusystem, dvs. mata ut till den angivna ingången.
4) Regressionstest:
Kontrollerar om felkorrigeringen har hänt på ett ställe så att de komplexa funktionerna inte bör orsaka någon förändring i ett annat kärnområde.
5) Systemtestning:
- Testa alla integrerade moduler som ett kollektivt system.
- Kombinerar flera funktioner i end-to-end-scenarier.
6) Prestandatestning:
Testar programmets prestanda i kritiska situationer som att överföra stora filer, åtkomst till systemet samtidigt, konfigurationsfel etc.
7) Acceptantestning :
- Generellt Slutlig testnivå där mjukvaruprodukt undersöks som användarperspektiv av testare
- Resultatet av detta steg är subjektivt och tar lite för att hitta exakt fråga
Slutsats:
Att välja en lämplig testmetod är den åtgärd eller uppsättning åtgärder som ligger till grund för testprocessen. Detta kan till och med vara en mångsidig aktivitet som förändras beroende på mjukvaruproduktens affärsbehov och tidslinje.
Man kan dock välja enstaka eller till och med flera programvaruutvecklings- och testmetoder för att ha en mer flexibel och effektiv slutprodukt som tillgodoser kundens behov och förväntningar inom den önskade eller kortare tidsgränsen.
Låt oss veta dina tankar / förslag i kommentarfältet nedan.
Rekommenderad läsning
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Programvarutestning QA-assistentjobb
- Kurs för programvarutestning: Vilket program för testning av programvara ska jag delta?
- Välja programvarutestning som din karriär
- Programvarutestning Tekniskt innehåll Writer Freelancer Jobb
- Några intressanta frågor om mjukvarutestning
- Programvarutestning Feedback och recensioner
- Programvarutestning Hjälp Affiliate Program!