Cartoon by TestNet

Testen is een risicobeperkende maatregel: door te testen, geef je inzicht in kwaliteit en biedt je de mogelijkheid om een systeem te verbeteren, doordat gevonden bugs kunnen worden opgelost. De risico’s op ernstige fouten of een niet goed functionerend systeem worden hierdoor verlaagd.

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 zijn ervaringen uit de testwereld verzameld met als  resultaat een lijst met 10  veel voorkomende fouten die elke tester zou moeten kennen, herkennen en zou moeten weten hoe te testen wanneer de fout een reëel risico is. Per fout wordt ook beschreven wat de testmaatregelen moeten zijn.

1. 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 dat is niet altijd zo. 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. Gevonden fout wordt niet opgelost omdat het ook al in productie zit, leidt toch tot een issue.

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. 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 kan gaan om een nieuw of gewijzigd veld in een koppeling, de timing waarin diverse processen gegevens verwerken waardoor gegevens missen, te laat of niet meer 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 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.