Okei …. joten tämä ajaa minua mutteiksi, kun yritän kannustaa tiimiä kirjoittamaan lisää testejä, mutta tässä olen ei voida määrittää, pidetäänkö seuraavaa esimerkkiä integraationa vai toiminnallisena testitapauksena.
Harkitse seuraavaa:
Meillä on yksinkertainen verkkosovellus, joka reitittää / paljastaa useita JSON-syötteitä Jokainen käyttäjäpyyntö vaatii, että sovelluksemme kysyy ulkoista palvelua HTTP: n kautta (taustalla), ennen kuin suoritamme tietomuutoksia ja palautamme sitten sarjoitetun JSON-vastauksen.
Kolmannen osapuolen kirjastoa käyttämällä voimme tallenna jokainen ainutlaatuinen HTTP-vuorovaikutus, joka tapahtuu taustalla, ja kirjoita se tiedostojärjestelmään. Nämä tallenteet ”toistetaan”, jolloin näitä kyselytuloksia voidaan käsitellä deterministisinä testauksen aikana.
Testitapaus sisältää yhden väitteen. Se on vain merkkijono, joka sisältää odotetun JSON-vastauksen yhdelle syötteelle. Kun olemme alustaneet sovelluksemme, sallimme sen reitittää pyynnön ennen vastauksen kaappaamista ja vertaamista odotettuun JSON: iin.
1) Onko tämä toiminnallinen testi vai integraatiotesti?
2) Jos toiminnallinen, mikä on ero Big Bang Integration -testauksen ja toiminnallisen testauksen välillä?
Vastaa
1) Onko tämä toiminnallinen testi vai integraatiotesti?
Toiminnallinen testaus ja integraatiotestaus ovat testien luokituksia, eivätkä ne sulje pois toisiaan.
Tässä tapauksessa se on molempia. Integraatiotestit ovat määritelmän mukaan mitä tahansa testiä, jossa testataan useampaa kuin yhtä komponenttia. Se voi olla matala taso kahden yhdessä toimivan luokan testaamiseksi, tai se voi olla testejä, jotka testaavat koko järjestelmää kokonaisuutena.
Toiminnalliset testit ovat testejä, jotka vahvistavat tietyn järjestelmän toiminnan. Joten jos minulla on vaatimus ” järjestelmän on pysyttävä käyttäjien objektina tietokannassa ”, toiminnallinen testi voi varmistaa tämän vaatimuksen käynnistämällä järjestelmän, tallentamalla käyttäjän, pysäyttämällä järjestelmän, käynnistämällä sen uudelleen ja varmistamalla, että käyttäjä on olemassa eikä ole muuttunut.
Jos kirjoitat uudelleen Testaustapauksia vaatimusmäärittelystä tai käyttäjäkertomuksista kutsun testitapauksiksi ”toiminnallisiksi testeiksi”, mutta ne luokitellaan luonteeltaan myös integraatiotesteiksi.
2) Jos se toimii, niin mitä eroa on ”Big Bang Integration Testingin ja Functional Testingin” välillä?
Ymmärrykseni mukaan ”big bang” integraatiotestaus ”on integraatiotestaus, jossa kaikki järjestelmän osat integroidaan ja testataan sitten. Tämän testin tavoitteena on varmistaa, että kaikki komponentit integroituvat oikein ja että sovellus voidaan käynnistää. Tämäntyyppisen testauksen haittapuoli on, että testitapauksen epäonnistuminen antaa hyvin vähän ohjeita virheen sijaintiin, joten on tärkeää, että sinulla on myös alemman tason integraatiotestit.
Toimintatestisi integroi luultavasti myös kaikki komponentit järjestelmään ennen testausta. Mutta vaikka big bang -integraation testaus voi näyttää samanlaiselta, koska koko järjestelmä on käynnissä, ne ovat käsitteellisesti erilaisia.