Wat is softwarekwaliteitsborging?
Softwarekwaliteitsborging omvat het testen van het ontwerp en de implementatie van computersoftware en ervoor zorgen dat deze aan een minimale kwaliteitsnorm voldoet. De kern van het kwaliteitsborgingsproces is testen, wat de methode is waarmee elke stap van de ontwikkelingscyclus wordt geanalyseerd om defecten te vinden, zoals storingen of beveiligingsproblemen. Het meest bekende onderdeel van het kwaliteitsborgingsproces van software is het testen van software en code; het dekt echter ook andere aspecten van de engineeringcyclus. Andere aspecten van software engineering die onderworpen zijn aan kwaliteitsanalyses omvatten de ontwerp- en implementatiefasen.
Het algemene concept van softwarekwaliteitsborging vereist dat het begint bij de software planningsfase. Slecht geplande software kan moeilijk of onmogelijk te schrijven zijn op een manier die voldoet aan de verwachtingen van de organisatie die het voor ogen had. Kwaliteitsmanagement in de ontwerpfase omvat het bestuderen van de gevolgen van de specificaties of doelen van het project, evenals de plannen van de organisatie om hun doelen te bereiken. Het voordeel van kwaliteitsanalyse in de ontwerpfase is dat fouten in het begin worden ontdekt en verwijderd, in plaats van later in de ontwikkelingscyclus wanneer ontwerpproblemen veel duurder zijn om op te lossen.
Een softwaretestingenieur, ook wel een softwarekwaliteitsanalist genoemd, is de primaire persoon die verantwoordelijk is voor het uitvoeren van het testproces. Deze persoon ontwerpt en voert de testplannen uit die een organisatie helpen bij het verbeteren van de kwaliteit van hun software. Idealiter zou een programmeur nooit zijn eigen product moeten testen, wat betekent dat een programmeur en een testingenieur binnen een project twee verschillende mensen zijn.
Testplannen vormen een cruciaal onderdeel van het systeem voor kwaliteitsborging, met name de testfase van de software. Het doel van testplannen is om voorwaarden te bepalen die het succes of falen van software markeren. Een typisch testplan omvat een uitgebreide lijst van programma's en subprogramma's of procedures die moeten worden getest, evenals de technieken die bij het testen zijn betrokken. Een andere kritische functie van een testplan is het bepalen welke defecten onaanvaardbaar zijn. Testplannen worden meestal ontworpen voordat de daadwerkelijke softwarecode van het project wordt ontwikkeld.
Wanneer testingenieurs programma's schrijven om testplannen te implementeren, worden deze testscripts genoemd. Testscripts zijn een essentieel onderdeel van het kwaliteitsborgingsproces van de software. Hun doel is het testen van de bestaande code van een programma te automatiseren om defecten te vinden. Bovendien gebruiken testingenieurs doorgaans commercieel ontworpen testtools om naar potentiële problemen te zoeken. Testplannen worden geïmplementeerd tijdens de coderingsfase van softwareontwikkeling.
Er zijn een aantal belangrijke stappen betrokken bij de eigenlijke testfase van het softwarekwaliteitsborgingsproces. Deze omvatten eenheidstests, die de integriteit van verschillende secties van softwarecode beoordelen, evenals foutinjecties, die zijn ontworpen om te onderzoeken hoe de programma's reageren op onjuiste gegevens. Aanvullende stappen omvatten belastingstesten of stresstesten, die ziet hoe een programma functioneert onder intensief gebruik, en inbraak- of beveiligingstests om de weerstand van een programma tegen ongeautoriseerde toegang te testen. Een softwareproject wordt meestal ook onderworpen aan bruikbaarheidstests, om te controleren of het resulterende programma voor anderen gemakkelijk te gebruiken is.
Specialisten die zich bezighouden met het testen van softwarecodes zijn over het algemeen onderverdeeld in twee groepen, een die black box-testers wordt genoemd en de andere die bekend staat als white box- of glass box-testers. Black box-testen is een oppervlakkiger proces dat begint bij de softwarecodering en onderzoekt geen onderliggende computercode. Het onderzoekt de bruikbaarheid, de cosmetische consistentie van een software en het optreden van fouten en storingen.
White box-testen is een proces dat begint bij het allereerste begin van het softwarekwaliteitsborgingsproces, in de ontwerpfase. Het omvat het voorspellen van mogelijke problemen voordat de code daadwerkelijk wordt geschreven, evenals het schrijven van testplannen en geavanceerde testscripts. In tegenstelling tot black box-testen, omvat white box-testen ook de studie van de onderliggende computercode.
Kwaliteitsborging is ook van toepassing op de software-implementatiefase, wanneer de software bijna gereed is en ter evaluatie op computersystemen wordt geïnstalleerd. Deze fase wordt vaak aangeduid als alfatesten en het treedt op wanneer het bijna voltooide product wordt geïnstalleerd en getest door het ontwikkelaarspersoneel. Wanneer de software wordt gepresenteerd aan potentiële klanten buiten het bedrijf, wordt dit bètatesten genoemd. Als er defecten optreden nadat de software is vrijgegeven en er een patch moet worden ontwikkeld, worden regressietests gebruikt om ervoor te zorgen dat de updates geen nieuwe fouten maken.