Koje klasične knjige treba da pročita inženjer za razvoj testova?
Ulazak u posao softverskog testiranja je lak, ali je napredovanje teško. Od početnika u testiranju do menadžera za testiranje i direktorskog nivoa, potrebno je preći dugačak put nadogradnje tehničkog steka i odgovoriti na veoma visoke zahteve u pogledu opštih sposobnosti.
Veliki majstori međusobno liče: imaju čvrste osnove metodologije testiranja, duboko razumeju poslovnu logiku, koriste napredne tehničke alate, samostalno razvijaju prilagođene servise, poseduju visoku emocionalnu inteligenciju i vešti su u komunikaciji i prezentaciji, razumeju menadžment i sposobni su da vode projekte i timove.
U toku odrastanja, crpljenje sadržaja iz dobrih klasičnih knjiga jedan je od ključnih načina unapređenja veština.
Teorija i praksa testiranja
• „Iskustvo i pouke iz softverskog testiranja"
Ako smem da preporučim samo jednu knjigu, preporučujem ovu. Sastoji se od mnogo naizgled rasturenih malih saznanja, ali svaka reč je dragocena. Za onoga ko je stvarno radio testiranje dve do dvadeset godina, svaka stavka u njoj, poređena sa sopstvenim radom, izaziva ili saosećajnost ili „pa tako je!" osećaj. Što je radno iskustvo veće, utisak je dublji; to je knjiga koja se uvek čita kao nova i koja te može stalno voditi. U izvesnom smislu, ona testera uči „kritičkom mišljenju" — a to je najvažnije bogatstvo.
• „Efektivno softversko testiranje: 50 saveta za podizanje nivoa testiranja"
Poput „Iskustva i pouka iz softverskog testiranja", i ovo je knjiga sažetka sa vrlo jakom praktičnom stranom; mislim da se i ona može svrstati u klasike. Pri čitanju preporučujem da stavku po stavku poredite sa svojim radom — sigurno ćete steći dubok utisak. (Neke poglede u njoj možda nećete deliti, ali ako vas podstakne na razmišljanje — to je već dobro.)
• „Osnovni udžbenik softverskog testiranja"
Ako u struci niste dugo i želite da iz osnova dopunite teoriju testiranja, ova knjiga je nesumnjivo prilično odgovarajući udžbenik. Pročitao sam mnogo knjiga, a ISTQB serija i dalje je jedna od naj sistematskijih i po sadržaju najboljih.
• „Google-ov način testiranja: kako se softver testira kao u Google-u"
Google-ov majstor James A. Whittaker deli praktično iskustvo u testiranju; obavezna klasična literatura za proširenje vidika i podizanje nivoa, koja je izazvala mnogo pažnje i rasprava.
• „Istražujte! Duboko razumevanje eksploratornog softverskog testiranja"
Retka dobra knjiga o testiranju iz poslednjih godina. Definicija, uloga, ograničenja i način sprovođenja eksploratornog softverskog testiranja u njoj možda su i najbolji. Čak i ako se ne bavite čistim ET-om (eksploratornim testiranjem), mnogo toga iz ove knjige može vam neposredno pomoći da podignete kvalitet testiranja. Toplo preporučujem.
• „Specifikacija putem primera: kako timovi isporučuju pravi softver"
Vredi da je pročita svaki tester (trebalo bi preporučiti svim članovima tima); sigurno ćete se oduševiti i reći: „Divno! Tako treba!" Najviši domet knjige je idealan „živi sistem dokumentacije", što je u praksi teško potpuno ostvariti, ali svaki delimično ostvareni deo diže efekat testiranja i pomera tim dalje od neuspeha.
Poslednjih godina mnogi timovi uveliko prelaze na agilan pristup, pa će mnogi testeri raditi u agilnom timu. Uvođenje agilnosti na ljude u softveru ostavlja prilično snažan utisak, pa smo u tom procesu čuli različite glasove. „Scrum elementi" kroz niz kratkih priča prikazuje kako radi agilni tim — veoma praktično, vredi pročitati.
• „Piratska analiza testiranja: MFQ i PPDCS"
Knjiga iskusne kineske stručnjakinje za testiranje, nastavnice Tai Xiaomei, o razmišljanju u testiranju; znanja iz nje zapravo su slaba tačka mnogih kineskih testera. Preporučujem čitanje.
Testiranje performansi
• „Vrhunac performansi: uvid u sistem, preduzeće i oblak"
Ova knjiga zapravo nije namenjena isključivo testerima. Ali ako želite da dobro radite testiranje performansi, toplo je preporučujem. Ako uspete da je celu razumete (a za to treba izvesne snage), testiranje performansi će vam biti dečija igra.
• „Umetnost testiranja performansi aplikacija"
• „Detaljno objašnjenje procesa testiranja performansi softvera uz analizu slučajeva"
Od ove dve knjige, jedna je strani autor, a drugu je napisao kineski autor Duan Nian. One uglavnom govore kako se radi testiranje performansi, zašto baš tako, koje su merilne norme, sa dobrim primerima. Ako se zaista bavite testiranjem performansi, obavezno pročitajte obe, jer one govore o metodologiji — a bez metodološkog vodiča nećete znati kako da modelujete, kako da osmislite scenarije, kako da ocenite rezultate testiranja.
Pored toga, kad u testiranju performansi odete dublje, zapravo možete čitati i srodne razvojne knjige — npr. knjige o arhitekturi, o upravljanju i optimizaciji baza podataka, optimizaciji JVM-a, upravljanju i optimizaciji veb servera, projektovanju i optimizaciji programa visokih performansi i sl. Što dublje razumete ono što se testira, to dublje može ići testiranje performansi. Knjige iz te oblasti možete sami naći prema ključnim rečima.
Sigurnosno testiranje
• „Praktični vodič kroz penetration testiranje: alati i metode koje morate znati"
Najbolja knjiga za ulaz u penetration testiranje; istovremeno služi i kao mapa područja — preko nje se otvaraju vrata sigurnosnog testiranja.
Automatizovano testiranje
• „Najbolje prakse u automatizovanom testiranju"
Ovo je knjiga zasnovana na primerima. Sadrži desetine primera, od kojih polovina ima veliku referentnu vrednost.
Da bi automatizacija bila dobra, potrebna su najmanje 4 elementa: odgovarajuća tehnologija, odgovarajuća strategija, odgovarajući tim i odgovarajući trenutak. Tehnologija u uspehu automatizacije čini najviše četvrtinu.
U knjizi se govori o mnogo čemu izvan same tehnologije. Oni koji zaista sprovode automatizaciju sigurno će imati mnogo utisaka. Ako ste početnik, predlažem da je kupite i ostavite sa strane, pa da se vratite njoj nakon jednog-dva neuspela projekta (bez vrlo dobrog inženjera koji vas vodi i bez dobrog tima, prva implementacija obično neizbežno propada). Pored toga, i u „Lepoti testiranja" ima nekoliko poglavlja sa primerima iz automatizovanog testiranja — vredi pogledati.
Programski jezici i razvojne veštine
Inženjeri za razvoj testova najčešće koriste Java i Python. Evo nekoliko klasičnih naslova za ulaz i napredni nivo, kao i dobrih knjiga o algoritmima, osnovama Linux-a, SQL-u, regularnim izrazima, MySQL bazi i najpopularnijem Spring okviru — klasici, nema šta da se dodaje.
• „Effective Java (3. izdanje)" • „Java - razmišljanje o programiranju (4. izdanje)" • „Python - suštinsko programiranje (3. izdanje)" • „Tečan Python" • „Algoritmi (4. izdanje)" • „Linux privatne beleške gospodina Ptice (Niao Ge)" • „SQL - šta morate znati" • „Regularni izrazi - šta morate znati" • „MySQL visokih performansi" • „Spring - otkriveno"
Mikroservisi, DevOps, kontinuirana isporuka
Sa širenjem mikroservisa i DevOps-a, koncepti kontinuirane integracije i kontinuirane isporuke sve više prihvataju razvojni timovi; dobro testiranje važan je temelj na kome se zaista ostvaruje kontinuirana isporuka, i to je znanje koje bi svaki tester trebalo da usvoji (makar na nivou pojma, i uz mogućnost da „odradiš svoj deo").
Preporučujem nekoliko klasičnih knjiga; informacija je mnogo, i za one koji inače rade samo sistemsko testiranje mogu biti teške, ali savetujem da ih „zagrizete" i postepeno svarite određena znanja; pri čitanju se više savetujte sa programerima, SQA, proizvodnim ljudima i ljudima iz održavanja.
• „Dizajn mikroservisa" • „DevOps - praktični vodič" • „Kontinuirana isporuka 1.0: sistematski pristup pouzdanom izdavanju softvera" • „Kontinuirana isporuka 2.0: suština DevOps-a vođena biznisom"
Softversko inženjerstvo
Dela majstora; vredi da ih prouči svaki programer sa ambicijom — klasici, nema šta da se dodaje.
• „Psihologija razvoja softvera" • „Head First - obrasci dizajna" • „Čist kôd" • „Čista arhitektura" • „Refaktorisanje: poboljšanje dizajna postojećeg koda" • „Mit o čovek-mesecu"
Opšte meke veštine
Meke veštine programera izvan same tehnike možda su ključ koji određuje sreću u poslu i životu — uključujući telesno zdravlje, zrelu narav, sposobnost rada u timu, dobar način i veštinu komunikacije, navike efikasnog rada, sposobnost planiranja karijere i sl. Klasici, nema šta da se dodaje — preporučujem čitanje.
• „Vodič za zdravlje programera" • „Meke veštine - vodič za život izvan koda" • „7 navika visokoefikasnih ljudi" • „Princip piramide" • „Naučite da postavljate pitanja" • „Nenasilna komunikacija"
Menadžerske veštine
Prelaz sa tehnike na menadžment ozbiljan je izazov — i način razmišljanja i menadžerske veštine zahtevaju namernu vežbu. Preporučujem nekoliko dobrih knjiga — klasici, nema šta da se dodaje.
Pored čitanja knjiga o menadžmentu, predlažem i da upoređujete i razmišljate o internoj organizacionoj kulturi i menadžment procesima velikih kompanija — sigurno će doneti nove podsticaje i spoznaje.
• „Pobeda" • „Grove: prva lekcija za menadžere" • „Da li ti svetli lampica? Otkrivanje pravog problema" • „Upravljanje timom: pouke iz uspeha i neuspeha" • „Timske uloge: primena na radu"
Na kraju, najvažnije: knjizi verovati slepo — gore je nego uopšte ne čitati. Najvažnije je imati kritičko mišljenje i sposobnost samostalnog rasuđivanja.
Često sama knjiga ne može rešiti konkretan problem; samo uzajamno prožimanje čitanja i radne prakse daje vrednost. Ali najveća uloga knjige jeste da te podstakne!
Preuzeto sa: https://mp.weixin.qq.com/s/XpKaR0r-wqcHhXYcCFmPQA, izvor: Hogwarts institut za testiranje, obradio: Chenmo Wang Er
