Skip to main content

10 soorten softwarefouten die testers moeten kennen (deel 1 van 2)

juli 25, 2018oktober 14th, 2021

Testen is een risicobeperkende maatregel: door te testen, geef je inzicht in de kwaliteit en biedt je de mogelijkheid om een systeem te verbeteren. Hierdoor verlaag je de risico’s op ernstige fouten of een niet goed functionerend systeem.

Een risicoanalyse vooraf geeft testers een indicatie wat ze specifiek moeten testen: waar foutgevoeligheid zit in een systeem. Een onderdeel van een risicoanalyse is gebruik maken van vorige ervaringen. In deze blog hebben we ervaringen uit de testwereld verzameld met als resultaat een lijst met 10 veelvoorkomende fouten die elke tester zou moeten kennen en herkennen. Per fout beschrijven we ook wat de testmaatregelen moeten zijn.

1. Een technische aanpassing zonder functionele wijziging blokkeert proces.

Soms worden systemen aangepast zonder dat er een functionele noodzaak is, bijvoorbeeld om de performance te verbeteren of de beveiliging te verbeteren. Dit heeft vaak geen functionele impact, maar soms wel. Vooral in ingewikkelde systeemketens kunnen zuiver technische wijzigingen toch een proces negatief beïnvloeden.

Bij twijfel moet je daarom de belangrijkste processen van begin tot eind testen.

2. Een gevonden fout wordt niet opgelost, omdat het ook al in productie zit.

Fouten worden vaak niet opgelost omdat blijkt dat ze al in productie zitten en daar blijkbaar dus geen problemen veroorzaken. Waarom zou je het dan oplossen? Maar niet actieve delen van een systeem kunnen weer actief worden. Als een proces wijzigt bijvoorbeeld. Denk dus altijd goed na wanneer een fout wordt afgeschreven als “dat zit ook al in productie”. Onderzoek en maak duidelijk in welke situatie een fout weer geraakt wordt. Vaak weet je het niet en dan moet je je afvragen of het risico genomen kan worden om het er maar bij te laten zitten.

3. Een aanpassing leidt tot problemen verderop in de systeemketen.

Veel ernstige productieverstoringen worden veroorzaakt doordat men niet genoeg voorziet welke afhankelijkheden er zijn in een ingewikkelde systeemketen. Vaak beseft men niet eens dat men onderdeel is van een ingewikkelde systeemketen. Het bijvoorbeeld kan gaan om een nieuw of gewijzigd veld in een koppeling. Of om de timing waarin diverse processen gegevens verwerken, waardoor gegevens missen of, te laat aankomen op de juiste plek. De betekenis van velden kan ook ketenproblemen opleveren: een negatief bedrag dat verderop positief wordt of persoonsgegevens van een patiënt die verwisseld worden met die van een contactpersoon.

Voer daarom als onderdeel van de regressietest ook een ketentest uit van de belangrijkste processen met alle betrokken systemen en afdelingen.

4. Verscherping van beveiliging leidt tot een ontoegankelijk of onbruikbaar systeem

Beveiliging is één van de belangrijkste risico’s tegenwoordig. Geen wonder dat organisaties drastische maateregelen nemen. Maar te snel en niet voldoende geteste beveiligingsmaatregelen kunnen onplezierige gevolgen hebben. Denk hierbij aan gebruikers die bepaalde gegevens niet meer kunnen benaderen of wijzigen of achtergrondprogramma’s die hun taak niet meer kunnen uitvoeren (die gebruiken namelijk ook accounts met beveiligingsrestricties).

Beveiligingsmaatregelen worden vaak niet eens gezien als wijzigingen die moeten worden getest voordat ze worden toegepast.

Zorg dat je op de hoogte bent van beveiligingsmaatregelen en test ze!

5. Nieuwe functies leiden tot onbegrijpelijkheid of onbruikbaarheid door te grote complexiteit.

Het toevoegen van nieuwe functies, knoppen of tabbladen lijkt altijd een verbetering te zijn, maar meer is niet altijd beter. Is er namelijk wel rekening gehouden met hoe er gebruik wordt gemaakt van het systeem en wie de gebruiker is? Tijdens kritische handelingen zoals een operatie wil een arts alleen de relevante informatie zien en belangrijke functies en gegevens snel kunnen vinden.

Laat daarom altijd ook de betreffende gebruikers de functionaliteit testen.

Lees hier het tweede deel van de 10 soorten softwarefouten die testers moeten kennen.