DatorerProgramvara

Metoder för mjukvarutestning och deras jämförelse. Black-box testning och white-box testning

Testning av programvara (SW) identifiera luckor, brister och fel i koden som måste åtgärdas. Det kan också definieras som processen att utvärdera funktionaliteten och riktigheten av programvara med hjälp av analysen. Grundläggande metoder för integration och testning av program och säkerställa kvalitet är att testa specifikation, design och kodning, bedömning tillförlitlighet, validering och verifiering.

metoder

Det huvudsakliga syftet med testning av programvara - en bekräftelse av kvaliteten på mjukvarusystem genom systematiska felsökning applikationer under noggrant kontrollerade förhållanden för att bestämma deras fullständighet och noggrannhet, samt att upptäcka dolda fel.

Metoderna för verifiering (provning) program kan delas in i statiska och dynamiska.

Den förstnämnda inkluderar informella, övervakning och teknisk granskning, inspektion, steg för steg analys, revision, liksom statisk analys dataflöde och förvaltning.

Dynamiska tekniker är:

  1. Vit box testning. Detta är en detaljerad studie av den inre logik och struktur av programmet. Det är nödvändigt att kännedom om källkoden.
  2. Black box testning. Denna teknik kräver inte någon kunskap om det inre arbetet i programmet. Vi anser bara de grundläggande aspekterna av systemet, inte är relaterade till eller associerade med några av dess interna logiska struktur.
  3. Grå ruta metod. Den kombinerar två tidigare tillvägagångssätt. Avlusning med begränsad kunskap om den interna funktion ansökan kombineras med kunskap om de grundläggande aspekterna av systemet.

transparent testning

De vita box-metoden med användning av testskript styra strukturen hos den procedur design. Denna teknik gör det möjligt att avslöja fel genomförandet, såsom dålig management kodsystem genom att analysera en del av det inre arbetet i programvaran. Dessa testmetoder är tillämpliga på integrationsmodul och systemnivåer. Testaren måste ha tillgång till källkoden och använda den för att ta reda på vilken enhet beter sig olämpligt.

Testprogram av white-box har följande fördelar:

  • Det gör det möjligt att upptäcka ett fel i den dolda koden genom att ta bort onödiga linjer;
  • användning av sidoeffekter;
  • maximal täckning uppnås genom att skriva en testskript.

nackdelar:

  • höga kostnader process som kräver skicklig debugger;
  • många vägar fortfarande outforskade eftersom noggrann kontroll av alla möjliga dolda fel är mycket komplex;
  • en del av koden kommer att skickas obemärkt.

Vit box testning kallas ibland genom att testa ett transparent eller öppen låda, strukturella, logiska tester, baserat på källkoden, och logik arkitektur.

De huvudsakliga sorter:

1) testa flödeskontroll - strukturell strategi med användning av flödesmodell programstyrning och som gynnar mer enkla sätt till färre mer komplex;

2) Den grenen är utformad för att studera avlusning varje alternativ (sant eller falskt) hos varje styr operatör, som också innehåller en kombinerad lösning;

3) test av huvudbanan, vilket gör det möjligt för provaren att upprätta logiska komplexitet åtgärd procedurprojekt för isolering av en bas uppsättning exekveringsvägar;

4) kontroll av dataströmmen - flödesstyr strategin för forskning av anteckningarna räkna information om annonsen och använda programvariabler;

5) cykler av testning - helt inriktad på det korrekta genomförandet av cykliska processer.

beteende felsökning

Black box testning behandlar programmet som en "svart låda" - information om det inre arbetet i programmet räknas inte, och kontrolleras endast de grundläggande aspekterna av systemet. I det här fallet måste testaren känna systemarkitekturen utan tillgång till källkoden.

Fördelar med denna strategi:

  • effektivitet för stora kodsegment;
  • lätthet perceptions testare;
  • användarperspektiv är klart skild från de utvecklare perspektiv (programmerare och testare är oberoende av varandra);
  • snabbare skapande av testet.

Testning svart låda metod har följande nackdelar:

  • faktiskt utfört ett utvalt antal testfall, vilket resulterar i begränsad täckning;
  • avsaknaden av en tydlig specifikation svårt att utveckla testskript;
  • låg effektivitet.

Andra namn för denna teknik - beteende, icke-transparent, funktionstestning och felsökning metod för en sluten låda.

Denna kategori kan omfatta följande testning av programvara tekniker:

1) motsvarande partition, vilket kan minska den uppsättning av testdata som indata mjukvarumodul data delas upp i separata delar;

2) gränsvärdesanalys fokuserar på kontrollen av gränser eller extrema gränsvärden - minimum, maximum, och typiska värden för fel;

3) ytludd - används för att implementera sökningen genom att mata in fel eller skadade data poluiskazhennyh i automatisk eller halvautomatiskt läge;

4) räknar av orsakssamband - en teknik som bygger på skapandet av grafer och bestämma förhållandet mellan åtgärd och dess orsaker: identitet, negation, logiskt OR och logisk OCH - de fyra huvudpersonerna, som uttrycker förhållandet mellan orsak och verkan;

5) Kontroll av ortogonala matriser appliceras till problem med en relativt liten inmatningsarea över möjligheten till omfattande forskning;

6) testa alla par - en teknik där en uppsättning av testvärden innefattar alla möjliga binära kombinationer av varje par av ingångsparametrar;

7) felsökning tillståndsövergång - en teknik som är användbar för att kontrollera statusen hos maskinen, såväl som för att navigera genom GUI användaren.

Black box testning: Exempel

black-box-tekniken bygger på specifikationer, dokumentation och beskrivningar av programvaran gränssnitt eller system. Dessutom kan du använda modeller (formellt eller informellt), vilket motsvarar det förväntade beteendet hos programvaran.

Typiskt är denna metod som används för felsökning användargränssnitt och kräver interaktion med tillämpningen genom att införa en datainsamling och resultat - från skärmen, från de rapporter eller utskrifter.

Testaren därför samverkar med programvaran genom att mata in, genom att agera på strömställare, knappar eller andra gränssnitt. Valet av indata, kan ordningen för administrering eller sekvens av åtgärder leda till en enorm totala antalet kombinationer, såsom visas i följande exempel.

Hur många tester måste göra för att kontrollera alla möjliga värden för 4 fönster flaggan och engångs fältet ställa in tiden i sekunder? Vid första anblicken beräkning är enkel: 4 fält med två möjliga tillstånd - 24 = 16, som måste multipliceras med antalet möjliga positioner 00 till 99, dvs 1600 möjliga tester.

Dock är denna beräkning fel: vi kan bestämma att de två punkter fält även kan innehålla ett utrymme, det vill säga den består av två alfanumeriska positioner och kan innehålla alfanumeriska tecken, specialtecken, mellanslag, etc. Således, om .... systemet är en 16-bitars dator, vänd 216 = 65536 ett för varje position i de resulterande 4294967296 testfall som skall multipliceras med 16 kombinationer av flaggor som ger totalt 68.719.476 736. Om de utför vid en provning per sekund, den totala forts olzhitelnost testning är 2 177,5 år. För 32 eller 64-bitarssystem, varaktigheten ännu mer.

Därför finns det ett behov av att minska denna period till en acceptabel nivå. Sålunda bör de tekniker tillämpas för att reducera antalet testfall utan att minska omfattningen av testningen.

likvärdighet partitione

Likvärdighet partitionering är en enkel metod som tillämpas för alla variabler som finns i programvaran, vare sig det är in- eller utgångsvärden, tecken, siffror, etc .. Den är baserad på principen att alla data från en ekvivalent av partitionen kommer att behandlas på samma sätt och av samma instruktioner.

Under testning, valt en representant för varje särskild likvärdighet partition. Detta gör det möjligt att systematiskt minska antalet möjliga testfall utan förlust av täckning av kommandon och funktioner.

En annan konsekvens av denna uppdelning är att reducera den kombinatoriska explosion mellan de olika variablerna och den tillhörande minskningen av testfall.

Till exempel, i (1 / x) 1/2 med användning av tre datasekvenser, tre ekvivalent partition:

1. Alla positiva tal kommer att behandlas på samma sätt och bör ge korrekta resultat.

2. Alla negativa tal hanteras på samma sätt med samma resultat. Detta är felaktigt, eftersom roten av ett negativt tal är tänkt.

3. Zero kommer att hanteras separat och ge felmeddelandet "division med noll". Detta är ett avsnitt med ett enda värde.

Således ser vi tre distinkta sektioner, av vilka en är reducerad till ett enda värde. Det finns en "rätt" avsnitt, som ger tillförlitliga resultat, och två "fel" med felaktiga resultat.

gränsvärdesanalys

Bearbetning på gränsen till motsvarande uppdelning kan göras annorlunda än förväntat. Undersökning av gränsvärden - en välkänd metod för att analysera beteendet hos programvaran i sådana områden. Denna teknik gör det möjligt att identifiera sådana fel:

  • felaktig användning av relationsoperatorer (<,>, =, ≠, ≥, ≤);
  • enda fel;
  • problem i cykler och iterationer,
  • fel typer eller storlek på variabler som används för att lagra information;
  • artificiella begränsningar i samband med datatyper och variabler.

genomskinlig testning

grå ruta metod ökar testtäckning, kan du fokusera på alla de svåra nivåer i systemet genom en kombination av svarta och vita tekniker.

Med hjälp av denna teknik bör testaren för utveckling av testvärden har kunskap om interna datastrukturer och algoritmer. Exempel på grå-box testmetoder är enligt följande:

  • arkitektonisk modell;
  • Unified Modeling Language (UML);
  • tillståndsmodell (ändlig tillståndsmaskin).

I metoden enligt den grå rutan för att utveckla testfall studerade moduler i vita ingenjörskoder och verkliga provet utförs på gränssnitt svarta teknologiprogram.

Dessa testmetoder har följande fördelar:

  • kombination av fördelar tekniker vita och svarta lådor;
  • Tester bygger på gränssnitt och funktionella specifikationer, och inte källkoden;
  • debugger kan göra stora testfall;
  • kontroll görs från synvinkel användaren inte konstruktören av programmet;
  • skapa anpassade testutveckling;
  • objektivitet.

nackdelar:

  • testtäckning är begränsad eftersom det inte finns tillgång till källkoden;
  • komplexiteten hos de defekter i distribuerade applikationer;
  • många sätt fortfarande outforskade;
  • Om programutvecklare har lanserat testet, då ytterligare utredning kan vara överdriven.

Ett annat namn för den grå rutan tekniker - genomskinlig felsökning.

Denna kategori innefattar sådana metoder för testning:

1) ortogonal array - användningen av en underuppsättning av alla möjliga kombinationer;

2) matris avlusning användning tillståndet för dataprogrammet;

3) regressiv inspektion genomfördes på de nya ändringarna i programmet;

4) mall test som analyserar design och arkitektur av en bra ansökan.

Jämförelse av programvara testtekniker

Användningen av dynamiska metoder leder till en kombinatorisk explosion av antalet tester som måste utvecklas, genomföras och genomförs. Varje teknik bör användas på ett pragmatiskt sätt, med dess begränsningar beaktas.

Den enda sanna metoden existerar inte, det är bara de som är bättre anpassade till det specifika sammanhanget. Byggteknik tillåter oss att hitta en värdelös eller skadlig kod, men de är komplexa och kan inte tillämpas på stora program. Metoder baserade på specifikationerna - de enda som kan identifiera den saknade kod, men de kan inte identifiera en outsider. Vissa tekniker är mer lämpade för en viss testnivå, typ fel eller sammanhang än andra.

Nedan är de viktigaste skillnaderna mellan de tre dynamiska testtekniker - ges en jämförelsetabell mellan de tre formerna av felsökning programvara.

aspekt

Den svarta lådan metoden

Grå ruta metod

White-box-metoden

Tillgång till information om sammansättningen av programmet

Undersöker endast de grundläggande aspekterna av

Delvis kunskap om den interna strukturen av programmet

Full tillgång till källkoden

Grad av fragmentering av program

låg

Central

hög

Som producerar felsökning?

Slutanvändare, testare och utvecklare

Slutanvändare, utvecklare och debuggers

Utvecklare och testare

bas

Testning är baserad på de externa nödsituationer.

Diagram databas dataflödesdiagram, tillstånd av intern kunskap om algoritmen och arkitektur

Den interna enheten är fullt medveten

Täckningsgraden

Mindre omfattande och kräver ett minimum av tid

Central

Potentiellt mest omfattande. Tidskrävande

Data och inre gränserna

Debug endast genom trial and error

Kan kontrolleras data domäner och inre gränser, om de är kända

De bästa testdata domäner och inre gränserna

Lämplighet testning algoritm

ingen

ingen

Ja

automation

Automatiska metoder för testning av programvara är mycket förenkla processen för inspektion, oberoende av den tekniska miljön och mot bakgrund av. De används i två fall:

1) för att automatisera de tråkiga, repetitiva eller noggranna uppgifter såsom fil jämförelse till flera tusen rader för att frigöra tid för koncentration av testaren mer viktiga punkter;

2) för utförande av spårning eller uppgifter som inte lätt kan utföras av personer, såsom kontroll prestanda eller analys responstid som kan mätas i hundradelar av en sekund.

Testverktyg kan klassificeras på olika sätt. Nästa division bygger på de uppgifter de stöder:

  • testledning, som omfattar projektledning stöd versioner konfigurationer riskanalys, testa spårning, fel, fel, och rapporteringsverktyg;
  • kravhantering, som innehåller krav och specifikationer lagring, kontrollera dem för fullständighet och tvetydighet, deras prioritet och spårbarhet av varje test;
  • kritisk granskning och statisk analys, inklusive övervakning flödet och uppgifter, registrering och lagring av kommentarer, fel upptäckt och planerade korrigeringar lednings länkar till checklistor och regler, spårning kommunikationskälldokument och kod statisk analys för att upptäcka defekter, som säkerställer att normerna för att skriva kod, analys av strukturer och beroenden, beräkning av de metriska parametrar i koden och arkitektur. Dessutom använder kompilatorer, analysatorer, generatorer och relationer av korsreferenser;
  • modellering, som innehåller verktyg för modellering affärsbeteende och testa modeller,
  • testutveckling garanterar generering av data som förväntas på basis av villkor och användargränssnitt modeller och kod, lyckas skapa eller ändra filer och databaser, meddelandehantering, dataverifiering på grundval av reglerna för förvaltning, statistisk analys av villkoren och risker;
  • en kritisk syn genom att skriva in data genom ett grafiskt användargränssnitt, API, kommandoraden med komparatorer för att hjälpa till att identifiera lyckade och misslyckade tester;
  • support felsökning miljö som gör det möjligt att ersätta den saknade hårdvara eller mjukvara i Vol. Simulering utrustning h. baserat på den bestämda utgående delmängd, terminalemulatorer, mobiltelefoner och nätverksutrustning, miljön för kontroll språk, operativsystem och hårdvara genom att ersätta de saknade komponenter föraren, fiktiva moduler, etc, såväl som verktyg för att fånga in och modifiera OS begär begränsningen CPU simulering, RAM, ROM, eller nätverk .;
  • .. En jämförelse av datafiler, databaser, kontrollera de förväntade resultaten under och efter testet är klart, inkl dynamisk och batch jämförelse Automatic "Orakel";
  • beläggning mätning för lokalisering av minnesläckor och felaktig dess styrbeteende uppskatta systemet under simulerade belastning genererande belastnings applikationer, databaser, nätverk eller servrar i ett realistiskt scenario av tillväxt för mätning, analys och verifiering av rapport systemresurser;
  • säkerhet;
  • prestandatester, belastning och dynamisk analys;
  • andra verktyg, i Vol. h. att kontrollera stavning och syntax, nätverkssäkerhet, tillgängligheten av alla webbsidor och andra.

perspektiv

Med de nya tendenserna inom mjukvaruindustrin, är också ändras processen för felsökning. Det finns nya metoder för testning av programvara, till exempel en service orientirovannae arkitektur (SOA), trådlös teknik, mobila tjänster, och så vidare. E., har öppnat nya vägar för testning av programvara. Några av de förändringar som förväntas i branschen under de närmaste åren är listade nedan:

  • testare kommer att ge en lätt modell som utvecklare kommer att kunna kontrollera din kod;
  • utveckling av testmetoder, inklusive visning och modelleringsprogram på ett tidigt stadium, kommer att eliminera många av de motsättningar;
  • närvaron av multipla avlyssningar testet kommer att förkorta tiden för feldetektering;
  • Statisk analysator och detekteringsorgan som skall användas i större utsträckning;
  • användningen av mineral matriser, såsom täckning av beskrivningen, kommer omfattningen av modellen och kod täckning bestämma utvecklingen av projekt;
  • kombiverktyg tillåter testare för att fastställa de prioriterade områdena för felsökning;
  • testare kommer att ge en mer intuitiv och värdefulla tjänster i hela mjukvaruutveckling processen;
  • debuggers kan skapa verktyg och programvara testmetoder skrivna i och interagera med en mängd olika programmeringsspråk;
  • Felsökning experter kommer att vara mer professionellt utbildade.

Kommer att ersättas av en ny affärsorienterade mjukvarutestning metoder för att förändra sättet att samverkan med systemen och den information de ger samtidigt minska riskerna och öka fördelarna med affärsförändringar.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sv.atomiyme.com. Theme powered by WordPress.