Mitä on mustan laatikon testaus?

By Andreea Draniceanu

Tutustu tähän olennaiseen laadunvarmistustekniikkaan, jossa sisäinen toiminta on piilotettu, mutta virheet paljastuvat.

Mustalaatikkotestaus on ohjelmistotestauksen tyyppi, jossa ohjelman toiminnallisuutta tutkitaan tuntematta sen sisäistä toimintaa. Ajattele sitä pulman ratkaisemisena tietämättä, miten se on koottu. 

Lähes 10 vuoden kokemuksen omaavana testaajana jaan mielelläni kanssasi tietämykseni mustalaatikkotestauksesta. Tässä artikkelissa perehdyn siihen, mitä mustalaatikkotestaus on, miten se toimii ja miksi se on olennainen osa ohjelmistokehitysprosessia. Joten kiinnitä turvavyösi ja aloitetaan!

Mitä mustalaatikkotestaus on?

infografiikka, joka selittää, mitä mustalaatikkotestaus on ohjelmistotestauksessa

Mustalaatikkotestaus on testaustapa, jossa testaus tehdään ilman tietoa testattavan sovelluksen (AUT) sisäisestä rakenteesta. Valkolaatikkotestauksessa puolestaan perehdytään perusteellisesti sovelluksen lähdekoodiin, ja sen suorittaa kehitystiimi.

Mustalaatikkotestauksen suorittaa yleensä laadunvarmistustiimi, ja siinä keskitytään sovelluksen syötteisiin ja tulosteisiin. Testaajat käyttävät kelvollisia ja virheellisiä syötteitä ja tarkkailevat lopputuloksia. Sitä kutsutaan joskus käyttäytymistestaukseksi, koska testaus tehdään loppukäyttäjän näkökulmasta.

Mustalaatikkotestausta voidaan soveltaa millä tahansa testauksen tasolla: yksikkötestauksessa, integraatiotestauksessa, järjestelmätestauksessa ja käyttäjän hyväksymistestauksessa. Saatavilla on myös lukuisia mustalaatikkotestaustyökaluja, joiden avulla tätä ohjelmistotestaustapaa voidaan hyödyntää helposti.

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

Have an account? Log In

Mustalaatikkotestauksen tyypit 

Toiminnallinen testaus: testaustyyppi, jossa testaamme, MITÄ sovellus tekee. Testitapaukset voidaan kirjoittaa toiminnallisten vaatimusten perusteella. Kirjautumisnäkymän toiminnallisia testejä voivat olla esimerkiksi:

  • Kirjautuminen kelvollisilla tunnistetiedoilla ja “Unohditko salasanasi?” -linkin tarkistaminen.
  • “Muista minut” -toiminnallisuuden tarkistaminen.
  • Negatiiviset testit, kuten kirjautuminen virheellisillä tunnistetiedoilla ja kirjautumisyritys ilman pakollisia tietoja.

Ei-toiminnallinen testaus: testaustyyppi, jossa tutkitaan, MITEN sovellus tekee sen, mitä se tekee. Ohjelmistolle voi olla myös ei-toiminnallisia vaatimuksia. Esimerkiksi kuinka nopeasti sivun pitäisi latautua, kuinka monta samanaikaista käyttäjää sen pitäisi hyväksyä  tai mitä saavutettavuusohjeita sen pitäisi noudattaa. Testausprosessissa voidaan ottaa huomioon useita ei-toiminnallisen testauksen alatyyppejä (ja vaatimusten määrittelyistä riippuen):

  • Käytettävyystestaus: keskittyy yleensä siihen, kuinka helposti loppukäyttäjä pääsee käsiksi sovelluksen ominaisuuksiin.
  • Saavutettavuustestaus: tässä testaamme, että sovellus on kaikkien käyttäjien, myös vammaisten, saavutettavissa. 
  • Suorituskykytestaus: sovelluksen suorituskyvyn testaamista. Tämä testaustyyppi soveltuu paremmin automatisointiin, jossa käytetään testaustyökaluja. Voimme esimerkiksi kuormitustestauksessa yrittää testata sovellusta suurella määrällä samanaikaisia käyttäjiä, mitä emme voi saavuttaa manuaalisesti.
  • Turvallisuustestaus: sovelluksen turvallisuuden ja arkaluonteisten tietojen suojauksen testaamista. Siihen kuuluu esimerkiksi penetraatiotestaus.

Regressiotestaus: testaustyyppi, jossa tarkistetaan, ettei uusi koodi ole rikkonut olemassa olevia toiminnallisuuksia.

Uudelleentestaus: testaustyyppi, jossa varmistetaan, että aiemmin toimimaton toiminnallisuus on korjattu.

Musta- ja valkolaatikkotestaus

Mustalaatikkotestauksen “vastakohta” on valkolaatikkotestaus, joka tunnetaan myös läpinäkyvän laatikon testauksena. Valkolaatikkotestauksen suorittavat yleensä tiimin kehittäjät, ja siinä keskitytään testattavan sovelluksen lähdekoodin testaamiseen.

Seuraavaksi tarkastellaan näiden kahden tärkeimpiä eroja:

  • Mustan laatikon testaus suoritetaan ilman tietoa sovelluksen sisäisestä toiminnasta, kun taas valkoisen laatikon testaus edellyttää lähdekoodin tuntemusta.
  • Mustan laatikon testauksessa ei tarvita ohjelmointiosaamista; valkoisen laatikon testaukseen kuuluu yleensä automatisoitujen testien kirjoittaminen riittävän testikattavuuden saavuttamiseksi.
  • Mustan laatikon testaus on laadunvarmistustiimin vastuulla, kun taas valkoisen laatikon testauksen suorittaa kehitystiimi.
  • Mustan laatikon testauksessa käytetään tekniikoita, kuten ekvivalenssiluokittelua, raja-arvoanalyysiä, päätöstaulukkoa ja tilasiirtymiä (lisätietoja alla). Valkoisen laatikon testauksen tekniikoita ovat lausekattavuus, haarakattavuus ja ehtokattavuus.
  • Toisin kuin valkoisen laatikon testaus, joka edellyttää usein koodikannan syvällistä tuntemusta, mustan laatikon testauksen avulla testaajat voivat keskittyä sovelluksen toimintaan. Molemmat lähestymistavat edellyttävät kuitenkin luotettavien tietokannan hallintatyökalujen käyttöä parhaiden tulosten saavuttamiseksi
  • Valkoisen laatikon testaus soveltuu parhaiten testauksen alemmille tasoille (kuten yksikkö- tai integraatiotestaukseen), kun taas mustan laatikon testit suoritetaan ylemmillä tasoilla (järjestelmä- ja päästä päähän -testauksessa sekä käyttäjähyväksyntätestauksessa).

Näiden kahden lähestymistavan yhdistelmä on harmaan laatikon testaus, jossa testaajilla on käytettävissään jonkin verran tietoa ohjelmiston sisäisestä toiminnasta, kuten sen arkkitehtuurista tai tietokantarakenteesta, mutta ei koko koodikantaa. Näin he voivat testata ohjelmistoa perusteellisemmin kuin mustan laatikon testauksessa, mutta ilman valkoisen laatikon testaukseen liittyvää järjestelmän täydellistä tuntemusta ja hallintaa.

More Articles

Mustan laatikon testauksen tekniikat

Hyvän testikattavuuden saavuttamiseksi testitapauksia luotaessa voidaan soveltaa useita mustan laatikon testauksen tekniikoita:

Raja-arvoanalyysi: tässä tekniikassa tunnistetaan syötearvojen ääripäät, ja testiskenaariot kattavat ainoastaan nämä arvot. Tilastollisesti nämä ”raja-arvot” havaitsevat todennäköisemmin virheitä.

Ekvivalenssiluokittelu: tässä tekniikassa mahdolliset syötearvot jaetaan ekvivalenssiluokkiin. Jokaisella ekvivalenssiluokan arvolla odotetaan olevan sama lopputulos, joten yksi testitapaus kutakin luokkaa kohti riittää täydellisen kattavuuden saavuttamiseen. Sekä kelvolliset että virheelliset syötteet tulee kattaa.

Päätöstaulukkotestaus: testausmenetelmä, jossa käyttötapaukset johdetaan säännöistä, joissa käytetään syötteiden ja niiden odotettujen tulosten yhdistelmiä.

Tilasiirtymätestaus:  ohjelmistotestauksen tekniikka, jossa keskitytään ohjelmistosovelluksen toiminnan testaamiseen sen siirtyessä tilasta toiseen.

Virheiden arvaaminen: kokemukseen perustuva tekniikka, jossa testaajat hyödyntävät intuitiotaan ja kokemustaan ennakoidakseen ja löytääkseen järjestelmässä olevia virheitä aiemman tietämyksensä ja mahdollisten vikaantumiskohtien ymmärryksensä perusteella.

Johtopäätös 

Mustan laatikon testaus on olennainen osa ohjelmistotestausta, joka auttaa varmistamaan ohjelmiston laadun ja toimivuuden. Testaamalla sovellusta loppukäyttäjän näkökulmasta mustan laatikon testaus voi auttaa löytämään ongelmia, jotka saattaisivat muuten jäädä havaitsematta.

Mustan laatikon testaus on käytännöllinen työkalu ohjelmiston toiminnallisten virheiden tunnistamiseen. Testaamalla järjestelmän syötteitä ja tulosteita sekä varmistamalla, että se toimii odotetulla tavalla, testaajat voivat ymmärtää paremmin ohjelmiston toimintaa ja tunnistaa alueita, joilla voidaan tehdä parannuksia. Kaiken kaikkiaan mustan laatikon testauksen tulisi olla olennainen osa kattavaa ohjelmistotestausstrategiaa, jotta ohjelmisto olisi helppokäyttöinen, luotettava ja vapaa toiminnallisista virheistä.


Jos pidät ohjelmistotestausta käsittelevistä artikkeleista, harkitse QA Lead -uutiskirjeen tilaamista !

Andreea Draniceanu
Hi there! My name is Andreea, I’m a software test engineer based in Romania. I’ve been in the software industry for over 10 years. Currently my main focus is UI test automation with C#, but I love exploring all QA-related areas 😊

You may also like