Debuggen en foutopsporing van software


testing debuggen

Debuggen

Debuggen is het vinden en verwijderen van fouten ( bugs ) uit een software programma. Bugs komen voor in programma’s wanneer een regel code of een instructie conflicteert met andere elementen van de code. Ook fouten of defecten in hardware noemen we bugs. Essentie is dat een programma niet goed functioneert als gevolg van een bug.

Programmeren is een complex proces. Omdat het mensenwerk is, kunnen er vaak fouten optreden. De oorzaak van een bug is vaak een conflict in de software wanneer we verschillende applicaties met elkaar proberen samen te laten werken.

Programmeerfouten

Programmeerfouten zijn de meest voorkomende bugs en het proces van het vinden en corrigeren noemen we debuggenEr kunnen drie soorten fouten in een programma voorkomen: syntaxisfouten, runtime-fouten en semantische fouten. Het is handig om dit onderscheid te maken zodat we de bugs sneller kunnen op te sporen.

Geschiedenis van debuggen

Volgens de overlevering was de eerste computerbug een echte bug. In 1945 op Harvard, zorgde een mot tussen twee elektrische relais van de Mark II Aiken Relay Calculator ervoor dat de hele machine werd uitgeschakeld.

Debuggen is werk van de programmeur

Debuggen is een ontwikkelaarsactiviteit en effectief debuggen is erg belangrijk om de kwaliteit van het systeem te verhogen. Debugging geeft niet de zekerheid dat de applicatie volledig aan zijn eisen voldoet. Daarom moeten we de software altijd testen nadat een bug is hersteld.

Voor de programmeur is debuggen moeilijker voor complexe systemen, met name als verschillende subsystemen nauw zijn gekoppeld, omdat veranderingen in een applicatie of interface in een andere systeem moeilijk ter herleiden bugs kunnen veroorzaken. Soms kost het meer tijd om een ​​programma te debuggen dan te coderen.

Tijdens het ontwikkelen van software ondergaan de programmamodules vele zware tests. Verschillende testtypes moeten problemen en fouten aan het licht brengen voor dat de software naar productie gaat. Zo zijn er unittesten, systeemtesten, integratietesten, performancetesten, acceptatietesten enzovoort. Tijdens deze testen vinden we altijd fouten en bugs. De softwarecode bevat potentiële fouten die ervoor kan zorgen dat de applicatie zich onverwacht gedraagt ​​of zelfs crasht. Deze fouten worden teruggekoppeld naar de programmeur die ze dan routinematig door middel van debuggen verwijderd.

Tijdens het foutopsporingsproces (het testen dus) worden regelmatig complete programma’s gecodeerd en uitgevoerd speciaal om problemen op te sporen. Grote applicaties, die miljoenen programmacoderegels bevatten, zijn onderverdeeld in kleine onderdelen. Het is efficiënt om ieder onderdeel eerst afzonderlijk te testen en te debuggen, gevolgd door de applicatie als geheel.

Het debug proces

Om een ​​programma te kunnen debuggen, moet de programmeur beginnen met een geconstateerde fout. Daarna moet hij de broncode met de bug isoleren en de bug verhelpen. De programmeur moet weten hoe hij de bug moet op lossen. Daarvoor is kennis over probleemanalyse en foutopsporing nodig. Als de bug is opgelost, is de software klaar voor gebruik.

Dit is het foutopsporingsproces:

  1. Reproduceer de foutsituatie.
  2. Beschrijf de bug. Probeer zo veel mogelijk invoer van de gebruiker te krijgen om de exacte oorzaak te achterhalen.
  3. Leg de status van het programma vast als de bug verschijnt. Probeer alle variabelewaarden en toestanden van het programma op dat moment te krijgen.
  4. Analyseer de status op basis van de variabelen en de actie op dat moment. Zoek op basis daarvan naar de oorzaak van de bug.
  5. Verhelp de aangemelde bug, maar controleer ook of er niet een nieuwe bug is geïntroduceerd.

Debugger

Als hij met de hand zou moeten debuggen moet de programmeur het programma aanpassen. Zodoende kan hij programma op bepaalde punten laten stoppen en variabelen uit te lezen. Bij een grote applicatie is dit onbegonnen werk, gelukkig krijgt hij hulp van de debugger.

Een debugger is een softwaretool voor programmeurs dat gebruiken om fouten (bugs) in andere programma’s te testen en op te sporen.

Debuggers staan ook bekend als foutopsporingsprogramma’s.

Simulatie

De meeste debuggers gebruiken instructieset-simulatoren. In tegenstelling tot het rechtstreeks op de processor voeren van een programma, bereikt men in met simulator een ​​hoger niveau van controle over de uitvoering. De programmeur kan met behulp van de simulator het te debuggen programma stoppen of door laten lopen volgens specifieke omstandigheden. Deze omstandigheden kan de programmeur zelf vooraf bepalen en instellen.

De programmeur kan de programma-uitvoering stap voor stap traceren door de waarde van variabelen te evalueren. De uitvoering kan waar dan ook gestopt worden om de waarde van variabelen te verkrijgen.

Als een programma crasht, wijst de debugger de plek van de fout in het programma aan. Naast het stoppen op specifieke punten zijn de meeste debuggers zijn ook in staat om programma’s stapsgewijs uit te voeren. Vaak kan de programmeur ook tussentijds variabelen en statussen van programma’s wijzigen zodat het programma een andere afslag neemt. Zo kunnen zij testen wat er precies gebeurd.

Omdat het gaat om een tussenlaag vertraagt het gebruik van simulators de snelheid van het programma.

Programmeertalen en debuggers

De kracht van een debugger kan sterk van taal tot taal verschillen. Meestal hebben programmeertalen die gebaseerd zijn op een compiler een betere debugger dan talen die gebaseerd zijn op interpreters. Bekende talen met een compiler zijn: C, Java en Cobol. Talen met een interpreter als basis zijn: HTML, PHP en Javascript.

Sommige programmeertalen bieden een debugger voor het controleren van de code op bugs die zich tijdens runtime voordoen.

Debug mode

Ontwikkelaar bouwen vaak extra debug mogelijkheden in hun applicaties. Dit gebeurt vaak met SaaS en webtoepassingen. De applicatie wordt dan voorzien van een extra instelling, de zogenaamde “debug mode”. Deze kan aan en uit worden gezet als daar behoefte aan is. Als de debug mode “aan” staat toont het programma:

  • De variabelen en hun inhoud.
  • Statussen die op dat moment gelden.
  • Uitgebreide foutmeldingen.
  • Soms heeft de gebruiker meer rechten om data op te vragen of aan te passen.
  • Wat de programmeur verder van belang vindt om te tonen.

Debuggen en security

Het grote voordeel van de debug mode is dat je de debugger niet nodig hebt, het is een kwestie van een instelling omzetten. Maar in de debug mode schuilt ook een groot gevaar. De inhoud van de debug informatie is namelijk zeer interessant voor hackers. De getoonde gegevens, zoals variabelenamen en hun waarden, zeggen veel over de werking van de applicatie. Het vergemakkelijkt het opsporen van de zwakheden en soms is het voldoende om ongemerkt een systeem binnen te komen.

Programmeurs moeten dus vooral niet vergeten om de debug mode na hun werk weer “uit” te zetten. Dat kan veel problemen voorkomen.

LinkedIn Group

Discussieer mee op LinkedIn.

Samenvatting
Debuggen en foutopsporing van software
Artikel
Debuggen en foutopsporing van software
Beschrijving
Debuggen is het vinden en verwijderen van fouten ( bugs ) uit een software programma. Bugs komen voor in programma's wanneer een regel code of een instructie conflicteert met andere elementen van de code. Ook fouten of defecten in hardware noemen we bugs.
Auteur
Publisher Naam
ITpedia
Publisher Logo
Sidebar