Aan de slag met software testen – Samenvatting
Hoofdstuk 1: Het waarom, wat en hoe van kwaliteit
-Je kunt de kwaliteit van een software product testen, mits:
je weet welke behoeften het product moet vervullen
je weet aan welke eisen het product moet voldoen
-Behoeften en eisen worden in de ICT requirements genoemd
-ISO definieert kwaliteit als volgt: kwaliteit is het geheel van eigenschappen en kenmerken van een
product of dienst dat van belang is voor het voldoen aan vastgestelde of vanzelfsprekende behoeften
-Proceskwaliteit heeft betrekking op de kwaliteit van het productieproces
-Productkwaliteit heeft betrekking op de kwaliteit van het eindproduct en wordt beïnvloed door het
beschikbare budget en tijd
-Validatie = bevestiging door onderzoek en door aanleveren van objectief bewijsmateriaal dat aan de
eisen ten aanzien van een specifieke wijze van gebruik of toepassing is voldaan; geeft antwoord op
de vraag: bouwt de leverancier het goede systeem?
-SRS: Software Requirements Specification, een document waarin alle requirements opgesteld staan
-Verificatie = bevestiging van onderzoek en door aanleveren van objectief bewijsmateriaal dat aan de
gespecificeerde eisen is voldaan; geeft antwoord op de vraag: bouwt de leverancier het systeem op
de juiste manier (doeltreffendheid van ontwerp, logische code, etc)?
-Kwalificatie = het vergelijken van een te testen object met algemeen geldende normen, standaarden
en interne afspraken voor dergelijke producten. Dit kunnen technische normen zijn, maar ook wet-
en regelgeving of interne huisregels die een organisatie hanteert voor bijvoorbeeld opmaak of
indeling van applicaties
-Integriteit = de mate waarin een systeem, product of component ongeautoriseerde toegang tot of
aanpassing van computerprogramma’s of gegevens verhindert
-Onweerlegbaarheid = de mate waarin kan worden bewezen dat acties of gebeurtenissen hebben
plaatsgevonden, zodat later deze acties of gebeurtenissen niet ontkend kunnen worden
-De standaard ISO 25010 beschrijft kwaliteitseigenschappen waaraan een informatiesysteem moet
voldoen. Het doel van dit soort standaarden is onder meer een objectief toetsingskader te creëren
aan de hand waarvan de kwaliteit van een informatiesysteem kan worden vastgesteld. Het
toetsingsader kan ook bestaan uit een lijst van requirements, entry criteria, exit criteria en
productrisico’s
-Dynamisch testen = code uitvoeren om fouten op te sporen
-Statisch testen = code reviewen om fouten op te sporen
-Kwaliteit kun je bepalen door te toetsen, testen of meten
-Testen = activiteiten zoals meten, onderzoeken, beproeven, keuren van een of meer kenmerken van
een product of dienst en het vergelijken van de uitkomsten met de gestelde eisen, om te kunnen
bepalen of aan deze eisen is voldaan. Het proces bestaat uit levenscyclusactiviteiten, zowel statisch
als dynamisch, die te maken hebben met planning, voorbereiding en evaluatie van
,softwareproducten en aanverwante zaken om aan te tonen dat ze aan de gespecificeerde eisen
voldoen, om aan te tonen dat wordt voldaan aan de doelstelling en om fouten op te sporen.
-Toetsen = het proces van het testen van een componenten of systeem zonder de software uit te
voeren. Het testobject bestaat uit specificaties, systeemeisen of processen die in documenten zijn
vastgelegd
-Vormen van toetsen:
Collegiale review: een informele review uitgevoerd door een of meerdere collega’s
Walkthrough: de auteur van een document of programmacode leidt de groep door het
document of programma heen en licht de keuzes en achterliggende gedachten toe
Inhoudelijke review: een gestructureerde, inhoudelijke beoordeling van een product door
een of meer reviewers met als doel te bepalen of het product bruikbaar is
Inspectie: de meest formele vorm van toetsen; een straks georganiseerde bijeenkomst
waarbij de focus ligt op het detecteren van fouten en daarvan de oorzaak te achterhalen. Het
aantal fouten wordt gebruikt om de kwaliteit van het product te beoordelen
-Kwantitatieve voordelen van toetsen:
Afname van de onderhoudskosten met een factor 3
25% reductie op de doorlooptijd van een project
Afname van de testinspanning met 80%
-Kwalitatieve voordelen van toetsen:
Hogere klanttevredenheid
Minder onverwachte doorlooptijd
Minder blokkerende fouten tijdens testuitvoering
-Meten = met metingen de kwaliteit van het systeem aantonen, deze zeggen iets over de
onderhoudbaarheid en geven altijd aan hoe groot iets is (tijd, snelheid, aantal bestanden, etc)
-Voorbeelden van metingen aan het proces:
Het aantal personen dat betrokken is bij een project
Het aantal uren dat aan het product wordt toegewezen versus het aantal uren dat
ondersteunend is
De wachttijd voor een tester op de testomgeving
-Voordelen van metingen aan het product:
Het aantal fouten per component
Het aantal storingen in de eerste negen maanden van de productiefase
Het aantal gewijzigde componenten naar aanleiding van een nieuwe functionaliteit
-Soorten fouten:
Fouten in de code: bug, fault of defect
Operationele fout (falen van software): failure
Menselijke fout: error, mistake
, H.2: Testen tijdens het ontwikkelproces
-Belangrijk onderscheid:
Methode = vaste, weldoordachte manier van handelen om een bepaald doel te bereiken
Methodiek = samenhangende set methoden, of een overkoepelende methode die diverse
submethoden bevat
Methodologie = hulpwetenschap die de manieren bestudeert waarop problemen moeten
worden opgelost; leer van de te volgen methoden; de theorie en principes achter de
methode of methodiek
-Soorten ontwikkelmethoden:
Lineair: statisch karakter, beschouwt het ontwikkelproces als een zuivere opeenvolging van
fasen. Een goed voorbeeld is de watervalmethode. Als een fase afgerond is, is het formeel
niet meer toegestaan om veranderingen aan te brengen aan producten van die fase
Iteratief: houdt meer rekening met de dynamiek binnen ontwikkeltrajecten en is zo ingericht
dat je met veranderen omstandigheden kunt omgaan. Agile is hier bij uitstek op gericht. Door
het kort-cyclische karakter van opleveren van nieuwe software ben je in staat om binnen een
aantal weken te reageren op veranderingen
-Teststrategie = hierin wordt op metaniveau beschreven welke testsoorten worden uitgevoerd,
alsmede welke testtypen binnen de testsoorten worden toegepast en welke testontwerptechnieken
daarbij gehanteerd worden. Oftewel: op basis van de requirements en de onderkende risico’s wordt
gekeken wanneer, wat getest moet worden, waarmee en hoe
-Testsoort = een samenhangende groep testactiviteiten die te maken heeft met de (bijvoorbeeld
functionele) opsplitsing van het totale systeem en de wijze waarop dit wordt ontwikkeld van
losstaande componenten van het volledige systeem.