F.I.R.S.T. szabály
A jó tesztek az alábbi öt jellemzővel rendelkeznek:
Fast: A teszteknek gyorsan kell lefutniuk, mert lassú teszteket nem szívesen futtatunk gyakran, így nem találjuk meg elég hamar a hibákat ahhoz, hogy könnyen javíthassuk őket. Emiatt nem merjük a kódot refoctorizálni, tisztítani, ami a kód minőségének romlásához vezet.
Independent: A tesztek nem támaszkodhatnak egymásra, nem élhetünk feltételezésekkel a következő teszt számára. Szabadon kiválasztott vizsgálatok önállóan is futtathatóaknak kell lenniük, bármilyen sorrendben. Az egymásra támaszkodó tesztek esetén, ha az első kudarcot vall, magával rántja a többit is, ami megnehezíti a hiba okának megkeresését és elrejtheti a sorban következő hibákat.
Repeatable: A teszteknek bármely környezetben megismételhetőnek kell lennie: képesnek kell lenniük a futásra mind az éles környezetben, mind a fejlesztői gépünkön, ahogy a laptopunkon is, miközben hálózat és internet nélkül utazunk.
Self-validation: A teszteknek logikai eredményt kell adniuk: siker vagy kudarc. Nem szabad, hogy naplófájlt kelljen végigolvasnunk, szöveges fájlokat kelljen összehasonlítanunk ahhoz, hogy megmondhassuk a teszt sikerrel járt-e. Az ilyen tesztek nem egyértelműek így a kudarc viszonylagossá válik és hosszas értékelést vonhat maga után.
Timely: A teszteket a megfelelő időben kell megírni, közvetlenül az előtt az üzemi kód előtt amelynek teljesíteni kell őket. Ha a teszteket az üzemi kód elkészítése után írjuk, akkor előfordulhat hogy a kódot nehezen lehet majd ellenőrizni és esetleg nem is úgy terveztük meg a kódot, hogy tesztelhető legyen.
forrás: Robert C. Martin: Clean Code, A Handbook of Agile Software Craftmanship
