Elk van ons heeft de kans om onszelf te bewijzen als testers, en onze tests omvatten het gebruik van bijvoorbeeld utility-producten. Nadat we ze hebben ingeschakeld en vervolgens hebben gecontroleerd of ze hun functies uitvoeren en in lijn zijn met onze verwachtingen, kunnen we concluderen dat de apparaten goed functioneren. Als we defecten waarnemen die verband houden met hun gebruik, retourneren we ze voor klacht. Softwaretesting is gebaseerd op een vergelijkbaar principe.
Wat is softwaretesting? – inhoudsopgave:
- Wat is softwaretesting?
- Doelstellingen van softwaretesting
- Hoe ziet het werk van een softwaretester eruit?
- Hoe word je een tester?
Wat is softwaretesting?
Software ontwikkeld door programmeurs wordt onderworpen aan tests die bestaan uit het controleren van de correcte werking en naleving van de specificatie. Dit wordt softwareverificatie genoemd.
Specificatie is een document dat alle noodzakelijke informatie over de software bevat, bijvoorbeeld een applicatie, en het bevat eerst een beschrijving van de functies die het zou moeten uitvoeren. Controleren of de software werkt volgens de verwachtingen van de gebruikers wordt validatie genoemd.
Testing verbetert de kwaliteit van de software, beperkt de kans op storingen als gevolg van fouten, vermindert financiële verliezen, verkort de tijd van softwareontwikkeling en versterkt het imago van het bedrijf. Testactiviteiten worden het beste uitgevoerd in de vroegste stadia van software-implementatie. Hoe eerder een bug wordt ontdekt, hoe lager de kosten voor het oplossen ervan. Als tests niet worden uitgevoerd in de vroegste stadia van softwareontwikkeling, kunnen er complicaties ontstaan door bijvoorbeeld geavanceerd werk aan het project, wat het moeilijk kan maken om de bron van de fout te lokaliseren en deze op te lossen.
Doelstellingen van softwaretesting
Volgens ISTQB (International Software Testing Qualifications Board) kunnen testdoelstellingen worden bereikt door:
- Defecten te voorkomen die voortkomen uit fouten door werkproducten zoals code te evalueren,
- Het risico van kwaliteitsdeterioratie van de software te verminderen door storingen veroorzaakt door defecten te detecteren,
- Verificatie dat de software voldoet aan alle vereisten die in de documentatie zijn opgenomen, validatie, dat wil zeggen, verifiëren dat de software in lijn is met de verwachtingen van de gebruiker,
- Vertrouwen opbouwen in testen op elk niveau,
- Informatie te verstrekken die belanghebbenden beïnvloedt om weloverwogen beslissingen te nemen,
- Naleving van wetten, normen, normen en contractuele vereisten.
Hoe ziet het werk van een softwaretester eruit?
Het werk van een tester is om bugs te rapporteren die zijn gevonden als gevolg van software-exploitatie. In geval van het vinden ervan, rapporteert hij deze aan een programmeur die verantwoordelijk is voor een bepaald gebied of de hele software. Voor dit soort rapportage zijn speciale programma’s ontworpen. De tester beschrijft het pad waarin hij stap voor stap de wijze waarop de fout werd gedetecteerd presenteert. Dit stelt de programmeur in staat om de bug snel te vinden en op te lossen, en vervolgens de voltooide taak aan de tester te rapporteren voor retesten. De tester volgt op zijn beurt het pad opnieuw door dezelfde reeks stappen te herhalen. Als de bug is opgelost, accepteert hij de taak, en als deze zich herhaalt, rapporteert hij deze opnieuw aan de programmeur.
Testers worden verdeeld in handmatige en geautomatiseerde testers. Aangezien het werk van een handmatige tester is om zelfstandig de software te testen door elk testschema te beoordelen dat alle gevallen bevat, is dit tijdrovend. Een geautomatiseerde tester daarentegen gebruikt tools om scripts en programma’s te schrijven die het proces versnellen en bovendien fouten detecteren die mogelijk onopgemerkt blijven door een handmatige tester. Automatische testing is dus nauwkeuriger, maar het creëren van tools vereist kennis van programmeertalen, bijvoorbeeld Java, SQL of Python.
Hoe word je een tester?
Iemand die van plan is om softwaretester te worden, moet de theorie van testen leren. De verworven kennis kan vervolgens worden geverifieerd door het afleggen van het ISTQB-examen. Dit is een non-profitorganisatie die sinds 2002 actief is. Het examen heeft de vorm van een test, en na het behalen van een positief resultaat ontvangt de examinee een certificaat dat zijn of haar competentie en kennis als tester bevestigt. Het voordeel van het examen is dat er geen vervaldatum voor de certificering is en dat het wereldwijd wordt erkend.
Het ISTQB-examen kan op drie niveaus worden afgelegd: Core, Agile en Specialized. Core behandelt het veelzijdige onderwerp van softwaretesting. Agile verwijst naar agile softwaretestingpraktijken, en de specialistische module biedt bijvoorbeeld informatie met betrekking tot specifieke testactiviteiten zoals testautomatisering. Er zijn ook drie niveaus van examendifficulty: basis, gevorderd en expert. Hieronder staat een diagram van de genoemde modules en hun niveaus.
Een tester speelt een vitale rol in de goede werking van de software, dus hij of zij moet over kwaliteiten beschikken die het werk vergemakkelijken. Nauwkeurige, geduldige, consistente en communicatieve individuen zullen het beste presteren in softwaretesting. Een tester moet ook analytische denkvaardigheden vertonen vanwege de implementatie van testschema’s.
Samenvatting
Softwaretesting is een manier om onregelmatigheden in software te detecteren en de kwaliteit ervan te verbeteren door het voldoen aan testdoelstellingen. Het hele proces wordt afgehandeld door softwaretesters die de specifieke kennis hebben om hun werk te vergemakkelijken en ze kunnen dit bevestigen door bijvoorbeeld het behalen van het ISTQB-certificaat.
Wat is softwaretesting? Nu weet je het antwoord! Bekijk onze andere series over Python en Javascript!
Als je onze inhoud leuk vindt, sluit je dan aan bij onze drukke bijengemeenschap op Facebook, Twitter, LinkedIn, Instagram, YouTube.
Robert Whitney
JavaScript-expert en instructeur die IT-afdelingen coacht. Zijn belangrijkste doel is om de productiviteit van het team te verhogen door anderen te leren hoe ze effectief kunnen samenwerken tijdens het coderen.