PHP-pohjaisen sovelluksen testaus
Marttinen, Viktor (2010)
Marttinen, Viktor
HAAGA-HELIA ammattikorkeakoulu
2010
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2010120917737
https://urn.fi/URN:NBN:fi:amk-2010120917737
Tiivistelmä
Tämä opinnäytetyö käsittelee, kuinka nykypäivänä toteutetaan web-sovellusten testausta. Opinnäytetyö tehtiin CASE-tutkimuksena verkkopeli, mikä on koodattu PHP kielellä. Verkkopelille ei ollut laadittu testaussuunnitelmaa eikä toteutettu yksiköntason testausta.
Tämän raportin tavoitteena oli tutkia asioita teoriassa, mitä piti käsitellä ja ratkaista kun suunnitellaan web-sovelluksen testaussuunnitelmaa ja erityisesti yksikkötestaukset, soveltaa niitä CASE-esimerkiin ja analysoida niitä, selvittää mihin täytyisi kiinnittää huomion kun suunnitellaan ja kehitetään yksikkötestaukset PHP ja muussa web-ympäristössä.
Tämän raportin viitekehysosuudessa tarkasteltiin teoriaa joka koskee: testausprosessia osana ohjelmistotuotantoa ja testausprosessin vaiheita. Työssä käsiteltiin testauksen menetelmiä, erityisesti yksikkötestauksia ja käytiin läpi lyhyesti testausten mittarit ja automatisointi. Empiirisessä osassa tutustuttiin XAMPPiin, NetBeansiin ja PHPUnitiin, ja toteutettiin muutama yksikkötestitapaus. Pohdinnassa havaintojen ohella nivottiin yhteen teoria- ja empiirisen osion ja mietittiin johtopäätöksestä.
Aineistoa kerättiin usealla eri tavalla. Tietoa hankittiin kirjallisuudesta, seminaareista ja kursseilta. Tietoa haettiin myös testausympäristöstä, jolla pyrittiin toteuttamaan muutama yksikkötason testitapaus. Menetelmänä valittiin tyypillisimmin ilmiöiden kuvaileminen ja toistaminen testausympäristössä ja niiden myöhempi analyysi ja arviointi.
Kokemuksena voidaan mainita, että web-pohjainen sovellusten testaus eroa tavallista sovellus-testausta. Itse yksikkötestit eivät paljon poikkea testausta mikä tahansa muu sovelluksentestausta. Selvittiin että kuin kaikki testauksen tekniikat, yksikkötestaus ei havaitse kaikkia ohjelman virheitä. Yksikkötestaus on tehokkaampaa, jos sitä käytetään muiden testausmenetelmien yhteydessä. Saadakseen hyötyä yksikkötestauksessa on ehdottomasti noudatettava testauksen teknologian sekä laadittu lähdekoodin dokumentaatio koko ohjelmiston kehitysprosessin läpi. Tuotu prosessimalli soveltuu myös muille verkkopeli-projektin osille tai jopa muille PHP-pohjaisille sovelluksille.
Tämän raportin tavoitteena oli tutkia asioita teoriassa, mitä piti käsitellä ja ratkaista kun suunnitellaan web-sovelluksen testaussuunnitelmaa ja erityisesti yksikkötestaukset, soveltaa niitä CASE-esimerkiin ja analysoida niitä, selvittää mihin täytyisi kiinnittää huomion kun suunnitellaan ja kehitetään yksikkötestaukset PHP ja muussa web-ympäristössä.
Tämän raportin viitekehysosuudessa tarkasteltiin teoriaa joka koskee: testausprosessia osana ohjelmistotuotantoa ja testausprosessin vaiheita. Työssä käsiteltiin testauksen menetelmiä, erityisesti yksikkötestauksia ja käytiin läpi lyhyesti testausten mittarit ja automatisointi. Empiirisessä osassa tutustuttiin XAMPPiin, NetBeansiin ja PHPUnitiin, ja toteutettiin muutama yksikkötestitapaus. Pohdinnassa havaintojen ohella nivottiin yhteen teoria- ja empiirisen osion ja mietittiin johtopäätöksestä.
Aineistoa kerättiin usealla eri tavalla. Tietoa hankittiin kirjallisuudesta, seminaareista ja kursseilta. Tietoa haettiin myös testausympäristöstä, jolla pyrittiin toteuttamaan muutama yksikkötason testitapaus. Menetelmänä valittiin tyypillisimmin ilmiöiden kuvaileminen ja toistaminen testausympäristössä ja niiden myöhempi analyysi ja arviointi.
Kokemuksena voidaan mainita, että web-pohjainen sovellusten testaus eroa tavallista sovellus-testausta. Itse yksikkötestit eivät paljon poikkea testausta mikä tahansa muu sovelluksentestausta. Selvittiin että kuin kaikki testauksen tekniikat, yksikkötestaus ei havaitse kaikkia ohjelman virheitä. Yksikkötestaus on tehokkaampaa, jos sitä käytetään muiden testausmenetelmien yhteydessä. Saadakseen hyötyä yksikkötestauksessa on ehdottomasti noudatettava testauksen teknologian sekä laadittu lähdekoodin dokumentaatio koko ohjelmiston kehitysprosessin läpi. Tuotu prosessimalli soveltuu myös muille verkkopeli-projektin osille tai jopa muille PHP-pohjaisille sovelluksille.