Veľa sme hovorili o písaní testov pre váš WordPress kód, ale jedna vec, ktorej sme sa ešte nedotkli, je dôvod, prečo by ste na ich písanie mali minúť čas a peniaze navyše. Ak ste manažér alebo vlastník firmy, prečo by vaši vývojári mali dodávať funkcie o niečo pomalšie, keďže písanie testov im zaberá čas?
Testovanie ako investícia
Dnes sa budeme zaoberať otázkou manažmentu – aký je obchodný prípad testovania vášho kódu? Chcem, aby ste sa na testovacie postupy začali pozerať ako na investíciu a nie ako výdavok pre vašu firmu.
Znížte regresie
Ako veľmi sa vám páči, keď sa vám stránka pokazí? Ak ste ako ja, nenávidíte to. Stavím sa, že v určitom bode sa čudujete, ako preboha váš vývojár mohol rozbiť stránku. Musia byť hrozné…že?
Nesprávne.
Sú to len ľudia ako vy a robia chyby.
Dobré testovacie stratégie môžu zabrániť rozbitiu vašich projektov. Keď píšete kód a spúšťate testy, dobrý testovací balík vám ukáže, keď sa niečo pokazí. Potom to môžete hneď napraviť, keď máte dielo v hlave čerstvé.
Dobré testovanie môže tiež znížiť ladenie pri odstraňovaní problémov. Namiesto premýšľania, kde sa preboha v kóde deje problém, vám neúspešný test môže ukázať, kde presne musíte hľadať.
V tých časoch nájdete staré chyby, ktoré porušujú veci. Napísanie testu na zachytenie tohto scenára znamená, že v budúcnosti sa kód nezlomí rovnakým spôsobom. Už žiadne naháňanie sa za chybou a myslením, že ste to už opravili. Dobré testy vám povedia, že chyba je stlačená.
Nasadenia sú jednoduchšie
Boli časy, keď som vo štvrtok alebo v piatok odmietal nasadzovať klientske stránky, pretože som nechcel pracovať cez víkendy. Tento problém vyriešili dve veci. Po prvé, opakovateľný proces nasadenia mi dal vedieť, že som nemohol veci pokaziť nejakou hlúpou chybou FTP. Po druhé, písanie testov mi dalo vedieť, že môj kód neovplyvnil nič iné na stránkach mojich klientov, ktoré potrebovali fungovať.
Teraz ma nájdete nasadzovať kód mnohokrát každý deň, dokonca aj v piatok popoludní.
Pre klientov to znamená, že nemusia čakať do pondelka na vydanie funkcie, ak ju schválime vo štvrtok. Moji klienti sú šťastnejší, pretože funkcie môžem dodať hneď, ako budú pripravené.
Zmeny sú jednoduchšie
Pracovali ste niekedy na projekte, kde časť kódu bola čierna skrinka, o ktorej vedel jeden človek, ale kto tam už nepracoval? Bojíte sa, že ak čo i len pomyslíte na dotyk tohto kódu, prebudíte Krakena a stratíte mesiac života, keď budete zápasiť s mytologickým zvieraťom späť do podriadenosti.
Dobré testovanie tomu zabráni.
Keď máte dobré testovacie pokrytie, ktokoľvek môže vymeniť časť vášho systému a pracovať na ňom. Keď na kóde vo vašom projekte môže pracovať ktokoľvek, znížili ste riziko pre vašu firmu, pretože nie ste odkázaní na jediného vývojára, ktorý dokáže spravovať Kraken.
To sa vzťahuje aj na zmenu veľkých častí vášho systému, ako je databáza, ktorú sa rozhodnete použiť. Ak máte napísaný dobrý testovací balík, môžete vrstvy svojej aplikácie meniť nezávisle a vedieť, že budú stále správne interagovať, pretože vaše testy prejdú.
Užšie slučky spätnej väzby vývojára
Je oveľa jednoduchšie opraviť problémy, ktoré sa práve vytvorili. Curtis pred 6 mesiacmi musel mať tušenie, čo robí, pretože som ten kód videl a nemal som tušenie, čo sa deje. Písanie slušných testov môže zabrániť tomu, aby sa to stalo, pretože tieto chyby nájdete pri písaní kódu namiesto toho, aby ste na ne narazili o mesiace neskôr. Namiesto toho, aby ste sa snažili nájsť rovnaký priestor mysle, v ktorom ste boli pred mesiacmi, sedíte v kóde, plne mu rozumiete a ste pripravení vyriešiť všetky problémy, ktoré sa objavia.
Jediná vec, ktorej vývojári píšu menej, je dokumentácia
Počas svojej kariéry som si prezrel veľa kódu a strávil som veľa času snahou zistiť, čo sa preboha deje s niektorými webovými stránkami, na ktorých pracujem. Ak existuje niečo, čo vývojári píšu menej ako testy, bola by to dobrá dokumentácia. Určite mnohí hovoria, že je to dôležité, ale len veľmi málo z nich píše vôbec nejakú dokumentáciu.
Aj keď by som rád povedal, že potrebujete napísať testy aj dokumentáciu, uspokojil by som sa s testami, pretože fungujú ako dokumentácia.
Keď prevezmem projekt s testami, môžem ľahko skočiť do projektu a začať písať kód bez hodín strávených snahou zistiť, čo sa deje. Viem, že keď niečo pokazím, testy by mi mali povedať, že som niečo porušil. Ak neskôr zistím problém, pridám ho do testov a pridám tak do dokumentácie, ako by mal kód fungovať.
Testy uľahčia každému vývojárovi získať váš projekt bez toho, aby ste sa museli obávať, že sa všetko pokazí, pretože to neboli tí, ktorí na ňom pracovali od začiatku.
Vylepšená povesť
Reputácia vašej firmy je všetko. Ak máte povesť odosielateľa dobrej práce na čas, ktorý sa nepokazí, dostanete viac práce. Testovanie vám môže pomôcť vybudovať si túto reputáciu.
Namiesto lámania kódu pri „opravovaní“ vecí uvidíte neúspešný test a opravíte ho skôr, ako klient zistí, že došlo k problému. Spokojní klienti odporúčajú nových klientov, z ktorých sa zase môžu stať šťastní klienti.
Keď ustúpite a premýšľate o tom, vašou úlohou nie je jednoducho písať kód pre zákazníkov. Vašou úlohou je napísať kód, ktorý bude spĺňať potreby zákazníkov. Keď do svojho pracovného postupu pridáte testovacie postupy, budete to môcť lepšie realizovať.
Váš kód sa bude menej lámať. Pracovné funkcie budete môcť odosielať častejšie.
Vaši zákazníci budú šťastnejší, keď im budete lepšie slúžiť.
Prestaňte sa ospravedlňovať a použite testovacie postupy, aby ste svojim zákazníkom poskytli lepšie služby.