Magento on markkinoiden suosituin verkkokauppaohjelmisto. Se soveltuu hyvin vaativiin sähköisen liiketoiminnan ratkaisuihin, mutta venyy myös ketterästi pienempiin kokonaisuuksiin. Myös Magenton integroitavuus muihin järjestelmiin on huippuluokkaa.

Näin ollen on selvää, että Magentoa pyörittävä sovelluskoodi on oltava laadultaan ja toimintavarmuudeltaan erinomaista. Magento tarjoaakin hyvän ympäristön laadukkaan koodin tuottamiseen.

Laatua tukeva ekosysteemi

PHP-alusta, jonka päälle Magento rakentuu, on kehittynyt harppauksin kuluvan vuosikymmenen aikana. Joulukuussa 2015 julkaistu PHP:n versio 7 tuo mukanaan useita vaativaa yrityskäyttöä tukevia ominaisuuksia – ja parhaassa tapauksessa tuplaa alustan suorituskyvyn.

Alustan käyttäjiä on paljon, mikä avoimen lähdekoodin maailmassa tarkoittaa sitä, että kehitystyökalujen määrä on vertaansa vailla.

Tarjolla on parhaita käytäntöjä toteuttavat työkalut niin testivetoiseen kehitykseen kuin automatisoituun hyväksymistestaukseenkin.

Testivetoinen kehitys Magentolla

Kun puhutaan laadunvarmistuksesta kooditasolla, tarkoitetaan perinteisesti testivetoista kehittämistä. Kyseessä on tapa varmistaa koodin toimintavarmuus keskittymällä vain yhteen työn alla olevan järjestelmän toiminnallisuuteen kerrallaan.

Prosessi etenee seuraavanlaisesti: ensin kirjoitetaan testit, jatketaan kirjoittamalla koodi, jolla testit saadaan menemään läpi ja lopuksi viimeistellään tuotos. Järjestelmää rakennetaan inkrementaalisesti toistamalla näitä kolmea vaihetta, kunnes toiminnallisuus on valmis.

Jokainen uusi testi ja sen toteuttava koodi nojaavat aikaisemmin tehtyihin testeihin. Tällöin voidaan varmistua siitä, että uusi toiminnallisuus ei riko jo toteutettua.

Magentossa testivetoinen kehitys tapahtuu pääosin xUnit perheeseen kuuluvalla PHPUnit-työkalulla. Magento on julkaissut ohjelmistonsa uudelle kakkosversiolle oman PHPUnitin päälle rakennetun testauskehyksen ja jopa ohjeistaa kehittäjiä testattavan koodin tuottamiseen.

Ykkösversiolle ei ole tarjolla virallisia testaustyökaluja, mutta kolmannen osapuolen kirjastoja on saatavilla useita. Ecomdevin toteuttama PHPUnit-integraatio on saavuttanut vakiintuneen aseman.

Hyväksymistestien automatisointi

Toinen tapa lähestyä toiminnan varmistamista on hyväksymistestauksen (engl. acceptance testing) automatisointi. Hyväksymistestauksessa todennetaan, että tietyt kriittiset polut kaupassa toimivat määrittelyn mukaisesti.

Tämä tarkoittaa käytännössä selaimen ohjaamista ohjelmallisesti.

Magento-kaupoissa tehtävään voidaan käyttää Magenton itse julkaisemaa alustaa, tai jotakin yleisemmin käytössä olevaa kehystä. Valinta riippuu lähinnä siitä, onko asiakas mukana kriittisten polkujen määrittelyssä, vai toteutetaanko testit valmiiden määrittelyiden pohjalta.

Kun asiakas on mukana, käytetään käytös-vetoista mallia Behat-työkalun avulla. Testattavat käyttötapaukset kirjoitetaan yhdessä asiakkaan kanssa luonnollista kieltä vastaavalla Gherkin-kielellä. Näille käyttötapauksille tehdään vastineensa koodissa, jossa varsinainen automatisointi tapahtuu.

Yllä kuvatun metodin etuja ovat Gherkinillä kirjoitettavien testien luoma elävä dokumentaatio ja toisaalta se, että kun testit tehdään yhteistyönä, voidaan varmistua siitä, että tehdään oikeita asioita.

Silloin kun automatisointi tehdään valmiiden määrittelyiden pohjalta, käytetään joko Magenton omaa testauskehystä, tai esim. Codeceptionin tarjoamaa työkalua. Testit kirjoitetaan suoraan koodiin ja ohitetaan kuvaukset luonnollisella kielellä. Tämä on tehokkaampi tapa toimia, koska testejä ei tarvitse kirjoittaa kahteen kertaan.

Se kumpaa metodia käytetään, riippuu projektista.

Jokaiselle jotakin

Magenton suosio aiheuttaa sen, että uusia työkaluja syntyy jatkuvasti. On generatiivistatestausta ja approval testausta. On olemassa jopa Magento-spesifinen hyväksymistestejä automatisoiva kirjasto Magium, joka tarjoaa automaatiota heille jotka eivät pidä testaamisesta.

Mahdollisuuksia on paljon ja tarjontaa on runsaasti. Jokainen tiimi löytää helposti Magento-alustalta itselleen sopivimmat työkalut toimintavarman verkkokaupan toteuttamiseen.

ambientia

Blogi