Softwaretesten, of softwaretesten, wordt ook wel applicatietesten genoemd.
Het testen van software is in de eerste plaats een groot proces dat bestaat uit verschillende onderling verbonden processen. Het belangrijkste doel van het testen van software is het meten van de integriteit van de software en de volledigheid ervan in termen van de fundamentele vereisten. Softwaretesten omvat het onderzoeken en testen van software via verschillende testprocessen. De doelstellingen van deze processen kunnen zijn:
Verificatie van de volledigheid van de software tegen functionele/zakelijke vereisten
Het identificeren van bugs/technische fouten en ervoor zorgen dat de software foutloos is
Evaluatie van bruikbaarheid, prestaties, beveiliging, lokalisatie, compatibiliteit en installatie
Geteste software moet alle tests doorstaan om volledig of geschikt voor gebruik te zijn. Enkele van de verschillende soorten softwaretestmethoden zijn white box-testen, black box-testen en grey box-testen. Bovendien kan de software als geheel worden getest, in componenten/units of binnen een live systeem.
Black Box Testing is een softwaretesttechniek die zich richt op het analyseren van de functionaliteit van de software, met betrekking tot de interne werking van het systeem. Black Box Testing is ontwikkeld als een methode voor het analyseren van klanteisen, specificaties en ontwerpstrategieën op hoog niveau.
Een Black Box Testing-tester selecteert een set geldige en ongeldige code-uitvoering en invoervoorwaarden en controleert op geldige uitvoerantwoorden.
Black Box Testen wordt ook wel functioneel testen of closed box testen genoemd.
Een zoekmachine is een eenvoudig voorbeeld van een toepassing die wordt onderworpen aan black box-tests. Een gebruiker van een zoekmachine voert tekst in de zoekbalk van een webbrowser in. De zoekmachine lokaliseert vervolgens de resultaten van gebruikersgegevens (output) en haalt deze op.
De voordelen van Black Box-testen zijn:
Black Box Testing heeft ook enkele nadelen, namelijk:
Tijdens white-box-testen wordt code uitgevoerd met vooraf geselecteerde invoerwaarden om de vooraf geselecteerde uitvoerwaarden te valideren. White-box-testen omvat vaak het schrijven van stub-code (stuk code dat wordt gebruikt om een specifieke functie te vervangen. Een stub kan het gedrag van bestaande code simuleren, zoals een procedure op een externe machine.) en ook stuurprogramma's.
De voordelen van white-box testen zijn:
De nadelen zijn onder meer:
Een Unit Test is een onderdeel van de Software Development Life Cycle (SDLC) waarin een uitgebreide testprocedure afzonderlijk wordt toegepast op de kleinste onderdelen van een softwareprogramma voor de gewenste geschiktheid of gedrag.
Een unit-test is een kwaliteitsmeting en -evaluatieprocedure die wordt toegepast bij de meeste activiteiten voor de ontwikkeling van bedrijfssoftware. Over het algemeen evalueert een unit-test hoe goed de softwarecode overeenkomt met het algemene doel van de software/applicatie/het programma en hoe de geschiktheid ervan van invloed is op andere kleinere units. Unit-tests kunnen handmatig worden uitgevoerd – door een of meer ontwikkelaars – of via een geautomatiseerde softwareoplossing.
Tijdens het testen wordt elke unit geïsoleerd van het hoofdprogramma of de interface. Unit-tests worden doorgaans uitgevoerd na de ontwikkeling en vóór de implementatie, waardoor integratie en vroege probleemdetectie worden vergemakkelijkt. De grootte of reikwijdte van een eenheid varieert afhankelijk van de programmeertaal, softwaretoepassing en testdoelen.
Functioneel testen is een testproces dat wordt gebruikt binnen softwareontwikkeling waarbij software wordt getest om ervoor te zorgen dat deze aan alle vereisten voldoet. Het is een manier om software te controleren om ervoor te zorgen dat deze alle vereiste functionaliteit heeft die is gespecificeerd in de functionele vereisten.
Functioneel testen wordt voornamelijk gebruikt om te verifiëren dat een stuk software dezelfde uitvoer levert als vereist door de eindgebruiker of het bedrijf. Doorgaans omvat functioneel testen het evalueren en vergelijken van elke softwarefunctie met de zakelijke vereisten. De software wordt getest door het wat gerelateerde invoer te geven, zodat de uitvoer kan worden geëvalueerd om te zien hoe deze overeenkomt met, gerelateerd is aan of afwijkt van de basisvereisten. Verder controleren functionele tests ook de bruikbaarheid van de software, bijvoorbeeld om ervoor te zorgen dat de navigatiefuncties werken zoals vereist.
Regressietesten is een soort softwaretest die wordt gebruikt om te bepalen of nieuwe problemen het gevolg zijn van softwarewijzigingen.
Voordat een wijziging wordt aangebracht, wordt een programma getest. Nadat een wijziging is aangebracht, wordt het programma opnieuw getest in geselecteerde gebieden om te detecteren of de wijziging nieuwe bugs of problemen heeft veroorzaakt, of dat de daadwerkelijke wijziging het beoogde doel heeft gediend.
Regressietesten zijn essentieel voor grote softwareapplicaties, omdat het vaak moeilijk is om te weten of het veranderen van een deel van een probleem een nieuw probleem heeft gecreëerd voor een ander deel van de applicatie. Een wijziging in een leningsformulier voor een bankaanvraag kan bijvoorbeeld resulteren in het mislukken van een maandelijks transactierapport. In de meeste gevallen lijken de problemen niets met elkaar te maken te hebben, maar ze kunnen juist de oorzaak zijn van frustratie bij applicatieontwikkelaars.
Andere situaties die regressietesten vereisen, zijn onder meer het detecteren of bepaalde wijzigingen een bepaald doel bereiken of het testen op nieuwe gevaren die verband houden met problemen die na een periode zonder problemen weer de kop opsteken.
Moderne regressietesten worden voornamelijk uitgevoerd door middel van gespecialiseerde commerciële testtools die momentopnamen maken van bestaande software die vervolgens worden vergeleken na het aanbrengen van een specifieke wijziging. Het is bijna onmogelijk voor menselijke testers om dezelfde taken zo efficiënt uit te voeren als geautomatiseerde softwaretesters. Dit geldt met name voor grote en complexe softwaretoepassingen binnen grote IT-omgevingen zoals banken, ziekenhuizen, productiebedrijven en grote retailers.
Stresstesten verwijst naar het testen van software of hardware om te bepalen of de prestaties bevredigend zijn onder extreme en ongunstige omstandigheden, die kunnen optreden als gevolg van zwaar netwerkverkeer, procesbelasting, onderklokken, overklokken en piekgebruik van bronnen.
De meeste systemen zijn ontwikkeld uitgaande van normale bedrijfsomstandigheden. Daarom zijn fouten, zelfs als een limiet wordt overschreden, te verwaarlozen als het systeem tijdens de ontwikkeling aan een stresstest wordt onderworpen.
Stresstesten worden gebruikt in de volgende contexten:
Geautomatiseerd testen (automatisering van softwaretests) is een benadering van codetesten waarbij gebruik wordt gemaakt van speciale softwaretools die tests automatisch uitvoeren en vervolgens de werkelijke testresultaten vergelijken met de verwachte resultaten.
Geautomatiseerd testen speelt een belangrijke rol bij Continuous Delivery (CD), Continuous Integration (CI), DevOps en DevSecOps. De belangrijkste voordelen van geautomatiseerd testen zijn:
Bij softwareontwikkeling is het vooral handig om tijdens het bouwproces geautomatiseerde tests uit te voeren om ervoor te zorgen dat een applicatie vrij is van bouwfouten en de beoogde functie vervult.
Door de tijd te nemen om het testen van software te automatiseren, besparen ontwikkelaars uiteindelijk tijd door het risico te verkleinen dat een codewijziging bestaande functionaliteit kapot maakt.
Testen is een zeer belangrijke fase in het ontwikkelingsproces. Zorgt ervoor dat alle bugs worden verholpen en dat het product, software of hardware presteert zoals bedoeld of zo dicht mogelijk bij de beoogde prestaties. Geautomatiseerd testen, in plaats van handmatig testen, is essentieel om consequent kosteneffectieve software te leveren die tijdig voldoet aan de behoeften van gebruikers met minimale defecten.
Handmatig testen wordt nog steeds op verschillende momenten tijdens de ontwikkeling gedaan, maar dit wordt meestal gedaan door de ontwikkelaars of de hardware-engineers zelf om snel te zien of de wijzigingen die ze hebben aangebracht het gewenste effect hebben gehad.
Ercole Palmeri
Afgelopen maandag maakte de Financial Times een deal met OpenAI bekend. FT geeft licenties voor haar journalistiek van wereldklasse...
Miljoenen mensen betalen voor streamingdiensten en betalen maandelijkse abonnementskosten. De algemene mening is dat je…
Coveware by Veeam zal responsdiensten op het gebied van cyberafpersingsincidenten blijven leveren. Coveware zal forensische en herstelmogelijkheden bieden...
Voorspellend onderhoud zorgt voor een revolutie in de olie- en gassector, met een innovatieve en proactieve benadering van fabrieksbeheer.…