Pēteris Caune
 
[Most Recent Entries] [Calendar View] [Friends View]

Thursday, February 19th, 2009

    Time Event
    9:20p
    Par testiem

    Pēdējos laikos man ir bijusi privilēģija un iespēja rakstīt testus pirms koda. Un ir tīri labi iegājies un patīk. Šķiet, nozīmīgākā lieta manā programmētāja izaugsmē kopš OOP atklāsmes.

    “Privilēģija”, jo var būt dažādi iemesli, kāpēc testu rakstīšanu piekopt būtu neērti. Man uzreiz prātā nāk divi:

    • Jādarbojas ar vecu kodu, kas sapiņķerēts tā, ka atsevišķas daļas grūti atsevišķi notestēt. Vai vēl trakāk, neviens īsti nezin, kā tām vispār pareizi jāstrādā.
    • Nav infrastruktūras. Ja izstrādes vide ir jauna un nenobriedusi, tad var gadīties testēšanas ērtībām vajadzīgas lietas rakstīt pašam. Bet tam nav laika, jo slinkums un “daudz darba”.

    Nu ja, bet man ir sanācis trāpīt ideālā situācijā, testi rakstās viegli.
    Kā es daru:

    • Pirms rakstīt jaunu koda gabaliņu, rakstu testu, kas šo gabaliņu pārbauda.
    • Pirms labot kļūdu, rakstu testu, kas šo kļūdu demonstrē (izgāžas), tad salaboju kļūdu.
    • Tests pārbauda man vajadzīgo funkcionalitāti nevis implementācijas sīkumus. Implementācijas ir tikai tik daudz, lai tests izpildītos.

    Šis ir plāns standartsituācijām, vienmēr jau tā nevar. Un vispār, dzelžaini priekšraksti, tāpat kā dzelžaini uzskati, ir bīstami.

    Katram sīkumam rakstīt testu ir ilgāk, nekā veicīgi uzrakstīt un iet mājās. Bet, lūk, labumi:

    • Kā uzrakstīt testu, ja tu nemaz nezini, ko testēt, kā tavs veidojums strādās? Nuja, nākas izdomāt, uzkonstruēt iepriekš, galvā vai uz papīra. Nevis uzreiz bliezt un pēcāk izmest un pārrakstīt. Testa rakstīšanas laikā arī var sanākt atcerēties kādu apsvērumu, par kuru aizmirsts.
    • Var taisīt lielas un drosmīgas izmaiņas un beigās, pēc testu izdarbināšanas, tomēr ir kāda pārliecība, ka gala rezultāts vēl strādā.
    • Tests ir atkļūdošanas palīgs: labojot kļūdu un pārbaudot, vai ir salabota, testu izdarbināt parasti ir ātrāk, nekā manuāli mēģināt kļūdu atkal izprovocēt.
    • Vienkārši patīkama sajūta un lielāka pārliecība, ka veidojums strādā. Pilnīgi droša garantija, protams, nav, bet labāk kā nekas.

    Šeit viena saite, kas jauki demonstrē domu gājienu rakstot testus pirms koda / reizē ar kodu: An Extreme Programming Episode
    Automātiski darbināmi testi droši vien nav universālais glābiņš, un gan jau ar laiku būs izdomāts kas progresīvāks, bet šobrīd man patīk!

    << Previous Day 2009/02/19
    [Calendar]
    Next Day >>

Paviānu štelles   About Sviesta Ciba