ComputersSoftware

Methodes van testen van software en te vergelijken. Testmethode van de "black box" testen en de methode van de "white box"

Testen van software (SW) lacunes, tekortkomingen en fouten in de code die moeten worden aangepakt. Het kan ook worden gedefinieerd als het proces van het evalueren van de functionaliteit en de juistheid van de software met behulp van de analyse. Basismethoden van de integratie en het testen van software-applicaties en de kwaliteit te waarborgen is om de specificatie, het ontwerp en de codering, betrouwbaarheid assessment, validatie en verificatie te testen.

methoden

Het belangrijkste doel van het testen van software - bevestiging van de kwaliteit van het softwaresysteem via systematische debuggen toepassingen onder zorgvuldig gecontroleerde omstandigheden om de volledigheid en nauwkeurigheid, alsook de detectie van verborgen fouten te bepalen.

De methoden van verificatie (testen) programma's kunnen worden onderverdeeld in statische en dynamische.

De eerste categorie behoren informele, de monitoring en technische beoordeling, inspectie, stap voor stap analyse, auditing, evenals statische data flow-analyse en management.

Dynamische technieken zijn:

  1. Whiteboxtest. Dit is een gedetailleerde studie van de interne logica en de structuur van het programma. Het is noodzakelijk om de kennis van de broncode.
  2. Black box testen. Deze techniek vereist geen kennis over de interne werking van de applicatie nodig. We beschouwen alleen de fundamentele aspecten van het systeem, niet gerelateerd aan of geassocieerd met een paar van haar interne logische structuur.
  3. Grijze box werkwijze. Het combineert twee eerdere benaderingen. Debuggen met beperkte kennis van de interne werking van de aanvraag wordt gecombineerd met kennis van de fundamentele aspecten van het systeem.

transparante testen

De witte doos onder toepassing testscripts controlestructuur van de procedurele vormgeving. Deze techniek maakt het mogelijk om de uitvoering fouten, zoals slechte beheer codesysteem voren gekomen die door het analyseren van een deel van de innerlijke werking van de software. De testmethoden zijn van toepassing op de integratie module en systeemniveau. De tester moet toegang hebben tot de broncode en deze gebruiken om erachter te komen welke eenheid zich misdraagt.

Het testen van programma's door de white-box heeft de volgende voordelen:

  • Het kan een fout in de verborgen code te detecteren door onnodige lijnen;
  • het gebruik van bijwerkingen;
  • maximale dekking wordt bereikt door het schrijven van een test script.

nadelen:

  • dure werkwijze die deskundigen debugger;
  • vele wegen blijven onontgonnen vanwege grondige controle van alle mogelijke verborgen fouten is zeer complex;
  • een deel van de code zal ongemerkt worden doorgegeven.

Whiteboxtest wordt soms verwezen met het testen van een transparante of open doos, structurele, logische testen op basis van de broncode en logische architectuur.

De belangrijkste rassen:

1) het testen van het regelelement - structurele aanpak vanuit het programmabestuurinformatiesignaal stromingsmodel en als begunstiging eenvoudigere manieren om minder ingewikkelder;

2) De aftakking is ontworpen om te bestuderen debuggen elke optie (waar of onwaar) van elke besturingsoperateur, die ook een gecombineerde oplossing;

3) het testen van het hoofdpad, waarbij het meetapparaat mogelijk maakt logische complexiteit maatregel procedurele project stellen voor isoleren van een basisset uitvoeringspaden;

4) het controleren van de datastroom - de flow control strategie van het onderzoek door de annotaties tellen informatie over de advertentie en gebruik van het programma variabelen;

5) cycli van testen - volledig gefocust op de correcte werking van kringlopen.

gedrags-debugging

Black box testen behandelt de software als een "black box" - informatie over de interne werking van het programma worden niet geteld en gecontroleerd alleen de fundamentele aspecten van het systeem. In dit geval is de tester moet de systeemarchitectuur weten zonder toegang tot de broncode.

Voordelen van deze aanpak:

  • efficiency voor grote codesegment;
  • het gemak van de waarneming tester;
  • gebruikersperspectief is duidelijk gescheiden van de ontwikkelaar perspectieven (programmeur en tester onafhankelijk van elkaar);
  • meer snelle oprichting van test.

Testen van software black box methode heeft de volgende nadelen:

  • inderdaad een select aantal testgevallen uitgevoerd, resulterend in beperkte dekking;
  • het ontbreken van een duidelijke specificatie moeilijk om testscripts te ontwikkelen;
  • lage efficiëntie.

Andere namen voor deze technologie - gedrags-, ondoorzichtig, functioneel testen en debuggen methode van een gesloten doos.

Deze categorie kunnen onder meer de volgende software testtechnieken:

1) overeenkomt met scheidingswand, waarbij de testbasis als invoer softwaremodule data wordt opgesplitst in afzonderlijke delen te verminderen;

2) grenswaardenanalyse richt over het onderzoek van grenzen of extreme grenswaarden - het minimum, maximum en typische waarden van de fout;

3) fuzzing - gebruikt om de zoekopdracht door het invoeren van fouten of gecorrumpeerde data poluiskazhennyh automatische of semi-automatische modus uit te voeren;

4) tellingen van causaliteit - een techniek die gebaseerd is op het creëren van grafieken en het bepalen van de relatie tussen de actie en de redenen: identiteit, ontkenning, logische OR en logische AND - de vier hoofdpersonen, die de verhouding tussen oorzaak en gevolg;

5) Controle van orthogonale arrays toegepast op problemen met een relatief kleine ingang oppervlakte van meer dan de mogelijkheid van een uitputtend onderzoek;

6) het testen van alle paren - een techniek waarbij een stel testwaarden omvat alle mogelijke binaire combinaties van ieder paar invoerparameters;

7) debugging toestandsovergang - een techniek die bruikbaar is voor het controleren van de status van de machine, alsmede om door de GUI gebruiker.

Black box testen: Voorbeelden

black-box techniek is gebaseerd op de specificaties, documentatie en een beschrijving van de software-interface of het systeem. Daarnaast kunt u modellen (formeel of informeel) te gebruiken, die het verwachte gedrag van de software.

Typisch wordt deze werkwijze toegepast voor het debuggen gebruikersinterface en vereist interactie met het verzoek van het inbrengen van een verzameling en resultaatgegevens - het scherm van de rapporten of afdrukken.

De tester dus samenwerkt met de software van het invoeren, door inwerking op de schakelaars, knoppen of andere interfaces. De keuze van de invoergegevens, kan de volgorde van toediening of reeks handelingen leiden tot een groot aantal combinaties, zoals in het volgende voorbeeld.

Hoeveel proeven moeten maken om alle mogelijke waarden voor de 4 ramen vlag en eenmalige veld te controleren, stelt u de tijd in seconden? Op het eerste gezicht berekening is eenvoudig: 4 gebieden met twee mogelijke toestanden - 24 = 16, die moet worden vermenigvuldigd met het aantal mogelijke posities 00-99, d.w.z. 1600 mogelijk testen.

Echter, deze berekening is verkeerd: we kunnen vaststellen dat het veld twee-punts ook een ruimte kan bevatten, dat wil zeggen het bestaat uit twee alfanumerieke posities en kan alfanumerieke tekens, speciale tekens, spaties, etc. Dus omvatten, als .... systeem is een 16-bits computer slaat 216 = 65536 een voor elke positie in de verkregen 4294967296 testcases worden vermenigvuldigd met 16 combinaties van vlaggen die een totaal van 68.719.476 736. Als ze presteren geeft 1 proef per seconde, de totale cont olzhitelnost testen is 2 177,5 jaar. Voor 32 of 64-bits systemen duur zelfs meer.

Daarom is er een behoefte om deze periode tot een aanvaardbaar niveau terug te brengen. Aldus dient de technieken worden toegepast om het aantal testgevallen verlagen zonder het kader van het testen.

Equivalentieklassen

De equivalente partitie is een eenvoudige methode die toepasbaar is voor alle variabelen die in de software, of invoer- of uitvoerwaarden, symbolische, numerieke en anderen. Het is gebaseerd op het principe dat alle gegevens van één equivalent van de scheidingswand op dezelfde wijze worden behandeld en de dezelfde instructies.

Tijdens het testen geselecteerde vertegenwoordiger van elk afzonderlijk equivalentieklasse. Hiermee kunt u systematisch verminderen van het aantal mogelijke testcases zonder verlies van de dekking van de opdrachten en functies.

Een ander gevolg van deze afscherming is het combinatorische explosie tussen de verschillende variabelen en de bijbehorende vermindering testgevallen verminderen.

Bijvoorbeeld (1 / x) 1/2 onder toepassing van drie datareeksen, drie overeenkomstige partitie:

1. Alle positieve getallen zullen op dezelfde manier worden behandeld en moet correct resultaten.

2. Alle negatieve getallen worden behandeld op dezelfde manier met hetzelfde resultaat. Dit is onjuist, omdat de wortel van een negatief getal is denkbeeldig.

3. Zero apart behandeld en geeft de fout "deling door nul". Dit is een met een enkele waarde.

We zien dus drie verschillende delen, waarvan één is gereduceerd tot een enkele waarde. Er is een "juiste" sectie, die betrouwbare resultaten geeft, en twee "verkeerde" met onjuiste resultaten.

grenswaardenanalyse

Verwerking op de grens van de equivalente partitionering kan anders worden gedaan dan verwacht. Onderzoek van grenswaarden - een algemeen bekende werkwijze voor het analyseren van het gedrag van de software in deze gebieden. Deze techniek maakt het mogelijk om dergelijke fouten te identificeren:

  • misbruik van relationele operatoren (<,>, =, ≠, ≥, ≤);
  • enkele fout;
  • problemen in cycli en iteraties,
  • verkeerd typen of grootte variabelen gebruikt voor het opslaan van informatie;
  • kunstmatige beperkingen geassocieerd met gegevenstypen en variabelen.

doorschijnend testen

grijze vak methode verhoogt de test dekking, kunt u zich richten op alle moeilijke niveaus van het systeem door middel van een combinatie van zwart en wit technieken.

Met behulp van deze techniek, moet de tester voor de ontwikkeling van de test waarden kennis van de interne datastructuren en algoritmen. Voorbeelden van grijze-box testmethoden zijn:

  • architectuurmodel;
  • Unified Modeling Language (UML);
  • toestandsmodel (Finite State Machine).

Bij de werkwijze van het grijze vak om testcases te ontwikkelen studeerde modules in het wit technische codes, en de werkelijke test wordt uitgevoerd op de grensvlakken van de zwarte technologieprogramma's.

Deze testmethoden hebben de volgende voordelen:

  • combinatie van voordelen technicus witte en zwarte dozen;
  • Tester is gebaseerd op de interface en functionele specificatie en niet de broncode;
  • debugger kan grote test cases te maken;
  • wordt gecontroleerd vanuit het oogpunt van de gebruiker, niet de ontwerper van het programma;
  • aangepaste testontwikkeling;
  • objectiviteit.

nadelen:

  • test dekking is beperkt omdat er geen toegang tot de broncode;
  • de complexiteit van de defecten in gedistribueerde applicaties;
  • vele manieren blijven onontgonnen;
  • als de software-ontwikkelaar van de test is gestart, dan kan verder onderzoek worden overdreven.

Een andere naam voor het grijze vak technieken - doorschijnend debugging.

Deze categorie omvat dergelijke testmethoden:

1) orthogonale matrix - de toepassing van een deelverzameling van alle mogelijke combinaties;

2) zuiveren matrix met de stand van de programmagegevens;

3) regressieve inspectie uitgevoerd op de nieuwe wijzigingen aan de software;

4) templaat test die het ontwerp en de architectuur van een goede applicatie analyseert.

Vergelijking van het testen van software-technieken

Het gebruik van dynamische werkwijzen leidt tot een combinatorische explosie van het aantal tests die moeten worden ontwikkeld, toegepast en uitgevoerd. Elke techniek moet pragmatisch worden gebruikt, waarbij de beperkingen rekening houden.

Het enige ware methode niet bestaat, is er alleen die beter aan de specifieke context. Bouwtechnische ons toelaten om een nutteloze of kwaadaardige code te vinden, maar ze zijn complex en zijn niet van toepassing op grote programma's. Methoden op basis van de specificaties - de enigen die in staat zijn om de ontbrekende code te identificeren zijn, maar ze kunnen een buitenstaander niet identificeren. Sommige technieken zijn geschikt om bepaalde testsoort, fouttype of context dan anderen.

Hieronder zijn de belangrijkste verschillen tussen de drie dynamische testtechnieken - krijgt een vergelijkingstabel tussen de drie vormen van het debuggen van software.

aspect

De zwarte doos werkwijze

Grey box werkwijze

White-box methode

Beschikbaarheid van informatie over de samenstelling van het programma

Onderzoekt alleen de basisaspecten van

Gedeeltelijke kennis over de interne structuur van het programma

Volledige toegang tot de broncode

Mate van versnippering van het programma

laag

centraal

hoog

Wie produceert debugging?

Eindgebruikers, testers en ontwikkelaars

Eindgebruikers, ontwikkelaars en debuggers

Ontwikkelaars en testers

base

Testen is gebaseerd op de externe noodsituaties.

Diagrams database, data flow diagrammen, stand van de interne kennis van het algoritme en architectuur

De interne apparaat is volledig op de hoogte

De mate van dekking

Minder uitgebreid en vereist een minimum aan tijd

centraal

Potentieel de meest uitgebreide. Tijdrovend

Gegevens en binnengrenzen

Debug alleen met vallen en opstaan

Gegevens domeinen en interne grenzen kunnen worden gecontroleerd als ze bekend zijn

Beter testen van data domeinen en interne grenzen

Geschiktheid om het algoritme te testen

geen

geen

ja

automatisering

Automatische methoden voor het testen van softwareproducten vergemakkelijken het verificatieproces aanzienlijk, ongeacht de technische omgeving of software context. Ze worden in twee gevallen gebruikt:

1) automatisering van de uitvoering van vervelende, herhalende of zorgvuldige taken, zoals het vergelijken van bestanden in meerdere duizend lijnen om de tijd van de tester te concentreren om te concentreren op meer belangrijke punten;

2) taken uitvoeren of traceren die niet gemakkelijk door mensen kunnen worden uitgevoerd, zoals prestatiecontroles of reactietijdanalyses, die in honderdsten van een seconde kunnen worden gemeten.

Testinstrumenten kunnen op verschillende manieren worden ingedeeld. De volgende divisie is gebaseerd op de taken die zij ondersteunen:

  • Testmanagement, inclusief ondersteuning voor projectmanagement, versies, configuraties, risicoanalyse, tracking tests, fouten, defecten en rapportage tools;
  • Vereistenbeheer, inclusief de opslag van eisen en specificaties, hun verificatie voor volledigheid en dubbelzinnigheid, hun prioriteit en traceerbaarheid van elke test;
  • Critical review en statische analyse, inclusief controle van de stroming en taken, opnemen en opslaan van opmerkingen, detectie van gebreken en geplande correcties, verwijzing van referenties aan checklists en regels, het bijhouden van de koppeling van brondocumenten en code, statische analyse met detectie van gebreken, Analyse van structuren en hun afhankelijkheden, berekening van metrische parameters van code en architectuur. Daarnaast worden compilators, linkanalysatoren en cross-reference generators gebruikt;
  • Modellering, die gereedschap bevat voor het modelleren van bedrijfsgedrag en het testen van de gemaakte modellen;
  • Testontwikkeling biedt de generatie van verwachte data op basis van gebruikersomstandigheden en interface, modellen en code, die hen beheren om bestanden en databases, berichten, data validatie op basis van beheersregels, analyse van voorwaarden en risico statistieken te maken of te wijzigen.
  • Kritisch bekijken door gegevens in te voeren via de grafische gebruikersinterface, API, commando lijnen die vergelijkers gebruiken om succesvolle en mislukte tests te bepalen;
  • Ondersteuning voor debugging-omgevingen die u toelaten om ontbrekende hardware of software te vervangen, inclusief hardware-simulators op basis van een subset van deterministische uitvoer, terminal emulatoren, mobiele telefoons of netwerkapparatuur, taal-, OS- en hardwareomgevingen door ontbrekende componenten te vervangen door drivers Modules, enz., Alsmede hulpmiddelen voor het onderscheppen en wijzigen van OS-verzoeken, simuleren van CPU-beperkingen, RAM, ROM of netwerk;
  • Vergelijking van gegevensbestanden, databases, het controleren van de verwachte resultaten tijdens en na het testen, inclusief dynamische en batchvergelijking, automatische "orakels";
  • Het meten van de dekking voor de lokalisatie van geheugenlekken en onjuist beheer ervan, het beoordelen van het gedrag van het systeem onder gesimuleerde belastingomstandigheden, het genereren van applicatie-, database-, netwerk- of serverbelasting onder realistische groeisscenario's, voor het meten, analyseren, verifiëren en rapporteren van systeembronnen;
  • Veiligheidsvoorziening;
  • Prestatie testen, laden en dynamische analyse;
  • Andere tools, waaronder het controleren van spelling en syntaxis, netwerkbeveiliging, de aanwezigheid van alle pagina's van de website, enz.

perspectief

Met de veranderingen in trends in de softwareindustrie is het debuggenproces ook onderhevig aan veranderingen. Bestaande nieuwe methoden voor het testen van softwareproducten, zoals service-oriented architecture (SOA), draadloze technologieën, mobiele diensten, enz. Hebben nieuwe manieren geopend om software te testen. Enkele van de veranderingen die in de komende jaren in deze sector worden verwacht, zijn hieronder vermeld:

  • Testers zullen lichtgewicht modellen leveren die ontwikkelaars kunnen gebruiken om hun code te testen;
  • De ontwikkeling van testmethoden, inclusief het bekijken en modelleren van programma's in een vroeg stadium, elimineert veel tegenstrijdigheden;
  • De aanwezigheid van meerdere testonderbrekingen zal de tijd van foutdetectie verkorten;
  • De statische analyser en detectie gereedschappen zullen meer toegepast worden;
  • Het gebruik van nuttige matrices, zoals specificatie dekking, model dekking en code dekking, zal de ontwikkeling van projecten bepalen;
  • Combinatorische tools zullen testers de prioriteitsrichtlijnen van debugging kunnen bepalen;
  • Testers zorgen voor meer zichtbare en waardevolle diensten tijdens het softwareontwikkelingsproces;
  • Debuggers kunnen tools en methodes maken voor het testen van software die is geschreven in en interactie met verschillende programmeertalen;
  • Debugging-specialisten worden professioneler getraind.

Nieuwe bedrijfsgerichte methoden voor het testen van programma's zullen ze vervangen, de manier van interactie met systemen en informatie die door hen wordt geleverd, zal veranderen, terwijl risico's worden verminderd en de voordelen van bedrijfsveranderingen worden vergroot.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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