Database testing verdient meer aandacht. De GUI krijgt echter de meeste aandacht van de testmanagers en de leden van het ontwikkelteam tijdens het testen. Dat komt omdat de grafische gebruikersinterface het meest zichtbare deel van de applicatie is. Het is echter ook belangrijk om de werking van het hart van de applicatie te controleren, oftewel de DATABASE. Denk hierbij bijvoorbeeld aan een Oracle Database, een IBM database, MS-SQL database of aan de SAP database.
Computertoepassingen zijn tegenwoordig complexer met technologieën zoals Android en ook met veel smartphone-apps. Hoe complexer de front-ends, hoe ingewikkelder de back-ends. Data was nooit eerder zo belangrijk. Database testing is dus des te belangrijker om de databases effectief te kunnen valideren zodat we de veiligheid en kwaliteit van databases kunnen garanderen.
Naarmate de complexiteit van de applicatie toeneemt, ontstaat dus de behoefte aan een sterkere en veilige database. Voor applicaties met een hoge transactiefrequentie (Bijvoorbeeld bij Bank en andere Finance toepassingen), is het noodzakelijk dat een volledige DB tool te koppelen.
Bij het database testing gaat het echter niet om de database software die bij het systeem hoort maar om de interactie tussen de database en de applicatie.
Verdiepende artikelen hierna
In 3 volgende artikelen kijken we naar een applicatie waarbij een gebruiker transacties uitvoert die in de database verwerkt moeten worden. Vanuit het oogpunt van het testen van een database zijn de volgende zaken van belang:
- De toepassing slaat de transactie-informatie op in de applicatiedatabase en geeft ze tevens correct weer voor de gebruiker.
- Er gaat geen informatie verloren tijdens het verwerken van de transacties.
- Van een gedeeltelijk uitgevoerde of afgebroken transactie wordt de data niet opgeslagen in de database door de applicatie.
- Bovendien mogen alleen geautoriseerde personen toegang krijgen tot de gebruikersinformatie.
Om al deze bovenstaande doelstellingen te waarborgen, moeten we tijdens de test alle betrokken data in iedere stap valideren.
Wat is database testing?
Tijdens database testing controleren we het database ontwerp, het database schema, de datatabellen, de database triggers, enzovoorts van de te testen database. Het kan tevens gaan om het maken van complexe database query’s die de database laden en om stress testen die de performance van de database controleren. Tijdens de databasetest controleren we de data-integriteit en consistentie van de database. Bij aanvang van de test moet de teststrategie die binnen de organisatie geldt bekend zijn. Deze teststrategie moeten we in het testplan opnemen. Het testplan moet dus de genoemde elementen bevatten en de teststrategie dekken.
Mythen of misvattingen met betrekking tot database testing.
- Database testen vereist veel expertise en het is een erg saai werk.
Effectieve en efficiënte Databasetests bieden op de lange termijn functionele stabiliteit voor de applicatie. Daarom is het testen van de database belangrijk en zeker niet saai. Iedere database is anders en al de benodigde kennis doen we op door er aan te werken. - Database testen leveren extra knelpunten in de planning op.
Het tegendeel is echter waar, database testen voegt meer waarde toe aan het algehele testtraject omdat we verborgen problemen achterhalen die later mogelijk problemen met de applicatie hadden opgeleverd. Zo dragen databasetests dus proactief bij aan de kwaliteit van de applicatie. - Het testen van databases vertraagt het algehele ontwikkelingsproces.
De realiteit is echter dat een aanzienlijke hoeveelheid databasetests helpt bij de algehele verbetering van de kwaliteit van de database-applicatie. - Het testen van databases kan buitensporig kostbaar zijn.
Al de uitgaven voor het testen van de database zijn een investering die leidt tot stabiliteit en robuustheid van de applicatie op de lange termijn. Daarom zijn uitgaven voor het testen van databases dus noodzakelijk.
Best Practices database testing
- Van alle data, inclusief de metadata en de functionele data moeten we vaststellen dat ze worden gebruikt volgens hun toewijzing in de requirements met de vereiste specificaties.
- Alle testdata die door de testers en/of samen met het ontwikkelingsteam is gemaakt, moeten we verifiëren en valideren tijdens de test.
- Validatie van de uitvoerdata of deze door zowel handmatige als geautomatiseerde processen is te gebruiken.
- Inzet van verschillende technieken zoals de oorzaakeffect techniek, de gelijkwaardigheidsverdeling en de grenswaardeanalyse voor het genereren van de vereiste testgevallen.
- De validatieregels van de preferentiële integriteit voor de vereiste databasetabellen moeten we testen.
- De validatie van de databaseconsistentie is een zeer belangrijk concept. Hier dient een aparte analyse op plaatst te vinden.
- Als we de databasetransacties loggen, moeten we controleren of dit correct en volledig gebeurd.
- Worden geplande database taken op tijd uitgevoerd?
- Werkt het maken van een database dump goed?
- Werken de backup en restore procedures van de database correct?
- Worden de back-ups van de database volgens plan gemaakt?
Typen databasetests
Meer in detail zijn er 3 soorten database testen. Deze zijn:
- Testen van de Database structuur
- Functioneel database testen
- Database performance testing
In een reeks volgende artikelen behandelen we deze database testen.
Discussieer mee op LinkedIn.
Samenvatting
ArtikelDatabase testen
BeschrijvingVoor een goede werking van een applicatie is het belangrijk om van het hart van de applicatie te controleren, de DATABASE. We gaan dieper in op Database testing in een reeks artikelen. Dit artikel bevat de inleiding.
Auteur Wim Hoogenraad
Publisher Naam ITpedia
Publisher Logo