Ohjelmistojen testausmenetelmät: QA-mallit
⚡ Älykäs yhteenveto
Ohjelmistojen testausmenetelmät määrittelevät strategiat ja testaustyypit, joilla varmistetaan, että sovellus täyttää asiakkaan odotukset. Vesiputousohjelmointi, iteratiivinen ohjelmointi, ketterä ohjelmointi ja äärimmäinen ohjelmointi muokkaavat testauksen aloitusajankohtaa ja palautteen palautustapaa.
Mikä on ohjelmistojen testausmetodologia?
Ohjelmistojen testausmenetelmät määritellään strategioiksi ja testaustyypeiksi, joilla varmistetaan, että testattava sovellus täyttää asiakkaan odotukset. Testausmenetelmiin kuuluu toiminnallinen ja ei-toiminnallinen testaus AUT:n validoimiseksi. Esimerkkejä testausmenetelmistä ovat Yksikkötestaus, Integraation testaus, Järjestelmän testaus, Suorituskykytestaus jne. Jokaisella testausmenetelmällä on määritelty testitavoite, testausstrategia ja suoritukset.
Huomautuksia: Koska ohjelmistotestaus on olennainen osa kehitysmetodologiaa, monet yritykset käyttävät termiä Development Methodologies & Testing Methodologies puhekielessä. Siksi testausmenetelmät voivat viitata myös Waterfall-, Agile- ja muihin laadunvarmistusmalleihin verrattuna yllä olevaan testausmenetelmien määritelmään. Keskustelu erilaisista testaustyypeistä ei tuo lukijoille lisäarvoa. Keskustelemme siis erilaisista kehitysmalleista.
Testausmenetelmä vs. testaustyyppi vs. testausstrategia
Yllä oleva huomautus vihjaa alan todelliseen monitulkintaisuuteen. Keskustelussa käytetään kolmea termiä keskenään, mutta ne tarkoittavat projektidokumentissa eri asioita, ja niiden sekoittaminen tuottaa testisuunnitelmia, jotka vastaavat väärään kysymykseen.
| Termi | Kysymys, johon se vastaa | Päätti | Esimerkit |
|---|---|---|---|
| Testausmenetelmät | Milloin ja miten testaus sopii osaksi kehityssykliä? | Käytössä oleva kehitysmalli | Vesiputous, iteratiivinen, ketterä ja äärimmäinen ohjelmointi |
| Testaustyyppi | Mitä tuotteen osa-aluetta varmennetaan? | Riskien ja vaatimusten kattaminen | Yksikkö, integraatio, järjestelmä, suorituskyky, tietoturva |
| Testaustaso | Kuinka syvällisesti ohjelmistoa tarkastellaan? | Sijainti rakennushierarkiassa | Komponentti, integrointi, järjestelmä, hyväksyntä |
| Testistrategia | Millainen on organisaatiomme lähestymistapa laatuun? | Laadunvarmistuksen johtajuus, koskee kaikkia projekteja | Riskiperusteinen, automaatio ensin, siirtyy vasemmalle |
| Testisuunnitelma | Mitä tässä projektissa tarkalleen ottaen testataan, milloin ja kenen toimesta? | Testauspäällikkö, projektikohtainen | Laajuus, aikataulu, resurssit, aloitus- ja lopetuskriteerit |
Hyödyllinen nyrkkisääntö: menetelmä asettaa rytmin, tyyppi asettaa tavoitteen ja testisuunnitelma kirjaa sitoumuksen. Seuraavissa osioissa tarkastellaan menetelmiä.
Vesiputousmalli
Mikä se on?
In vesiputous malli, ohjelmistokehitys edistyy eri vaiheissa, kuten vaatimusanalyysi, suunnittelu jne. peräkkäin.
Tässä mallissa seuraava vaihe alkaa vasta, kun edellinen vaihe on saatu päätökseen.
Mikä on testausmenetelmä?
Vesiputousmallin ensimmäinen vaihe on vaatimusvaihe, jossa kaikki projektin vaatimukset määritellään täysin ennen testauksen aloittamista. Tässä vaiheessa testitiimi pohtii testauksen laajuutta, testausstrategiaa ja laatii yksityiskohtaisen testisuunnitelman.
Vasta kun ohjelmiston suunnittelu on valmis, tiimi siirtyy testitapausten suorittamiseen varmistaakseen, että kehitetty ohjelmisto toimii odotetulla tavalla.
Tässä menetelmässä testausryhmä siirtyy seuraavaan vaiheeseen vasta, kun edellinen vaihe on valmis.
| edut | Haitat |
|---|---|
| Tämä ohjelmistosuunnittelumalli on erittäin helppo suunnitella ja hallita. Näin ollen projekteja, joissa vaatimukset on selkeästi määritelty ja ilmoitettu etukäteen, voidaan helposti testata vesiputousmallilla. | Vesiputousmallissa voit aloittaa seuraavasta vaiheesta vasta, kun edellinen vaihe on valmis. Näin ollen tämä malli ei voi ottaa huomioon odottamattomia tapahtumia ja epävarmuutta. |
| Tämä menetelmä ei sovellu projekteihin, joissa vaatimukset muuttuvat usein. |
Iteratiivinen kehitys
Mikä se on?
Tässä mallissa suuri projekti jaetaan pienempiin osiin, ja jokainen osa altistetaan useille vesiputousmallin iteraatioille. Iteraation lopussa kehitetään uusi moduuli tai parannetaan olemassa olevaa moduulia. Tämä moduuli integroidaan ohjelmistoarkkitehtuuriin ja koko järjestelmä testataan yhdessä.
Mikä on testausmenetelmä?
Heti kun iterointi on valmis, koko järjestelmä testataan. Testauksesta saatu palaute on heti saatavilla ja sisällytetään seuraavaan sykliin. Peräkkäisessä iteraatiossa tarvittavaa testausaikaa voidaan lyhentää aiemmista iteraatioista saadun kokemuksen perusteella.
| edut | Haitat |
|---|---|
| Iteratiivisen kehityksen tärkein etu on, että testipalaute on heti saatavilla jokaisen jakson lopussa. | Tämä malli lisää viestinnän yleiskustannuksia merkittävästi, koska jokaisen jakson lopussa on annettava palautetta suorituksista, vaivannäöstä jne. |
Ketterä menetelmä
Mikä se on?
Perinteiset ohjelmistokehitysmenetelmät toimivat sillä oletuksella, että ohjelmistovaatimukset pysyvät vakioina koko projektin ajan. Mutta monimutkaisuuden lisääntyessä vaatimukset muuttuvat ja kehittyvät jatkuvasti. Joskus asiakas itse ei ole varma mitä haluaa. Vaikka iteratiivinen malli käsittelee tätä ongelmaa, se perustuu silti vesiputousmalliin.
Agile-metodologiassa ohjelmistoja kehitetään inkrementaalisissa, nopeissa sykleissä. Vuorovaikutus asiakkaiden, kehittäjien ja asiakkaan välillä korostuu prosessien ja työkalujen sijaan. Ketterä metodologia keskittyy muutokseen reagoimiseen laajan suunnittelun sijaan.
Mikä on testausmenetelmä?
Inkrementaalista testausta käytetään ketterissä kehitysmenetelmissä ja siksi jokainen projektin julkaisu testataan perusteellisesti. Tämä varmistaa, että kaikki järjestelmän virheet korjataan ennen seuraavaa julkaisua.
| edut | Haitat |
|---|---|
| Hankkeeseen on mahdollista tehdä muutoksia milloin tahansa vaatimusten mukaisesti. | Jatkuva asiakasvuorovaikutus merkitsee lisäaikapainetta kaikille sidosryhmille, mukaan lukien asiakas itse, ohjelmistokehitys ja testitiimit. |
| Tämä inkrementaalinen testaus minimoi riskit. |
Äärimmäistä ohjelmointia
Mikä se on?
Extreme ohjelmointi on eräänlainen ketterä metodologia, joka uskoo lyhyisiin kehityssykleihin. Projekti on jaettu yksinkertaisiin suunnittelutehtäviin. Ohjelmoijat koodaavat yksinkertaisen ohjelmiston ja palaavat asiakkaalle palautetta varten. RevAsiakkaan pisteet otetaan mukaan ja kehittäjät jatkavat seuraavaan tehtävään.
Äärimmäisissä ohjelmointikehittäjät työskentelevät yleensä pareittain.
Äärimmäinen ohjelmointi käytetään paikoissa, joissa asiakkaiden vaatimukset muuttuvat jatkuvasti.
Mikä on testausmenetelmä?
Extreme ohjelmointi seuraa testilähtöistä kehitystä, joka kuvataan seuraavasti:
- Lisää Testitapaus testipakettiin uuden, vielä kehittämättä olevan toiminnallisuuden varmentamiseksi
- Suorita kaikki testit ja ilmeisesti uuden lisätyn testitapauksen täytyy epäonnistua, koska toiminnallisuutta ei ole vielä koodattu
- Kirjoita koodia ominaisuuden/toiminnallisuuden toteuttamiseksi
- Suorita testipaketti uudelleen. Tällä kertaa uuden testitapauksen pitäisi mennä läpi, koska toiminnallisesti on koodattu
| edut | Haitat |
|---|---|
| Asiakkaat, joilla on epämääräinen ohjelmistosuunnittelu mielessään, voisivat käyttää äärimmäistä ohjelmointia | Ohjelmistokehitystiimin ja asiakkaiden tapaamiset lisäävät aikavaatimuksia. |
| Jatkuva testaus ja pienten julkaisujen jatkuva integrointi varmistavat, että ohjelmistokoodi toimitetaan laadukkaasti |
V-malli ja spiraalimalli
Useimmissa projekteissa esiintyy kaksi muuta mallia, jotka täydentävät kuvaa, koska kumpikin vastaa vesiputousmallin heikkouteen eri tavalla.
V-malli. Usein todentamiseksi ja validoimiseksi kutsuttu V-malli yhdistää jokaisen kehitysvaiheen vastaavaan testausvaiheeseen, jotka on piirretty V-mallin kahtena haarana. Vaatimukset yhdistyvät hyväksymistestaukseen, korkean tason suunnittelu järjestelmätestaukseen, matalan tason suunnittelu integraatiotestaukseen ja koodaus yksikkötestaukseen. Tämän mallin arvo on siinä, että testisuunnittelu alkaa jokaisen kehitysvaiheen rinnalla eikä koodauksen jälkeen, joten hyväksymistestien kirjoittaja löytää epäselvät vaatimukset jo kuukausia ennen kuin vika ehtii syntyä. Sen heikkous on periytynyt vesiputousmallilta: malli olettaa edelleen vaatimusten olevan vakaita.
Spiraalimalli. Spiraali kietoo iteraation eksplisiittisen riskianalyysin ympärille. Jokainen silmukka sisältää neljä aktiviteettia: tavoitteiden määrittäminen, riskien tunnistaminen ja ratkaiseminen, kehittäminen ja testaaminen sekä seuraavan iteraation suunnittelu. Testaus keskittyy siis sinne, missä riski on suurin, sen sijaan, että se jakautuisi tasaisesti. Se sopii suurille, kalliille ja pitkäkestoisille ohjelmille, kuten ilmailu- ja avaruusteollisuuden tai pankkialan ydinjärjestelmille, joissa myöhäisen havaitsemisen kustannukset ovat vakavat. Pienessä verkkoprojektissa jokaisen silmukan muodollisen riskianalyysin lisäkustannukset ovat harvoin perusteltuja.
Molemmat mallit sijoittuvat vesiputouskurin ja ketterän reagointikyvyn välille, kun julkaisujen tiheys on tärkeämpi kuin kumpikaan. DevOps Testausputki siirtää testauksen jatkuvaan integraatioon, joten jokainen commit varmennetaan automaattisesti.
Mikä ohjelmistomenetelmä valita?
Ohjelmistokehitykseen ja sitä vastaavaan testaukseen on saatavilla useita menetelmiä. Jokainen testaustekniikka ja -metodologia on suunniteltu tiettyä tarkoitusta varten ja niillä on suhteelliset etunsa ja haittansa.
Tietyn menetelmän valinta riippuu monista tekijöistä, kuten projektin luonteesta, asiakkaan vaatimuksista, projektin aikataulusta jne.
Testauksen näkökulmasta jotkin menetelmät vaativat testaussyötteen varhaisessa kehitysvaiheessa, kun taas toiset odottavat, kunnes järjestelmän toimiva malli on valmis.
Miten ohjelmiston testausmenetelmät asetetaan?
Ohjelmistojen testausmenetelmiä ei pidä perustaa vain ohjelmistokoodin testaamisen vuoksi. Kokonaisuutta tulee harkita ja testausmetodologiaan tulee tyydyttää projektin päätavoite. Katso tämä hyvämaineisten luettelo ohjelmistojen testauspalveluntarjoajat jotka voivat auttaa sinua luomaan tehokkaita testausstrategioita, jotka on räätälöity projektisi tavoitteisiin.
Ajoitus
Realistinen aikataulutus on avain onnistuneen testausmetodologian käyttöönotossa ja aikataulun tulee vastata jokaisen tiimin jäsenen tarpeita.
Määritellyt suoritukset
Jotta kaikki ryhmän jäsenet pysyisivät samalla sivulla, tulee tarjota tarkasti määritellyt suoritukset. Suoritteiden tulee sisältää suoraa sisältöä ilman epäselvyyttä.
Testaustapa
Kun aikataulu on valmis ja määritellyt suoritteet ovat saatavilla, testaustiimin pitäisi pystyä muotoilemaan oikea testaustapa. Määritelmäasiakirjoissa ja kehittäjätapaamisissa tulee kertoa tiimille parhaasta testimenetelmästä, jota projektissa voidaan käyttää.
Raportointi
Läpinäkyvää raportointia on erittäin vaikea saavuttaa, mutta tämä vaihe määrittää projektissa käytetyn testaustavan tehokkuuden.





