De vele soorten softwaretestmethoden

click fraud protection

Voordat software wordt verzonden voor openbaar of commercieel gebruik, besteden programmeurs uren aan het gladstrijken van elke bug, waarbij het product in het ongewisse blijft totdat alle belanghebbenden tevreden zijn.

Softwaregiganten uit Silicon Valley, zoals Google en Facebook, zullen vaak populaire producten op de markt brengen, ondanks de lage prioriteit van hun software. Investeerders en miljoenen trouwe gebruikers tolereren software-updates en tijdelijke knikken in producten die deze bedrijven aanbieden.

De meeste softwarebedrijven hebben deze luxe niet. Klanten willen dat producten presteren zoals geadverteerd en zijn terecht gealarmeerd als er niet-geadresseerde kwetsbaarheden zijn.

Waarom zijn het testen van vaardigheden nodig?

Met zoveel softwareontwikkelingsopties die beschikbaar zijn, denken klanten niet twee keer na over het schip verlaten als het product stinkt naar verspilde tijd en geld. Softwarebedrijven moeten hun producten grondig testen voordat ze aan klanten worden vrijgegeven. Deze testen bieden de volgende inzichten:

  • Ze benadrukken de verschillen tussen het originele concept en de uiteindelijke output.
  • Ze controleren of de software werkt zoals de ontwerpers hadden gepland.
  • Ze beoordelen kenmerken en kwaliteit.
  • Ze valideren dat het eindproduct voldoet aan de eisen van de klant.

Testen volgt een strikte blauwdruk om werklast, tijd en geld te optimaliseren, terwijl belanghebbenden essentiële informatie krijgen om het product vooruit te helpen. Het doel is om een ​​positieve eindgebruikerservaring mogelijk te maken door grondig te blijven kwaliteitsverzekering (QA) programma. Gezien de hoge inzet voor ontwikkelaars, zijn QA-managers enkele van de topverdieners in de technologie-industrie. Testen volgt meestal deze stappen:

  1. Voer een vereistenanalyse uit, waarbij managers een plan schetsen om een ​​geschikte teststrategie op te zetten.
  2. Begin met testen en analyseer de resultaten.
  3. Corrigeer eventuele defecten en onderwerp de software aan regressietesten (een systeem om te controleren of het programma na aanpassingen nog werkt).
  4. Maak een testafsluitingsrapport waarin het proces en de resultaten worden beschreven.

Individuen kunnen gecertificeerde softwaretesters worden via BCS, The Chartered Institute for IT, ISTQB (International Software Testing Qualifications Board), en ASQ (Amerikaanse Maatschappij voor Kwaliteit).

Methoden voor het testen van software

Black en white box-testen zijn twee fundamentele methoden om het gedrag en de prestaties van producten te beoordelen. Black box-testen, ook wel functioneel of specificatie-gebaseerd testen genoemd, richten zich op output. Testers houden zich niet bezig met de interne mechanismen. Ze controleren alleen of de software doet wat het moet doen. Kennis van coderen is niet nodig en testers werken op gebruikersinterfaceniveau.

White box-testen maken gebruik van codeerervaring als onderdeel van de testprocedure. Wanneer een product faalt, gaan testers diep in de code om de oorzaak te vinden. Softwareontwikkelaars zullen dit zelf doen omdat klanten van hen verwachten dat ze een product laten werken. White box-testen worden ook wel "structure-based" of "glass box"-testen genoemd.

Statisch testen onderzoekt de broncode en eventuele bijbehorende documentatie, maar voert het programma niet uit. Statische tests beginnen vroeg in de ontwikkeling van het product tijdens het verificatieproces.

Dynamisch testen gebruikt verschillende inputs wanneer de software draait, en testers vergelijken outputs met verwacht gedrag. Bij het testen van de grafische gebruikersinterface worden tekstopmaak, tekstvakken, knoppen, lijsten, lay-out, kleuren en andere interface-items geëvalueerd. GUI-testen is tijdrovend en externe bedrijven nemen deze taak vaak op zich in plaats van ontwikkelaars.

Niveaus testen

Er worden verschillende testniveaus gebruikt om zwakke punten en overlappingen in elke fase van de test te identificeren levenscyclus van softwareontwikkeling. De testniveaus zijn:

  • Hoofdstuk toets
  • Integratie testen
  • Systeem testen
  • Acceptatie testen

Bij het testen van eenheden testen ontwikkelaars de meest elementaire codeonderdelen, zoals klassen, interfaces en functies/procedures. Ze weten hoe hun code moet reageren en kunnen afhankelijk van de output aanpassingen doen.

Integratietesten wordt ook wel "module"- of "programma"-testen genoemd. Het is vergelijkbaar met het testen van eenheden, maar bevat een hoger niveau van integratie. Modules van de software worden getest op defecten om hun functie te verifiëren. Integratietesten identificeren fouten wanneer de modules integreren. Verschillende methoden voor integratietesten zijn onder meer "bottom-up", "top-down" en "functioneel incrementeel".

Systeemtesten testen componenten van een project als geheel in verschillende omgevingen. Systeemtesten vallen onder de black box-methode en zijn een van de laatste tests in het proces. Het zal bepalen of het systeem is voorbereid om te voldoen aan zakelijke en gebruikersbehoeften.

Er zijn over het algemeen twee soorten acceptatietesten. Bij alfatesten wordt de software intern uitgevoerd op de locatie van de ontwikkelaar in een gesimuleerde of werkelijke omgeving. De software werkt alsof live eindgebruikers het gebruiken. Ontwikkelaars maken aantekeningen van eventuele problemen en beginnen bugs en andere problemen op te lossen.

Ook in het kader van black-box-testen, bij acceptatietesten, testen klanten software om erachter te komen of de ontwikkelaar het programma volledig heeft ontwikkeld om aan hun gewenste specificaties te voldoen.

Met bètatests, of veldtesten, kunnen klanten het product op hun sites in reële omstandigheden testen. Opdrachtgevers kunnen een groep eindgebruikers de mogelijkheid bieden om de software te testen via pre-release of bètaversies. Bètatesten zijn bedoeld om daadwerkelijke gebruikersfeedback te krijgen, die naar de ontwikkelaar wordt gestuurd.

Typen testen

Verschillende soorten softwaretests zijn ontworpen om zich te concentreren op specifieke doelstellingen. De testengineer en de configuratiemanager gebruiken installatietesten om ervoor te zorgen dat de eindgebruiker het programma kan installeren en uitvoeren. Het behandelt gebieden zoals installatiebestanden, installatielocaties en beheerdersrechten.

Ontwikkelingstesten implementeren een reeks gesynchroniseerde strategieën om defecten op te sporen en te voorkomen. Het omvat statische code-analyse, collegiale codebeoordelingen, traceerbaarheid en metrische analyse. Het doel is risico's te verminderen en kosten te besparen.

Met usability testen komt de gebruikerservaring centraal te staan. Het meet hoe gemakkelijk de GUI te gebruiken is. Het controleert de nauwkeurigheid en efficiëntie van functies en de emotionele reacties van de proefpersonen.

Een gezondheidstest geeft aan of de software de tijd en kosten waard is om door te gaan met verdere tests. Als er te veel gebreken zijn, zullen er geen agressievere tests volgen.

Sanity-testen worden uitgevoerd tijdens de releasefase van de software, waarbij rooktesten worden uitgevoerd om te zien of de software voldoende werkt om testbaar te zijn.

Rooktesten onthullen fundamentele fouten die ernstig genoeg zijn om vrijkomen te voorkomen. Wanneer ontwikkelaars een nieuwe build testen, wordt dit een "buildverificatie" -test genoemd. Wanneer het systeem wordt gewijzigd, wordt met regressietesten onverwacht gedrag gecontroleerd. Het wijst op nadelige effecten op modules of componenten.

Testers voeren abnormale invoer in en onderscheiden het vermogen van de software om onverwachte invoer in destructieve tests te beheren. Dit laat ontwikkelaars zien hoe robuust het programma is in foutbeheer.

Wanneer hardware of andere functies uitvallen, laten hersteltests zien hoe goed de software kan herstellen en blijven werken.

Automatisering voert functies uit die moeilijk handmatig te implementeren zijn. Testen omvat het gebruik van specifieke software om tests uit te voeren en gegevens te verstrekken over werkelijke vs. verwachte uitkomsten.

De software moet in verschillende computeromgevingen draaien, dus compatibiliteitstesten controleren hoe de software reageert op verschillende systemen. Programmeurs testen de software bijvoorbeeld met verschillende besturingssystemen en webbrowsers.

Tests moeten uitgebreid zijn en alle zorgen van de klant aanpakken, anders wordt het project al snel een verspilling van middelen.

Prestatietesten onderzoeken softwareprestaties in verschillende scenario's. Er wordt informatie verzameld over reactievermogen, stabiliteit, toewijzing van middelen en snelheid. Deeltesten zoals volume-, capaciteits- en spiketesten spelen hierbij een rol.

Beveiligingstesten meten het vermogen van de software om de veiligheid van gebruikers te beschermen. Autorisatiefuncties, authenticatie, vertrouwelijkheid, integriteit, beschikbaarheid en onweerlegbaarheid zijn voorbeelden van eigenschappen die getest moeten worden.

Toegankelijkheidstesten zijn iets anders dan usabilitytesten. Dit bepaalt de mate waarin gebruikers met verschillende capaciteiten de software kunnen gebruiken.

De resultaten van internalisatie- en lokalisatietests laten zien hoe de software zich kan aanpassen aan verschillende talen en regionale eisen. Dit omvat het toevoegen van componenten voor specifieke locaties en tekstvertaling.

Bronze Star-medaille in het Amerikaanse leger

Beschrijving De Bronze Star-medaille is een ster met een omschrijvende breedte van 1 ½ inch, gemaakt van brons. In het midden van de ster is een bronzen ster van 3/16 inch breed aangebracht. Alle stralen van beide sterren komen samen op hun midd...

Lees verder

Hoe u uw punt op de juiste manier kunt overbrengen

Wanneer we het proberen een punt overbrengen tegen iemand anders denken we vaak lang en diep na over wat we willen zeggen. Dat is de verkeerde manier om dit aan te pakken. In plaats van je te concentreren op wat je wilt inspraak Om je punt duidel...

Lees verder

Financiële voorwaarden die u moet kennen in de detailhandel

Hieronder volgt een lijst met termen die van pas kunnen komen bij de afhandeling van uw financiële verplichtingen als detailhandelaar. Crediteuren Geld verschuldigd aan een crediteur, meestal een open rekening. Meestal uw verkopers of leveranci...

Lees verder