/ / Software Testing - processen för att upptäcka fel i en programvaruprodukt

Programvarutestning - processen för att upptäcka fel i en programvaruprodukt

När man utvecklar programvaraen betydande del av produktionsprocessen är beroende av programtestning. Vad detta är och hur sådana aktiviteter genomförs kommer att diskuteras i denna artikel.

Vad kallas testning?

mjukvarutestning

Med detta menar vi processen under vilkenkör programvara för att upptäcka platser med felaktig funktion av koden. För att uppnå bästa resultat är svåra uppsättningar inmatningsdata avsiktligt konstruerade. Inspektörens huvudmål är att skapa optimala möjligheter för programvarufel. Även om ibland testning av ett utvecklat program kan förenklas till det vanliga testet av prestanda och funktion. Detta sparar tid, men åtföljs ofta av mjukvara som inte är tillförlitliga, missnöje med användare och så vidare.

effektivitet

Hur bra och snabbt fel finns,påverkar avsevärt kostnaden och varaktigheten för programvaruutveckling av den erforderliga kvaliteten. Så trots att testare får lön flera gånger lägre än programmerare når kostnaderna för deras tjänster vanligtvis 30 - 40% av kostnaden för hela projektet. Detta beror på antalet personal, eftersom det är en ovanlig och ganska svår process att leta efter ett misstag. Men även om programvaran klarat ett betydande antal tester finns det ingen 100% garanti för att det inte kommer att finnas några fel. Det är helt enkelt inte känt när de kommer att visas. För att motivera testare att välja de typer av kontroller som är mer benägna att hitta ett misstag, används olika sätt att motivera: både moraliska och materiella.

Tillvägagångssätt för att arbeta

datortestning

Den optimala situationen är närolika mekanismer implementeras för att säkerställa att det inte finns några fel i programvaran från början. För att göra detta är det nödvändigt att ta hand om kompetent arkitekturdesign, en tydlig teknisk uppgift, och det är också viktigt att inte göra korrigeringar i anslutning när arbetet med projektet redan har påbörjats. I detta fall står testaren inför uppgiften att hitta och bestämma ett litet antal fel som återstår i det slutliga resultatet. Detta sparar både tid och pengar.

Vad är ett test?

Detta är en viktig aspekt av aktiviteten.inspektören, som är nödvändig för att lyckas upptäcka brister i programkoden. De är nödvändiga för att kontrollera att ansökan är korrekt. Vad ingår i testet? Den består av initiala data och värden, som bör visa sig vara resulterande (eller mellanliggande). För att mer framgångsrikt identifiera problem och inkonsekvenser måste test göras efter att algoritmen har utvecklats, men programmering har inte påbörjats. Dessutom är det önskvärt att använda flera metoder för att beräkna nödvändig data. I det här fallet ökar sannolikheten för att upptäcka ett fel på grund av att du kan undersöka koden från en annan synvinkel. Integrerade tester bör ge verifiering av de externa effekterna av den färdiga mjukvaruprodukten samt dess driftsalgoritmer. Av särskilt intresse är marginella och degenererade fall. Så i praktiken kan aktiviteter med fel ofta avslöja att cykeln går en gång mindre eller mer än vad som planerats. Det är också viktigt att testa datorn, tack vare vilken du kan kontrollera överensstämmelse med önskat resultat på olika maskiner. Detta är nödvändigt för att se till att programvaran kan fungera på alla datorer. Dessutom är det viktigt att testa datorn som utvecklingen kommer att utföras när man skapar multi-plattformsutveckling.

Konsten att hitta misstag

testning av

Program syftar ofta till att arbeta med enormaen mängd data. Är det verkligen nödvändigt att skapa det helt? Inte. Övningen av "miniatyrisering" av programmet har blivit utbredd. I detta fall är det en rimlig minskning av mängden data jämfört med vad som ska användas. Låt oss titta på ett exempel: det finns ett program där en 50x50 matris skapas. Med andra ord måste du manuellt ange 2500 tusen värden. Detta är naturligtvis möjligt, men det kommer att ta mycket tid. Men för att testa användbarheten får mjukvaruprodukten en matris vars dimension är 5x5. För att göra detta måste du ange 25 värden. Om i detta fall en normal, felfri operation observeras, betyder det att allt är i ordning. Även om det finns fallgropar här, som är det under miniatyriseringen, inträffar en situation, varför förändringar blir implicita och tillfälligt försvinner. Det är också mycket sällsynt, men det händer fortfarande att nya fel visas.

Fortsatta mål

Programvarutestning är inte lätt på grund avdet faktum att denna process inte kan formaliseras fullt ut. Större program har nästan aldrig nödvändigt exakt riktmärke. Därför används ett antal indirekta uppgifter som riktlinjer, som emellertid inte fullt ut kan återspegla egenskaperna och funktionerna för mjukvaruutvecklingen, som debugges. Dessutom måste de väljas så att rätt resultat beräknas redan innan mjukvaruprodukten testas. Om detta inte görs i förväg finns det en frestelse att överväga allt ungefär, och om maskinresultatet faller inom det förväntade intervallet kommer ett felaktigt beslut att fattas att allt är korrekt.

Testning under olika förhållanden

programvara

Som regel sker testning av program ivolymer som krävs för att minimera funktionalitetstestning i begränsad utsträckning. Aktiviteter utförs med ändrade parametrar såväl som deras arbetsförhållanden. Testprocessen kan delas in i tre steg:

  • Verifiering under normala förhållanden. I detta fall testas huvudfunktionen för den utvecklade programvaran. Resultatet bör vara som förväntat.
  • Kontrollera i nödsituationer.I dessa fall antas det att man får gränsdata som kan påverka prestandan för den skapade programvaran. Ett exempel är arbetet med extremt stora eller små siffror, eller i allmänhet den fullständiga bristen på mottagen information.
  • Undantagskontroll.Det handlar om användning av data som ligger utanför bearbetningen. I sådana situationer är det mycket dåligt när programvaran uppfattar dem som lämpliga för beräkning och ger ett rimligt resultat. Se till att det i sådana fall finns avslag på data som inte kan behandlas korrekt. Det är också nödvändigt att tillhandahålla information för användaren om detta.

Test av programvara: Typer

programfel

Bygg programvara utan felganska svårt. Detta tar betydande tid. För att få en bra produkt används ofta två typer av testning: Alpha och Beta. Vad är dem? När man talar om alfatestning, betyder det ett test utfört av personalen hos utvecklare under "laboratorie" -förhållanden. Detta är det sista steget i testet innan programmet överförs till slutanvändare. Därför försöker utvecklare distribuera maximalt. För enkel användning kan data loggas för att skapa en kronologi med problem och deras lösningar. Betatest betyder leverans av programvara till en begränsad krets av användare så att de kan köra programmet och identifiera saknade fel. En funktion i detta fall är att programvaran ofta används för andra ändamål. Tack vare detta kommer fel att upptäckas där ingenting har noterats tidigare. Detta är helt normalt och det finns ingen anledning att oroa sig för det.

Slutförande av testning

Om de tidigare stegen har slutförts, dådet återstår att genomföra ett acceptantest. I det här fallet blir det bara en formalitet. Denna kontroll bekräftar att inga ytterligare problem har hittats och programvaran kan släppas ut på marknaden. Ju viktigare slutresultatet är, desto noggrannare bör kontrollen utföras. Det är nödvändigt att se till att alla steg är klara. Så här ser testprocessen generellt ut. Låt oss nu dyka in i de tekniska detaljerna och prata om användbara verktyg som testprogram. Vad är de och när används de?

Automatiserad testning

testa det utvecklade programmet

Man trodde tidigare att dynamisk analysutvecklad programvara är en för tung metod som är ineffektiv att använda för att upptäcka defekter. Men på grund av den ökande komplexiteten och volymen i program har den motsatta synen dykt upp. Automatiserad testning används där hälsa och säkerhet har högsta prioritet. Och de borde vara för alla insatser. Exempel på program för vilka sådana test är lämpliga är följande: nätverksprotokoll, webbserver, sandboxing. Nästa tittar vi på några prover som kan användas för en sådan aktivitet. Om du är intresserad av gratis testprogram är det ganska svårt att hitta kvalitetsprogram bland dem. Men det finns hackade "pirat" -versioner av väl beprövade projekt så att du kan vända dig till deras tjänster.

Lavin

Detta verktyg hjälper till att upptäcka defekter,medan du testar program i dynamiskt analysläge. Den samlar in data och analyserar körningsspåret för det utvecklade objektet. Testaren presenteras med en uppsättning ingångar som orsakar ett fel eller kringgår en uppsättning befintliga begränsningar. Med en bra valideringsalgoritm utvecklas ett stort antal möjliga situationer. Programmet tar emot olika uppsättningar ingångsdata som låter dig simulera ett stort antal situationer och skapa sådana förhållanden när ett troligtvis troligtvis inträffar. En viktig fördel med programmet är användningen av heuristiska mätvärden. Om det finns ett problem är det stor sannolikhet för ett applikationsfel. Men det här programmet har begränsningar som att kontrollera endast ett flaggat ingångsuttag eller en fil. När du utför en operation som testprogram kommer det att finnas detaljerad information om förekomsten av problem med nollpekare, oändliga slingor, felaktiga adresser eller funktionsstörningar på grund av användning av bibliotek. Naturligtvis är detta inte en fullständig lista över upptäckta fel, utan bara vanliga exempel. Tyvärr måste utvecklare korrigera bristerna - automatiska verktyg är inte lämpliga för dessa ändamål.

KLEE

testprogram

Det är ett bra program för att testa minne. Det kan fånga upp cirka 50 systemanrop och ett stort antal virtuella processer, vilket kan utföras parallellt och separat. Men i allmänhet letar programmet inte efter enskilda misstänkta platser utan behandlar maximalt möjlig mängd kod och analyserar de dataöverföringsvägar som används. På grund av detta beror testtiden för programmet på objektets storlek. Under verifieringen gjordes insatsen på symboliska processer. De är ett av de möjliga sätten att utföra uppgifter i programmet som kontrolleras. På grund av den parallella operationen är det möjligt att analysera ett stort antal varianter av den ansökan som studeras. För varje sökväg sparas ingångsdata från vilken testet började efter testets slut. Det bör noteras att testprogram med KLEE hjälper till att identifiera ett stort antal avvikelser som inte borde finnas där. Hon kan hitta problem även i applikationer som har utvecklats i årtionden.

gillade:
0
Populära inlägg
Andlig utveckling
mat
y