Laadunvarmistajan opas tietokantojen testaamiseen vuonna 2026

By Jason Boog

Olen koonnut yleiskatsauksen tietokantojen testaukseen, jotta voit valmistautua varmistamaan, että tietosi ovat todennettavissa, haettavissa, täsmällisiä ja täydellisiä ja että niitä voidaan käyttää sovelluksen liiketoimintalogiikan toteuttamiseen.

Tietokantatestaus koostuu mustalaatikkotestauksesta, valkolaatikkotestauksesta ja ACID-ominaisuuksista (atomisuus, eheys, eristys ja pysyvyys). Tässä oppaassa annan määritelmät, toimintaohjeet ja esimerkkejä.

Mitä tietokantatestaus on?

Tietokantatestaus eli taustajärjestelmän testaus tai datan testaus eroaa käyttöliittymän testauksesta siinä, ettei se keskity lainkaan järjestelmäohjelmiston visuaaliseen käyttöliittymään. Sen ensisijainen tarkoitus on tarkistaa, että kaikki sisäiset prosessit toimivat oikein ja pystyvät hakemaan tietoja nopeasti, täsmällisesti ja turvallisesti.

Tietokantatestauksessa testataan tietokannan skeema, taulut ja laukaisimet. Tietokanta asetetaan kuormitukseen, ja testaus voi sisältää monimutkaisten kyselyiden suorittamista sen ominaisuuksien ja reagointikyvyn perusteelliseksi testaamiseksi. Lisäksi testataan tietokannan hallintajärjestelmiä (DBMS), kuten Oraclea ja SQL Serveriä.

Aiheeseen liittyvä lukeminen: NEGATIIVISEN TESTAUKSEN MYÖNTEISET TULOKSET

Mikä on tietokannan skeema?

Tietokannan skeema on looginen rakenne, joka määrittelee tietojen järjestyksen ja suhteet tietokannan sisällä. Se kuvaa suunnitelman siitä, miten tietoja tallennetaan, käytetään ja käsitellään tietokannan hallintajärjestelmässä. Skeema kuvaa tietotyypit, rajoitteet ja tietokannan entiteettien, kuten taulujen, näkymien, indeksien ja laukaisimien, väliset suhteet.

Tietokannan skeema on ratkaisevan tärkeä tietojen eheyden ja yhdenmukaisuuden varmistamisessa tietokannassa. Se tarjoaa kehittäjille ja tietokannan ylläpitäjille kehyksen tietojen mielekkääseen järjestämiseen ja strukturointiin. Se auttaa myös varmistamaan, että tietokantaan tallennetut tiedot täyttävät tietyt vaatimukset, kuten tietojen validoinnin, tietoturvan ja tietojen saatavuuden. Organisaatiot voivat käyttää tietokannan skeemaa varmistaakseen tietokantojensa järjestyksen ja optimoinnin tehokasta tiedonhallintaa varten sekä liiketoimintojen ja päätöksenteon kehittämiseksi.

Miksi tietokantatestaus on tärkeää?

Tietokantatestaus on tärkeää, koska

  1.  Jotkin virheet voidaan löytää vain tietokantatestauksella
  2.  Tietyt käyttöolosuhteet voidaan testata vain tietokantatasolla
  3.  Tietokantatestaus parantaa vakautta ja turvallisuutta 
  4.  Tietokantatestaus varmistaa yhdenmukaisuuden

Esimerkki tietokannan toiminnasta

Kuvittele avaavasi verkkopankkisovelluksen puhelimellasi (tai avaa verkkopankkisovellus oikeasti puhelimellasi). Siirrä nyt pieni rahasumma käyttötililtäsi säästötilillesi.  Kun olet valmis, ajattele kaikkia asioita, joiden täytyi tapahtua taustalla noiden muutaman sekunnin aikana.

  1. Sovellus lähetti maksutapahtuman tiedot tietokantaan.
  2. Mikään tiedoistasi (eli RAHASTA) ei kadonnut matkan aikana.
  3. Sovellus ei kaatunut tai epäonnistunut siirron suorittamisessa.
  4. Maksutapahtuma tapahtui turvallisesti.
  5. Rahasi ovat nyt mukavasti säästötililläsi (onnittelut!)

Kaikki nämä toiminnot tapahtuvat tietokannassa. Tietokantatestausprosessi on tärkeä, koska jos tietokantajärjestelmässä ilmenee vakava vika, järjestelmä pysähtyy täysin. Tietoja ei voida lähettää, hakea, siirtää tai suojata. Sovellus saattaa näyttää toimivan päällisin puolin (voit siirtyä ikkunoissa ja valmistautua maksutapahtumiin), mutta mitään merkittävää ei tapahdu.

Kaikki näyttää ulkopuolelta hyvältä, mutta sisäisesti kyseessä on katastrofi.

Kuva: kaikki on hyvin

Tietokantatestaus estää katastrofit. Ei tulipaloa, pysähdystä tai kadonneita rahoja. On kaikkien etu, että tietokantatestaus suoritetaan. Siksi olen kirjoittanut kattavan oppaan, jonka avulla voit luottaa siihen, että kaiken on testattu perusteellisesti, kun olet valmis.

Tietokantatestauksen periaatteet

Sana ”periaatteet” saattaa kuulostaa enemmän miksi-kysymykseltä kuin miten-kysymykseltä. Luota minuun, nämä ovat kaksi tärkeää ja käytännöllistä käsitettä. 

  1. ACID-ominaisuudet
    • Atomisuus
    • Yhdenmukaisuus
    • Eristys
    • Pysyvyys
  2. Tietojen eheys

Mitä ACID-ominaisuudet ovat?

Tämä on turvallisin koskaan käyttämäsi happo. Käsineitä ei tarvita, sillä ACID-ominaisuudet tarkoittavat Atomisuutta, Consistencyä eli yhdenmukaisuutta, Isolationia eli eristystä ja Durabilityä eli pysyvyyttä. Jokaisen tietokantatestauksen tapahtuman on täytettävä nämä periaatteet. 

Transaktio on tehtävien ryhmä. Jopa yksinkertainen tosielämän transaktio, kuten aiemmin mainitsemani pankkisiirto, sisältää useita alemman tason tehtäviä. ACID-ominaisuuksien tarkoitus on varmistaa, että jokainen transaktio suoritetaan täsmällisesti, kokonaisuudessaan ja eheästi.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

ACID-ominaisuudet

  • Atomisuus tarkoittaa, että jokaista transaktiota on käsiteltävä atomisena yksikkönä. Ei-molekyylitason termein ilmaistuna tämä tarkoittaa, että jokainen transaktio on suoritettava kokonaan tai se epäonnistuu. Jokaisen transaktion käsitteleminen tällä tavalla estää rahansiirron kaltaisen sekavan tilanteen, jossa siirto toteutuu vain osittain. Kuulostaa stressaavalta, eikö totta?  Atomisuuden ansiosta koko transaktio epäonnistuu, jos jokin menee pieleen transaktion ollessa puolivälissä. Rahat palautuvat. Ei stressiä. 
  • Yhdenmukaisuus edellyttää, että tietokanta säilyy yhdenmukaisena transaktion jälkeen. Mikään transaktio ei saa vaikuttaa kielteisesti mihinkään muuhun tietokannan tietoon. Kun talletat rahaa pankkitilillesi, kenenkään muun tililtä ei nosteta rahaa. 
  • Eristäminen estää tietovirtojen risteämisen. Se varmistaa, että useiden samanaikaisten transaktioiden tapauksessa jokaista transaktiota käsitellään kuin se olisi ainoa tietokannassa tapahtuva transaktio. Kenenkään tietoja ei sekoiteta muiden ihmisten tietoihin.  
  • Pysyvyys edellyttää, että tietokanta on riittävän pysyvä säilyttääkseen kaikki uusimmat transaktiot myös järjestelmävian sattuessa. Tällaiselle tietokannan pysyvyydelle on jälleen käytännön syitä. Jos teet rahansiirron ja tietokanta kaatuu kymmenen minuuttia myöhemmin, mistä tietäisit, että siirto on tehtävä uudelleen? Näin tiukat vaatimukset estävät loppukäyttäjien hämmennystä.  

Tietojen eheys

Tietojen eheys tarkoittaa käytäntöä, jossa varmistetaan, että kaikki uusimmat tiedot on päivitetty kaikkialla. Tietojen eheyden vahvistamiseen yhdistyy neljä erillistä osa-aluetta. QA-testaajan on vahvistettava seuraavat asiat, jotta tietojen eheys on korkealla tasolla:

  1. Tiedot ovat todennettavissa
  2. Tiedot ovat noudettavissa
  3. Tiedot ovat täsmällisiä
  4. Tiedot ovat täydellisiä

Jos tiedot eivät täytä näitä neljää vaatimusta, ne eivät todennäköisesti täytä tietojen eheyden standardia. Tietojenhallintatyökalut voivat auttaa tässä, mutta viime kädessä sinun vastuullasi on varmistaa tietojen mahdollisimman korkea laatu.

Kuten Huw Price toi esiin The QA Lead Podcastin jaksossa Tietojesi laatu on surkea, järjestelmien käyttäminen laadukkailla ja turvallisilla tiedoilla on yhä tärkeämpää, kun yhä useammat yritykset rakentavat omia tietopankkejaan.

Tietokannan käsittelykieli

Tietokannan käsittelykieli (DML) on ohjelmointikieli, jolla käsitellään tietoja tietokannan hallintajärjestelmässä. DML-kieltä käytetään ensisijaisesti tehtäviin, kuten tietojen lisäämiseen, päivittämiseen, poistamiseen ja noutamiseen tietokannasta. DML tarjoaa pohjimmiltaan joukon komentoja ja funktioita, joiden avulla käyttäjät voivat käsitellä tietokannan tietoja sekä muokata tai noutaa niitä tiettyjen ehtojen mukaisesti. DML on olennainen osa kaikkia tietokantajärjestelmiä, sillä sen avulla käyttäjät voivat suorittaa tietojen käsittelytoimintoja ilman tietokannan taustalla olevan rakenteen tai teknologian ymmärtämistä.

DML-komentoja käytetään yleensä yhdessä tietokannan määrittelykielen (DDL) kanssa. DDL-kieltä käytetään tietokantaobjektien, kuten taulukoiden, näkymien ja indeksien, luomiseen ja muokkaamiseen. DDL ja DML muodostavat tietokantajärjestelmän keskeiset osat, joiden avulla käyttäjät voivat luoda, muokata ja käsitellä tietoja turvallisesti, tehokkaasti ja luotettavasti. DML:n käyttö tietokantojen hallinnassa mahdollistaa suurten tietomäärien tallentamisen, hallinnan ja analysoinnin, mikä tekee siitä kriittisen työkalun yrityksille tämän päivän datavetoisessa maailmassa.

Tietokantatestauksen tyypit

Nyt kun olemme käsitelleet kaksi tietokantatestauksen keskeistä periaatetta, voimme siirtyä erilaisiin testaustyyppeihin. Olet todennäköisesti kuullut joistakin näistä lähestymistavoista aiemmin. Muista, että sanoinhan jo, että jos ymmärrät QA-testauksen, opit tietokantatestauksen helposti. Selitän tässä, miten kukin näistä käsitteistä soveltuu tietokantatestaukseen. 

Tietokantatestauksessa on kolme tyyppiä:

  1. Rakenteellinen
  2. Toiminnallinen
  3. Ei-toiminnallinen

Näihin kolmeen tietokantatestauksen tyyppiin sisältyy alatyyppejä. Älä huoli, selitän myös ne. 

Rakenteellinen testaus

Rakenteellisessa testauksessa validoidaan tietovarastossa olevat tietojen tallentamiseen käytettävät elementit. Nämä elementit ovat piilossa loppukäyttäjiltä ja toimivat kokonaan taustalla. Tietokantatestaajat suorittavat nämä testit kirjoittamalla SQL-kyselyitä. 

Tietojen yhdistämisen testaus

Tietorakenteiden yhdistäminen on prosessi, jossa muodostetaan yhteyksiä kahden eri tietomallin välille. Tietojen yhdistämisen testillä, jota kutsutaan myös skeeman testaukseksi, validoidaan käyttöliittymä ja taustajärjestelmä. Testillä varmistetaan, että ne viestivät keskenään asianmukaisesti.

Jos esimerkiksi täytät verkkosivustolla rekisteröitymislomaketta, asianmukainen tietojen kartoitus ottaa verkkolomakkeen tiedot ja siirtää ne tietokantaan. Nimesi, sähköpostiosoitteesi ja salasanasi tallennetaan oikeaan paikkaan. Tietojen kartoituksen testaus vahvistaa, että prosessi toimii. 

Laadunvarmistuksen testaaja työskentelee useiden tietojen kartoitustyökalujen kanssa. Lyhyt luettelo tietojen kartoitustyökaluista sisältää seuraavat:

Tietokantataulujen testaus

Taulujen testaus suorittaa useita tarkistuksia tietojen kartoitusrakenteelle. Se tarkistaa, että käyttöliittymän ja taustajärjestelmän kentät ovat yhteensopivia keskenään. Se vahvistaa tietokantakenttien pituudet. Lisäksi se varmistaa, onko tietokannassa kartoittamattomia tauluja tai sarakkeita, joihin sinun on puututtava. 

Tietokantapalvelimen validoinnit

Palvelinvalidoinnit varmistavat, että palvelimen kokoonpano täyttää vaatimukset. Ne varmistavat myös, että kaikilla tietokantapalvelimen tiettyihin alueisiin yrittävillä käyttäjillä on asianmukaiset käyttöoikeudet. Tämä on tärkeä vaihe tietokannan pitämisessä turvallisena ja suojattuna sen käyttäjille. Lopuksi palvelinvalidointi varmistaa, että palvelin pystyy käsittelemään samanaikaisesti enimmäismäärän tapahtumia. 

Esimerkiksi pankkisovelluksen palvelinvalidoinnissa tarkistettaisiin, että palvelin pystyy käsittelemään tietyn käyttäjämäärän taloudelliset tapahtumat ja että kaikki käyttäjät voivat käyttää ainoastaan omia tietojaan. 

Toiminnallinen testaus

Tuomme hauskuuden takaisin toiminnalliseen testaukseen. Todella, niin teemme. Toiminnallisessa testauksessa on kyse siitä, että tarkistetaan tietokannan vastaavan asiakkaan määrittelyjä ja että loppukäyttäjän toiminnot ovat näiden vaatimusten mukaisia. Tämä tarkoittaa, että loppukäyttäjänä esiintymistä on paljon. Eikö kuulostakin hauskalta? Minusta se kuulostaa hauskalta. 

Mustan laatikon testaus

Mustan laatikon testaus on ohjelmiston testausstrategia, jossa testattavan ohjelmistojärjestelmän rakennetta ei tunneta testaajalle. Ilman yksityiskohtaista tietoa ohjelmiston rakenteesta testaaja lähestyy ohjelmistoa loppukäyttäjän kaltaisin odotuksin. 

Mustan laatikon testausta tehdään tietokantatestauksen aikana, koska siinä löydetään virheitä yleisistä käyttöpoluista, joita loppukäyttäjä todennäköisesti kohtaa. Se on lopullinen testi, joka suoritetaan loppukäyttäjänä. 

Käsittelimme mustan laatikon testausta laajasti oppaassamme 9 ohjelmistotestauksen tyyppiä, jotka jokaisen laadunvarmistusanalyytikon tulisi tuntea. 

Valkoisen laatikon testaus

Valkoisen laatikon testaus on mustan laatikon testauksen täydellinen vastakohta. Valkoisen laatikon testauksessa laadunvarmistuksen jäsen ymmärtää täysin testattavan ohjelmiston sisäisen rakenteen ja suunnittelun. 

Hän lähestyy testiä tarkastajana. Valkoisen laatikon testausta kutsutaan joskus läpinäkyvän laatikon testaukseksi, koska testaaja tarkkailee yksiköiden välisiä vuorovaikutuksia testatessaan ohjelmistoa. Toisin kuin mustan laatikon testauksessa, valkoisen laatikon testaaja ei ole läheskään yhtä kiinnostunut käyttökokemuksesta. 

Yksikkötestaus

Yksikkötestaus on ohjelmiston testaustekniikka, jossa sovelluksen yksittäisiä yksiköitä tai komponentteja testataan erillään muusta järjestelmästä. Tällä testaustyypillä testataan yksittäisiä tietokantaobjekteja, kuten tauluja, näkymiä, tallennettuja prosedyyrejä ja funktioita. Testaamalla näitä objekteja erillään kehittäjät voivat varmistaa, että kukin objekti toimii tarkoitetulla tavalla.

Tietokantojen yksikkötestit sisältävät yleensä automatisoitujen testien kirjoittamisen. Testit suorittavat tiettyjä SQL-komentoja tietokantaobjektia tai -moduulia vastaan ja varmistavat, että odotetut tulokset palautetaan. Tallennetun proseduurin yksikkötestissä voidaan esimerkiksi välittää proseduurille joukko syöteparametreja ja varmistaa, että tuloste on oikea. Käyttämällä yksikkötestejä tällä tavalla kehittäjät voivat varmistaa, että kukin tietokantaobjekti toimii odotetusti ja että tietokantaskeemaan tai sovelluskoodiin tehdyt muutokset eivät aiheuta tahattomia seurauksia tai virheitä.

Ei-toiminnallinen testaus

Ei-toiminnallinen testaus ei välitä loppukäyttäjästä lainkaan. Se ei tarkoita, etteikö loppukäyttäjä olisi tärkeä. Testauksella on yksinkertaisesti muita huolenaiheita. Ei-toiminnallisissa testeissä tarkistetaan tietokannan suorituskyky kuormituksen ja rasituksen alaisena sekä etsitään suorituskyvyn optimointikohteita.

Kuormitustestaus 

Tietokannan kuormitustestaus on eräänlaista tietokannan suorituskykytestausta, jolla tarkistetaan, ettei käyttäjien kuormitus vaikuta merkittävästi kielteisesti tietokannan suorituskykyyn. Laadunvarmistustestaaja suorittaa joukon kuormituskyselyitä ja toistaa niitä yhä uudelleen simuloidakseen aktiivista käyttäjäkuntaa. 

Stressitestaus

Stressitestit ovat kuormitustestejä, mutta voimakkaampia. Niissä ei haluta nähdä, hidastuuko tietokanta, vaan selvittää, missä kohdassa se voidaan rikkoa. Tämä on paljon tuhoisampaa. Joten se on hauskaa. 

Oletko koskaan odottanut jännittyneenä uuden videopelin tai puhelimen julkaisua? Jos olet, saatat tuntea tilanteen, jossa lataat verkkosivuston tai avaat sovelluksen tehdäksesi ostoksen ja kohtaat epätavallisen pitkät latausruudut, odottamattomia virhekoodeja ja epäonnistumisia tietojesi käsittelyssä. Juuri tällainen on stressaantunut tietokanta.

Se eroaa kuormitustestauksesta, koska siinä tietokanta altistetaan äkillisesti ja odottamatta erittäin suurelle liikennemäärälle. 

More Articles

Tietokannan automaatiotestaus

Tietokannan automaatiotestaus on yleistynyt viime vuosina. Jos tietokanta pitäisi testata manuaalisesti, se veisi liian paljon aikaa, vaatisi liian monta henkilöä ja maksaisi yksinkertaisesti liikaa.

Automaatiotestaukseen on monia tapoja. Tässä on luettelo joistakin tietokannan hallintatyökaluista, jotka tarjoavat testausominaisuuksia.

Tietokannan hallintatyökalujen luettelo

Tietokannan testaaminen API:n avulla

API (sovellusohjelmointirajapinta) on joukko protokollia ja standardeja, joiden avulla eri ohjelmistosovellukset voivat viestiä keskenään. Tietokannan testauksessa API voi muodostaa yhteyden tietokantaan ja suorittaa erilaisia toimintoja, kuten tietojen lisäämistä, päivittämistä, poistamista ja hakemista.

API:n ja tietokannan testauksen välinen yhteys on siinä, että API:ita voidaan käyttää testausprosessin automatisointiin ja tehostamiseen. Yhdistämällä API:n avulla tietokantaan testaajat voivat automatisoida tehtäviä, kuten tietojen lisäämistä, päivittämistä ja poistamista, sekä suorittaa kyselyitä tietojen hakemiseksi ja tulosten tarkistamiseksi. Tämä voi vähentää merkittävästi manuaaliseen testaukseen tarvittavaa aikaa ja vaivaa sekä parantaa testaustulosten tarkkuutta ja yhdenmukaisuutta.

Lisäresurssit

Tämän artikkelin luettuasi sinun pitäisi ymmärtää, miten tietokantatestaus suoritetaan. Kaikkea ei tietenkään ole mahdollista käsitellä yhdessä artikkelissa. Tässä on kaksi lisäresurssia, jotka voivat auttaa sinua ratkaisemaan tiettyjä ongelmia.

  1. Miten relaatiotietokanta testataan regressiotestauksella
  2. Miten suorituskykytesti suoritetaan SQL Server -instanssille

Mitä mieltä olet?

Tietokannan testaamisesta vastaaminen voi tuntua suurelta vastuulta. Luotan siihen, että pystyt hoitamaan sen. Tunnetko nyt olosi varmemmaksi tietokantatestauksen lähestymistapasi suhteen? Kerro ajatuksesi kommenteissa!

Jason Boog
Over his 15-year career, Jason Boog has worked as a QA tester, QA analyst, and Senior QA Analyst on video games, commercial sites, and interactive web applications. He spent more than a decade building out the QA team and process as Director of Quality & Client Support at a full-service digital agency.
Follow the author:

You may also like