Black box testning

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 4 februari 2019; kontroller kräver 2 redigeringar .

Black box- testning eller beteendetestning  är en strategi (metod) för att testa ett objekts (program, system) funktionella beteende ur den yttre världens synvinkel, som inte använder kunskap om objektets interna struktur (kod) bli prövad. Black box-testning görs med andra ord av testare som inte har tillgång till applikationens källkod. Strategi avser de systematiska metoderna för att välja och skapa tester för en testuppsättning. Beteendeteststrategin kommer från de tekniska kraven och deras specifikationer [1] .

Konceptet med en "svart" ruta

En "svart låda" förstås som ett studieobjekt, vars inre struktur är okänd. Konceptet "svart låda" föreslogs av W. R. Ashby . Inom kybernetik tillåter det en att studera systemens beteende, det vill säga deras reaktioner på olika yttre påverkan, och samtidigt abstrahera från deras interna struktur.

Genom att manipulera enbart med input och output kan vissa studier utföras. I praktiken uppstår alltid frågan i vilken utsträckning den "svarta" lådans homomorfism återspeglar lämpligheten hos dess studerade modell, det vill säga hur fullständigt originalets grundläggande egenskaper återspeglas i modellen.

Beskrivningen av vilket kontrollsystem som helst i tiden kännetecknas av en bild av sekvensen av dess tillstånd i processen att röra sig mot målet som det står inför. Transformationen i styrsystemet kan vara antingen en-till-en och då kallas den isomorf, eller bara en-till-en, i en riktning. I det här fallet kallas transformationen homomorf.

Den "svarta" lådan är en komplex homomorf modell av ett cybernetiskt system där mångfald respekteras. Det är först då en tillfredsställande modell av systemet när det innehåller en sådan mängd information som speglar systemets mångfald. Det kan antas att ju fler störningar som verkar på systemmodellens ingångar, desto större mångfald bör styrenheten ha.

Två typer av "svarta" lådor är för närvarande kända. Den första typen inkluderar vilken "svart" ruta som helst, som kan betraktas som en automat , kallad finit eller oändlig. Beteendet hos sådana "svarta" lådor är känt. Den andra typen inkluderar sådana "svarta" lådor, vars beteende endast kan observeras i ett experiment. I detta fall, i en explicit eller implicit form, uttrycks en hypotes om förutsägbarheten av beteendet hos den "svarta" lådan i en probabilistisk mening. Utan en preliminär hypotes är all generalisering omöjlig, eller, som de säger, det är omöjligt att dra en induktiv slutsats baserad på experiment med black box. N. Wiener föreslog konceptet med en "vit" ruta för att beteckna den "svarta" boxmodellen. Den "vita" rutan består av kända komponenter, dvs kända X, Y, δ, λ. Dess innehåll är speciellt valt för att implementera samma utgång-ingångsberoende som motsvarande "svarta" låda. I processen med pågående forskning och generaliseringar, hypoteser och upprättande av mönster, blir det nödvändigt att justera organisationen av den "vita" rutan och ändra modeller. I detta avseende, vid modellering, måste forskaren upprepade gånger hänvisa till schemat för "svart" - "vit" ruta.

Studerar beteendet hos den "svarta" rutan

Låt oss överväga hur beteendet hos den "svarta" lådan av det andra slaget studeras och undersöks. Låt oss anta att vi får något kontrollsystem, vars interna struktur är okänd. Styrsystemet har ingångar och utgångar .

Sättet att studera beteendet hos denna "svarta" låda är att utföra ett experiment, vars resultat kan presenteras i form av en tabell. ett.

Denna metod för att studera den "svarta" lådan kallas protokoll. Värdena på de ingående kvantiteterna kan ibland väljas godtyckligt.

bord 1

Sättet att studera den "svarta" lådan
Ingångsstatus Utgångsstatus Tid
............ ............ ....
............ ............ ....

Ett annat sätt att utforska är att mata in några standardsekvenser till ingångarna. Denna metod är särskilt attraktiv eftersom den låter dig jämföra beteendet hos flera "svarta" lådor med villkoret att välja de som uppfyller kraven.

Studiet av styrsystem är förknippat med begreppen " probabilistisk automat ", "probabilistiskt system", vilket kräver studier av deras probabilistiska egenskaper. För dessa ändamål kan du bygga en sannolikhetsmatris (tabell 2), i vilken för varje ingång och varje utdata den villkorade sannolikheten anges , vilket inträffar som svar på [7] som ges i tabellen. 2.

Utvecklingen av metoder för att konstruera matematiska modeller av den "svarta" lådan är ett av de viktiga cybernetiska problemen. Förutsatt att det finns en matematisk modell av den "svarta" lådan, blir det möjligt att tillskriva den till vilken klass som helst, vars alla system är isomorfa i beteende.

Att skapa en matematisk beskrivning av den "svarta" lådan är en slags konst. I vissa fall är det möjligt att bilda en algoritm, enligt vilken den "svarta" rutan svarar på en godtycklig insignal. För de flesta fall görs dock försök att upprätta differentialekvationer som relaterar reaktionen från den "svarta" lådan till dess ingångar, eller, som man säger, till dess ingångsstimuli.

För vetenskapen är metoden "svarta lådan" av stor betydelse. Med hans hjälp gjordes många enastående upptäckter inom vetenskapen. Till exempel förutspådde vetenskapsmannen Harvey hjärtats struktur redan på 1600-talet. Han modellerade hjärtats arbete med en pump och lånade idéer från ett helt annat område av samtida kunskap - hydraulik. Det praktiska värdet av "black box"-metoden ligger för det första i möjligheten att studera mycket komplexa dynamiska system, och för det andra i möjligheten att ersätta en "box" med en annan. Den omgivande verkligheten och biologin ger många exempel på att avslöja systemstrukturen med hjälp av den "svarta" lådan-metoden.

Principer för testning av svart låda

I den här metoden behandlas programmet som en svart låda . Syftet med testningen är att ta reda på under vilka omständigheter programmets beteende inte överensstämmer med specifikationen . För att upptäcka alla fel i programmet är det nödvändigt att utföra uttömmande testning , det vill säga testning på alla typer av datamängder . För de flesta program är detta inte möjligt, så rimliga tester används , där testning av programmet är begränsad till en liten delmängd av möjliga datamängder. I det här fallet är det nödvändigt att välja de mest lämpliga delmängderna, delmängderna med högst sannolikhet att upptäcka fel.

Egenskaper för ett korrekt valt test

  1. Minskar mer än ett antal andra tester som ska utformas för rimliga tester.
  2. Täcker en betydande del av andra möjliga tester, vilket är något som tyder på närvaron eller frånvaron av ett fel före och efter en begränsad uppsättning tester.

Black box testtekniker

  1. Motsvarande partition.
  2. Analys av gränsvärden.
  3. Analys av orsak-verkan-samband.
  4. Gissa fel.

Låt oss ta en närmare titt på var och en av dessa metoder:

Motsvarande partition

Metoden bygger på två principer:

  1. De initiala uppgifterna måste delas in i ett ändligt antal ekvivalensklasser. En ekvivalensklass innehåller sådana tester att om ett test från ekvivalensklassen upptäcker något fel, så måste alla andra test från denna ekvivalensklass upptäcka samma fel.
  2. Varje test bör innehålla så många ekvivalensklasser som möjligt för att minimera det totala antalet tester.

Utvecklingen av tester med denna metod utförs i två steg : valet av ekvivalensklasser och konstruktionen av testet.

Ekvivalensklasser särskiljs genom att välja varje ingångsvillkor, som är hämtat från referensvillkoren eller specifikationen och uppdelat i två eller flera grupper. Följande tabell används för detta:

Ingångsvillkor Korrekt ekvivalensklasser Fel ekvivalensklasser
' ' '

Valet av ekvivalensklasser är ett heuristiskt sätt, men det finns ett antal regler:

  1. Om ingångsvillkoret beskriver ett intervall, till exempel "Ett heltal tar ett värde från 0 till 999", så finns det en giltig ekvivalensklass och två ogiltiga.
  2. Om indatavillkoret beskriver ett antal värden, till exempel "Antalet rader i indatafilen ligger i intervallet (1..6)", så finns det också en korrekt klass och två felaktiga.
  3. Om ingångsvillkoret beskriver en uppsättning ingångsvärden, så bestäms antalet korrekta klasser lika med antalet element i uppsättningen av ingångsvärden. Om inmatningsvillkoret beskriver en "måste vara"-situation, till exempel "Det första tecknet måste skrivas med versaler", så är en klass korrekt och en klass är felaktig.
  4. Om det finns anledning att tro att element inom samma ekvivalensklass kan tolkas olika av programmet, är det nödvändigt att dela upp denna klass i underklasser. I detta steg måste testaren använda tabellen för att skapa tester som täcker alla korrekta och felaktiga ekvivalensklasser. I det här fallet måste kompilatorn minimera det totala antalet tester.

Definition av tester:

  1. Varje ekvivalensklass tilldelas ett unikt nummer.
  2. Om det fortfarande finns korrekta klasser som inte ingår i proven, skrivs prov som täcker maximalt antal klasser.
  3. Om det finns felaktiga klasser som inte ingår i proven skrivs prov som endast omfattar en klass.
Gränsvärdesanalys

Randvillkor  är situationer som uppstår vid de övre och nedre gränserna för ingångsekvivalensklasserna.

Gränsvärdesanalys skiljer sig från motsvarande partitionering på följande sätt:

  1. Valet av valfritt element i ekvivalensklassen som representativt görs på ett sådant sätt att varje gräns för denna klass testas med ett test.
  2. När man utvecklar tester beaktas inte bara ingångsvärden (inmatningsutrymme), utan också utdatavärden (utgångsutrymme).

Metoden kräver en viss grad av kreativitet och specialisering i uppgiften.

Det finns flera regler:

  1. Bygg tester med dåliga ingångar för en mindre situation utanför räckvidden. Om ingångsvärdena ska ligga i intervallet [-1,0 .. +1.0], kontrollera −1.0, 1.0, −1.000001, 1.000001.
  2. Var noga med att skriva tester för minimi- och maxgränserna för intervallet.
  3. Använd de två första reglerna för vart och ett av ingångsvärdena (använd steg 2 för alla utdatavärden).
  4. Om ingången och utmatningen av programmet är en ordnad uppsättning, fokusera på de första och sista delarna av listan.

Gränsvärdesanalys kan, om den tillämpas på rätt sätt, upptäcka ett stort antal fel. Men att definiera dessa gränser för varje uppgift kan vara en separat svår uppgift. Den här metoden kontrollerar inte heller kombinationer av ingångsvärden.

Orsak-och-verkan analys

Testbyggnadssteg:

  1. Specifikationen är indelad i arbetssektioner.
  2. Specifikationen definierar många orsaker och effekter. En orsak är ett enskilt ingångsvillkor eller en ekvivalensklass. Konsekvensen är ett utdatatillstånd eller transformation av systemet. Här tilldelas varje orsak och verkan ett nummer.
  3. Baserat på analysen av det semantiska (semantiska) innehållet i specifikationen konstrueras en sanningstabell där alla möjliga kombinationer av orsaker sorteras sekventiellt ut och konsekvenser bestäms för varje kombination av orsaker.

Tabellen är kommenterad med begränsningar och beskrivningar av kombinationer som inte är möjliga. Nackdelen med detta tillvägagångssätt är den dåliga studien av randvillkor.

Gissa fel

En testare med mycket erfarenhet hittar fel utan några metoder, men samtidigt använder han sig av undermedvetet metoden att gissa felet. Denna metod bygger till stor del på intuition. Huvudtanken med metoden är att göra en lista som listar möjliga fel och situationer där dessa fel kan uppstå. Sedan, baserat på listan, sammanställs tester.

Anteckningar

  1. Beizer, 2004 , sid. 33.

Litteratur

  • Ross Ashby W. Kapitel 6. The Black Box // Introduction to Cybernetics = An Introduction to Cybernetics. - Förlag för utländsk litteratur, 1959. - S. 127-169. — 432 sid.
  • Beizer B. Black box-testning. Teknik för funktionstestning av mjukvara och system. - Peter, 2004. - 320 sid. — ISBN 5-94723-698-2 .