Smoke testing, joka tunnetaan myös nimillä confidence testing, sanity testing, build verification test (BVT) ja build acceptance test, tarkoittaa ohjelmiston valmistavaa testausta ennen julkaisua, jonka tarkoituksena on varmistua siitä, että ohjelmiston tärkeimmät ominaisuudet toimivat. Smoke-testaus suunnitellaan siten, että testicaset kattavat järjestelmän tai sen moduulin kriittisimmän toiminnallisuuden. Mutta mikä on se syy, miksi smoke-testausta tehdään?
Nykyaikaisten ohjelmistojen arkkitehtuuri perustuu yksittäisiin moduuleihin, jotka toteuttavat tietyn toiminallisuuden ja siihen, että moduulit viestivät ja toimivat keskenään yhteen. Useiden eri moduulien muodostamat kokonaisuudet ovat usein hyvin monimutkaisia, jolloin vain harvalla on kokonaiskuva järjestelmän täydellisestä toiminnasta ja siitä, miten yksittäisten moduulien toiminta vaikuttaa koko järjestelmään. Usein esimerkiksi alimman tason moduulin toteutus on hämärretty, eikä ohjelmistokehittäjää edes kiinnosta, miten sen sisäinen logiikka on toteutettu, kunhan moduulin tuottama output-data on oikeanlaista muiden moduulien käyttöön.
Tässä kuitenkin piilee inhimillisen virheen mahdollisuus. Nykyaikainen ketterä, agile, ohjelmistokehitys on nimensä mukaisesti nopeatahtista ja yksittäisiä moduuleja päivitetään tai muutetaan päivittäin. Koska nämä moduulit ovat tiivisti yhteydessä muihin moduuleihin, pienikin, harmittomalta vaikuttanut muutos yhden moduulin toiminnassa voi rikkoa koko järjestelmän yhteistoiminnan, odottamattomasti.
Tämän takia päivittäistä kääntämistä (daily build) ja sen automatisoitua smoke-testausta pidetään yhtenä ohjelmistokehityksen "hyvistä käytännöistä", best practices. Päivittäisellä automatisoidulla smoke-testauksella saadaan kiinni kaikki ne odottamattomat bugit, jotka syntyivät kehittäjän eilen tekemästä muutoksesta. Bugit havaitaan siten ajoissa ja toimiva ohjelmistoversio voidaan palauttaa ennen kuin epätoimivaa ohjelmistoversiota ehditään kehittää pidemmälle. Testaajina tiedämme, että tämä tarkoittaa mahdollisesti suuria säästöjä niin ajassa, rahassa kuin miestyövuosissakin.
Smoke-testauksella voidaan siis saada nopea vastaus ohjelmiston yleisen tason
toimivuudesta. Sen tehtävänä, kuten testauksella yleisestikin, on luoda luottamusta ohjelmiston laatuun. Smoke-testauksella voimme olla varma, että meidän jokapäiväinen buildimme toimii huomennakin.
Lähde:
Smoke testing (software), Wikipedia. Saatavilla: https://en.wikipedia.org/wiki/Smoke_testing_(software)
Näytetään tekstit, joissa on tunniste Laatu. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste Laatu. Näytä kaikki tekstit
Ei savua ilman tulta (Mitä on smoke testing?)
torstai 19. tammikuuta 2017
Tunnisteet:
automatisaatio,
best practices,
daily build,
Laatu,
luottamus,
smoke,
smoke testing,
testaus
sunnuntai 18. joulukuuta 2016
Ohjelmistotestauksessa on kyse ohjelmiston laadun selvittämisestä. Tämä tarkoittaakin sitä, että ennen kuin yhtään testiä on kirjoitettu, pitää määritellä, mitä laatu on – se on myös hyvä filosofinen kysymys, jota kannattaa pohtia kokonaisvaltaisesti projektin suhteen. Onneksi on olemassa valmiita standardeja, kuten kansainvälinen standardi ISO 9126 ja TMap Next (luku 10), joissa määritellään, mitä ohjelmiston laatuominaisuuksilla (quality characteristics) tarkoitetaan. Kummatkin standardeista ovat laajalti tunnettuja ja ohjelmistoteollisuudessa käytössä.
TMap Next määrittelee kahdeksantoista ohjelmiston laatuominaisuutta: liitettävyys (connectivity), jatkuvuus (continuity), datan hallittavuus (data controllability), vaikuttavuus (effectivity), tehokkuus (efficiency), joustavuus (flexibility), funktionaalinen tarkkuus (functional accuracy) ja funktionaalinen kokonaisuus (functional completeness), infrastruktuurin soveltuvuus (suitability of intrastructure), ylläpidettävyys (maintainability), hallittavuus (manageability), suorituskyky (performance), siirrettävyys (portability), reusability (uudelleenkäytettävyys), turvallisuus (security), soveltuvuus (suitability), testattavuus (testability) ja käyttäjäystävällisyys (user-friendliness).
Kansainvälisen
standardointiorganisaation ISO 9126 määrittelee kuusi isompaa laatukokonaisuutta:
toiminallisuus (funktionaalisuus), luotettavuus (reliability), käytettävyys (usability),
tehokkuus (efficiency), ylläpidettävyys (maintainability)
ja siirrettävyys (portability).
TMapin ja ISO 9126 standardeissa on sisällöllisesti paljon
samaa, mutta myös eroja. Ehkä yksi tärkeimmistä eroista on se, että ISO 9126
pitää funktionaalisuutta
sateenkaarikonseptina, jonka alle menevät esimerkiksi turvallisuuden ja
soveltuvuuden testaus. TMapissa funktionaalisuus on jaettu kahteen osaan:
funktionaaliseen tarkkuuteen ja funktionaaliseen kokonaisuuteen ja turvallisuus
ja soveltuvuus ovat omia laatuominaisuuksiaan. Funktionaalisella tarkkuudella
tarkoitetaan sitä, että järjestelmä toimii virheettömästi ja tarkasti ja
funktionaalisella kokonaisuudella sitä, että kaikki toiminallisuuden osat
tulevat testattua. Suurin osa testauksesta kuitenkin keskittyy toiminallisuuden
testaamiseen, joten sen laatutavoitteiden oikeanlainen määrittely on yksi
tärkeimmistä testauksen suunnitteluvaiheen tehtävistä.
Kumpikin standardi määrittelee, mikä on niiden määritelmä
laadusta ja siihen liitettävistä ominaisuuksista – eli hyvin tehdystä
tuotteesta. Laatu on siis osien summa, joka rakennetaan pala palalta.
Ohjelmistotestauksen ytimessä on tietysti kliininen toiminallisuuden testaus,
mutta sen ympärillä olevat muut palaset muodostavat ohjelmiston laadun.
Ohjelmiston pitää olla toiminnallisuuden lisäksi ainakin käytettävä
(usability), tehokas (efficiency), ylläpidettävä (maintainability) ja
siirrettävä (portability). Nämä ovat muuten ne nimenomaiset laatuominaisuudet,
jotka sattuvat löytymään kummastakin laatustandardista.
Lähteet:
TMap Next: for
result-driven testing (2006), Sogeti Nederland B. V. Chapter 10, Quality Characteristics.
ISO/IEC 9126 Software engineering — Product quality. (2011).
Available: https://en.wikipedia.org/wiki/ISO/IEC_9126
ISO/IEC 9126 Software engineering — Product quality. (2011).
Available: https://en.wikipedia.org/wiki/ISO/IEC_9126
Tunnisteet:
ISO 9126,
Laatu,
laatuominaisuudet,
standardit,
TMap,
TMap Next
Tilaa:
Blogitekstit (Atom)