XUnit

xUnit on yleisnimitys yksikkötestien "tuoteperheelle", eli yksikkötestauskehyksille. Se on kehittynyt Kent Beckin 1998 vuonna suunnittelemasta SUnitista. Javan ja C#:n kaltainen strukturoitu olio-tyylillä kirjoitettu SUnit on luotu tarkastamaan Smalltalk-ohjelmointikieltä. Kent Back ja Erich Gamma siirsivät SUnit yksikkötestauskehyksen Java:lle ja se sai nopeasti suuren suosion. Tästä suosiosta johtuen samaa testauskehystä alettiin nopeasti kehittämään myös muille kielille. Kehyksien nimet juonnetaan sanasta SUnit korvaamalla "S" yleensä ohjelmointikielen ensimmäisellä tai ensimmäisillä kirjaimilla. Tämä kehysmalli tunnetaan nykyään nimellä xUnit. 

Nykypäivänä xUnit on ilmainen avoimen lähdekoodin testaustyökalu useille erilaisille ohjelmointikielille. 

 xUnit testausfilosofia 
Kaikki xUnit- kehykset jakavat samanlaisen testausfilosofian ja arkkitehtuuripohjan. Unit-kehyksen suunnittelu on lähtenyt ajatuksesta, että testit eivät olisi käyttöliittymäpohjaisia vaan ne toteutettaisiin ohjelmakoodauksen ohessa, jolloin koodarien ja testaajien olisi helpompi ymmärtää ja havaita koodista löytyneet virheet. Tämän testaustavan huono puoli on se, että testaajien tulee ymmärtää ja kyetä kirjoittamaan yksinkertaisia ohjelmakoodirivejä. xUnitin pohjalla olevan SUnitin testausfilosofia voidaan jakaa neljään osa-alueeseen: 

 Viat ja virheet 
xUnit kehys testaa viat ja virheet. Kun kirjoitat testejä, voit tarkastaa niiden perusteella odotettuja tuloksia. Jos tulos ei ole odotettu, testiä ei läpäisty. Testausfilosofian mukaan virhe on katastrofaalisempi silloin kun sitä ei ole tarkastettu.

 Yksikkötestaus 
Testausfilosofiassa suositellaan, että kehittäjät kirjoittaisivat itse oman kehitysalueensa yksikkötestit, yhden testiluokan aina jokaista kirjoitettua luokkaa kohti. Luokkaan on mahdollista lisätä useampia samaa luokkaa koskevia testejä. Kehittäjien tulisi käyttää noin 25-50 prosenttia työajastaan testitapauksien kirjoittamiseen.

 Integraatiotestaus 
Filosofian mukaan riippumattoman testaajan tulisi kirjoittaa integraatiotestit ja filosofiassa painotetaan, että integraatiotestaus on tärkeää.

 Testien suoritus 
Viimeinen filosofian kohta on testien suorittaminen. Testausfilosofiassa painotetaan sitä, että jokaista testiä varten olisi hyvä luoda joka kerta oma testidata. Tällä suljetaan pois toisessa testissä testidataan joutuneet virheet. Tällöin virheet eivät kertaannu testeissä ja on helpompi saada kiinni siitä, mikä on ohjelman ongelmakohta.

 xUnit ohjelmakehyksiä 
 CUnit (C-kieli)
 CppUnit (C++)
 DUnit (D-kieli)
 HUnit (Haskell)
 JUnit (Java)
 PHPUnit (PHP)
 PyUnit (Python)
 SUnit (SmallTalk)

 Lähteet 

Luokka:Ohjelmiston testaaminen