Što radi softverski tester? Tester je više od profesije. Potrebne osobne kvalitete

Tijekom rada na području testiranja stvorio sam svoje, posebno mišljenje o ovom području, počevši od pozicije junior testera do voditelja odjela testiranja (test manager). I, općenito, ovo je mišljenje prilično kritično s udjelom ljubavi i obožavanja ove divne profesije.

Kao uvod

Nikad nisam namjeravao postati tester - više me zanimao razvoj. Od škole sam pisao programe koje su već testirali moji kolege, a potom i moji kolege iz razreda: zanimalo me rješavanje problema i oživljavanje stvari, a bavio sam se problemima i greškama koje su nastajale nakon što su mi ih korisnici prijavili. Verziji sam dodijelio sporednu cifru i... iu nekakvoj ravnoteži između funkcionalnosti i kvalitete, program je ostao zauvijek, ustupivši mjesto novim projektima i programima.

Gledajući unaprijed, reći ću da dio ovoga leži u Ključ uspješnog upravljanja projektom je pronalaženje ravnoteže između troškova razvoja proizvoda i kvalitete proizvoda. Bilo koji proizvod sličan je biološkom organizmu, u čijem formiranju izravno ili neizravno sudjeluje ne jedna osoba, već mnogi. U formiranju dobrog proizvoda moraju sudjelovati svi dionici, a svaki od njih mora dati značajan doprinos zajedničkoj stvari. Ali, na moje iznenađenje, testeri zauzimaju posebnu nišu u tom pogledu: prvo, oni su poveznica u procesu, a drugo, oni su jedini inženjeri koji imaju pravo veta na puštanje verzije proizvoda.

Sve sam to naučio na svom prvom poslu testera s neutaživim developerskim ambicijama. Prije svega, bio sam fasciniran mogućnošću pristupa upravljanju proizvodima, moći koju zapravo nisam očekivao. Bilo je super, nešto posebno, iznad pisanja samo još jedna funkcionalnost. Drugo, testeri, zbog prirode svoje profesije, bolje razumiju procese i ciljeve proizvoda, te djelomično prenose poslovne ciljeve programerima, a rezultate programera menadžerima. Nažalost, u svijetu, a posebno u Rusiji, ideja o ulozi ispitivača vrlo je kaotična, a njezina važnost uvelike se podcjenjuje. A one tvrtke koje su još uvijek u trendu nastoje razviti područja testiranja i upravljanja kvalitetom, iako postavljaju pomalo pretjerane ciljeve: “pronaći sve greške, svesti troškove razvoja testiranjem na minimum.”

Ovaj članak, prvenstveno napisan na temelju razgovora s raznim tvrtkama, suština je odgovora na njihova pitanja. Drugo, namijenjeno je testerima početnicima i onima koji žele naučiti više o testiranju iz interne perspektive. Treće, temelji se isključivo na mom (subjektivnom) iskustvu.

Teza #1: Tester nije majmun

Android SDK uključuje prekrasan alat pod nazivom MonkeyRunner, koji vam omogućuje automatizaciju procesa testiranja Android aplikacija, idealno bez izvornog koda, bez posebnog znanja o programskim jezicima (dovoljno je samo opće razumijevanje skriptnih jezika) i, što je najvažnije, simulirati ponašanje stvarnog korisnika. Rezultat je neka vrsta skriptnog majmuna koji bocka, tipka i čita aplikaciju. Najbolja stvar je što možete "outsourcati" stroj. Za mene je ovo razumijevanje testiranja standard za tečaj. Ali, na moje iznenađenje, kada sam prvi put nakon prve pozicije testera tražio posao, pokazalo se da na tržištu postoji (i još postoji!) čudna podjela na "ručno" i "automatizirano" testeri, štoviše, ljestvica. Ocjene su toliko izmiješane i razvučene da ste zapanjeni. Da ne spominjemo činjenicu da od tvrtke do tvrtke iste pozicije podrazumijevaju različite radne odgovornosti, to se posebno odnosi na više pozicije.

Moje radne obveze uključivale su: pisanje dizajna testova, testnih slučajeva, strategija testiranja (ako je to projekt koji mi je dodijeljen), prijavu grešaka, pregled dokumenata i izradu testne dokumentacije. Za mene je to bilo normalno, iako je bilo pomalo iznenađujuće da su te odgovornosti podijeljene među zapadnim kolegama. Na tržištu se pokazalo da je prilično uobičajeno da se dizajn napiše pomoću CTE/UML (u najboljem slučaju) Test Lead/Senior Tester/Test Designer. Testni slučajevi (različite strategije graničnog testiranja, testiranje sučelja, testiranje opterećenja, slučajevi na stolovima) - stariji testeri. I na kraju, tu su niže pozicije "izvođača" - Tester. U nekim tvrtkama i odjelima njihov broj može doseći 20 ili više ljudi! Drugim riječima, osoblje projekta uključivalo je u najboljem slučaju majmune koji su imali vještine korištenja računala i neke vrste proizvoda.

Zapravo, ovo je... pomalo pogrešno. Jer tester nije majmun. Ako to nije slučaj, onda ili vi, kao tvrtka, izdajete različite proizvode u kratkom vremenu, bez naknadne podrške i kvalitete, provođenja formalnih testova dima, ili je, vjerojatnije, vaš menadžer/arhitekt ovca.


Troškovi automatizacije testiranja ne isplate se odmah.

Za one koji su upoznati s teorijom testiranja (kojih, kao što praksa pokazuje, nema toliko), sasvim je očito da potreba za automatizacijom uvelike ovisi o specifičnostima projekta (njegovo vrijeme, podrška, ponovljivost itd.). U nekim je slučajevima mnogo bolje provoditi dimne testove i korisničko beta testiranje, a ne komplicirati procese: na visokoj i niskoj razini prvi slučaj, unutar projekta, možete definirati uloge i prihvaćanje proizvoda od strane vlasnika proizvoda, u drugom je moguće ograničiti, ako zahtjevi to dopuštaju, na prihvaćanje od strane samih razvojnih inženjera uz izdavanje napomena o izdanju .U slučaju kada je još uvijek potrebno zasebno testiranje, puno je jednostavnije i učinkovitije imati proces za životni ciklus proizvoda i osobu postavljenu od strane menadžmenta ili tima inženjera koji su sposobni samostalno pokriti zadatke implementacije i testiranje proizvoda, dakle ljudi koji a priori poznaju područje, alate i metode, a ne krdo majmuna koji su dodijeljeni programerima ili jednom voditelju projekta.

Primjedba br. 1

Začudo, ova jednostavna teza često se namjerno krši. Na primjer, ovo je dobar način za outsourcing tvrtke da steknu dodatne FTE. U poslovnom smislu jednostavno je isplativije prodati više, nešto što ima nisku cijenu. Prema iskustvu mog rada u Aurigi, gdje su klijentima uz naknadu po satu osigurana odgovarajuća sredstva u broju desetaka ljudi, to nije usamljen slučaj. Štoviše, takav plan dobro pokriva ciljeve zapošljavanja osoblja na projektu za klijenta uz minimalne troškove. Unatoč činjenici da se radno opterećenje voditelja projekta znatno povećava, uz kompetentno upravljanje to može dovesti do stvaranja „HR kovačnice“ kroz projekt, vežući osoblje za tvrtku (obuka i razvoj vještina) po relativno višoj cijeni za kupnju specijalist s tržišta, te naknadna preprodaja, rotacija osoblja za zahtjevnije projekte.

Drugi razlog za ovu strategiju je mogućnost kupnje neciljanog osoblja za klijenta. Dogodilo se da su kadrovski zahtjevi vaših poslodavaca ili klijenata ponekad kratkovidni (o čemu će biti riječi u nastavku), a mogućnost kupnje fiktivnih kadrova je manje skupa za tvrtku (u smislu novca i vremena). Recimo, kupnja ove vrste "majmuna" za projekt s parametrom "20 godina iskustva" (ali možda vrlo osrednji stručnjak). Ovo je posebno istinito u sustavu razreda Junior/Standard/Senior u mnogim tvrtkama, posebno izvan Rusije, gdje su zahtjevi za iskustvom i stvarnost malo drugačiji.

Sljedeći, i po meni glavni razlog su rizici. Postavljanje zadataka na projektu za testiranje pokriva određene funkcionalnosti i akcije. Često se procesi mogu automatizirati, posebice kod redovnih aktivnosti, regresijskih testiranja, odnosno u procesu testiranja stvoriti farmu, proces i infrastrukturu, često skalabilnu, prenosivu i prenosivu na druge proizvode i projekte uz minimalne troškove. Smanjenje "izravnog" rada na projektu za testera dovodi do sljedeće dvije posljedice:

  • Ispitivač postaje ispitivač automatizacije ili dobiva nova područja odgovornosti i novo opterećenje. U tom slučaju njegova tržišna cijena i potražnja za njim rastu, što uzrokuje rizik njegovog odlaska ili povećanja zahtjeva za plaćom, a to može biti veliki problem unutar jednog projekta i nemogućnost skaliranja i rotacije u tvrtki.
  • Rizik prijenosa sustava na stranu korisnika ili vanjskih izvođača. U slučaju vanjske tvrtke, to je rizik od gubitka FTE-a sve do gubitka projekta. Takvi su rizici rijetko uključeni u planove rizika projekta, iako se njima neizravno upravlja kroz misiju tvrtke i pritisak najvišeg menadžmenta.

Stoga ovu prvu tezu treba promatrati kao problem iz strateške perspektive za svaku tvrtku, problem uloge procesa ispitivanja i izgradnje inženjerskih procesa. Njegovo rješavanje, kompetentna gradacija i korištenje isključivo inženjerskog osoblja znak je kompetentnog upravljanja i dugoročnog planiranja u tvrtkama.

Teza br. 2: Ispitivanje je inženjerska profesija

Zbog zabune s majmunima u struci testiranja, puno je ljudi koji su daleko od inženjerskog polja, a ponekad nemaju ni odgovarajuće tehničko obrazovanje. To je stvarno tužno i žalosno, jer danas na tržištu testiranja doista nema dovoljno kvalificiranih resursa - kompetentni stručnjaci radije idu u razvoj (u najboljem slučaju, analitiku blisku temi), a oni koji ostaju slabo razumiju životni ciklus softvera, testiranje i programski jezici.

Po mom mišljenju, svaki ispitivač mora imati tehničko znanje, sigurno znanje i barem osnovne vještine u administriranju aplikacijskih programa i popularnih operativnih sustava. Osim toga, ispitivač mora imati barem osnovno razumijevanje programskih jezika, biti sposoban barem intuitivno čitati kod te se brzo prilagoditi novim jezicima i programima/okruženjima. Općenito, glavne značajke testera su fleksibilnost i sposobnost učenja. Stoga, s iskustvom u programiranju i općim razumijevanjem skriptnih jezika i jezika visoke razine, osoba će moći učiti i prilagoditi se bez ikakvih problema. U idealnom slučaju potrebno je poznavanje skriptnog jezika i osnova razvojnog jezika na kojem se temelji projekt.

Iz svega ovoga proizlazi da tester mora znati raditi s kodom. Iako bi u idealnom slučaju dobar proces trebao biti izveden prema modelu crne kutije. Unatoč tome, tester se ne bi trebao bojati pogledati u ovu Pandorinu kutiju i pomoći razvojnom programeru da shvati problem. Odnosno, biti kao patka u vodi u sustavu ne samo praćenja grešaka, već i kontrole verzije koda, te biti u mogućnosti izvršiti pregled koda.

Unatoč činjenici da u velikoj većini slučajeva čujem mišljenje da je proces pregleda koda, debugging (debugging) i jedinično testiranje isključivo prerogativ programera, uzet ću slobodu ustvrditi da je to pogrešan pristup. Problem dolazi od nedovoljne kvalifikacije testera i pogrešnog upravljanja životnim ciklusom softvera. Ovaj pristup može dobro funkcionirati u malim TDD projektima, ali glavna snaga i prilika za osiguranje visoke kvalitete proizvoda je razbijanje sfera utjecaja, odgovornosti i osiguravanje principa različitosti. To će proces razvoja učiniti transparentnijim, sljedivi i pomoći će kompenzirati efekt "mutnih očiju" » od programera, kako bi se izbjegli "trikovi" s njihove strane.

Primjedba br. 2

U Liebherr Aerospaceu, procesi i uloge u tvrtki su strogo strukturirani. Strogo pridržavanje iterativnih modela specifičnih za industriju. Međutim, inženjersko krilo, inženjerske pozicije zovu se za sve isto - Software Engineer. Naglasak je na činjenici da je zaposlenik u tvrtki prije svega specijalist, inženjer u području softvera. To znači da zaposlenik mora razumjeti inženjerske procese, razvojni proces, testiranje, dizajn sklopova itd. Međutim, među inženjerima postoji obvezna podjela na specijalizacije: u testu, u razvoju, u zahtjevima itd.

Budući da tvrtka slijedi rigorozne procese kako bi osigurala najvišu kvalitetu, svaki dio procesa podijeljen je na neovisne sudionike. U praksi to znači da svaku razinu zahtjeva piše posebna osoba (tim), dizajn druga, kod treća, jedinično testiranje četvrta, funkcionalno testiranje peta itd. U isto vrijeme, kako bi spriječili ljude da se “dosađuju” i “zaglave” u rutini, pokušavaju rotirati ljude u projektu po funkcijama, a vrlo je moguće da čak i na istom projektu, u različitim iteracijama, inženjer, najbolje što može, pokrivat će različite odgovornosti i pokrivati ​​različite faze razvoja softvera.

Činjenica da svaku od faza i vrsta razvoja i testiranja trebaju pokrivati ​​različiti ljudi proizlazi iz zahtjeva međunarodnih standarda kao što su DO-178B (za zrakoplovstvo), EN 50128 (za željeznički promet) ili GOST R IEC 60880 (za nuklearne elektrane), te u konačnici osigurava najvišu toleranciju grešaka na razini procesa, uključujući i u smislu testiranja softvera.

3. teza: Metrike su besmislica ako nema timskog rada

Tijekom gotovo svakog intervjua za poziciju voditelja testiranja možete čuti pitanje kako će kandidat graditi proces testiranja i koje će metrike preuzeti iz projekta, koje će metrike koristiti u odnosu na sebe. U stvari, možete smisliti mnogo opcija za metriku - kvantitativnu i kvalitativnu - ali one neće imati puno smisla sve dok tim u projektu ne bude učinkovit. U timu u širem smislu te riječi, tj. kako unutar odjela/tima za testiranje, tako iu interakciji s timom programera i poslovnih korisnika.

U praksi to znači da je beskorisno uzimati u obzir broj razvijenih testova (ovo je metrika napretka), pronađenih grešaka (u najgorem slučaju) kao pokazatelj učinkovitosti tima za testiranje, čak i stope regresije, čak i sintetičke metrike na projektu (koristeći kriterije važnosti i intenziteta rada), da ne spominjemo idiotske (ali još uvijek primjenjive za KSLOC\hour tim za testiranje). Za voditelja projekta možda bi bilo dobro koristiti CPI/SPI kao KPI projekta, koji se može temeljiti na svim metrikama koje je identificirao i prikupio voditelj testiranja. Odnosno, prilično apstraktna i visoka procjena ovisno o uloženom trudu i dobivenom rezultatu. Ali pod uvjetom da timovi rade kao jedinstveni organizam.

Za testere to znači da su oni ljepilo, pokretački kotač procesa koji će omogućiti da softver radi i ispuni zahtjeve. U procesu testiranja to znači i samo testiranje i pružanje testa ponovljivosti, dokumentabilnosti, mogućih problema i rješenja problema (ako je to vidljivo sa strane testiranja, ako postoji dovoljno kvalifikacija), kao i dvostruku provjeru testiranja. (VoV). Drugim riječima, zadatak testiranja je i ponovno pokretanje i ponovna provjera svih mogućih stanja, i (ako je potrebno i dovoljno) pokrivanje cijele strategije testiranja i plana testiranja (barem ono što je naznačeno u Quality Gates), identificiranje grešaka i njihovo rješavanje kroz programere i specifikacije. Odnosno, od trenutka kada se greška provjeri i otkrije, odgovornost za nju ne “prebacuje” se na programera, već je prati tester dok se ne riješi. Grubo rečeno, tester je odgovoran za greške, a programer je odgovoran za značajke.

Ovdje dolazimo do ključnih razlika između testera i programera, koje su se u mom članku pokazale vrlo bliske i slične. Međutim, u smislu stila rada, programeri su obično ili perfekcionisti ili "feature developeri" (koji vole kodirati radi koda, funkcionalnosti i algoritama); ispitivači su ili pedanti ili automatori (nastoje automatizirati automatizaciju). Stoga, u projektu, ispitivač zna kako to učiniti ispravno, a programer zna točno kako.

Po ovome ponavljam da je glavni rezultat koji ovisi o jednom timu, a ne samo o metrici u jednom napretku, recimo, razvoju dizajna. A gdje proces više posustaje, tu leži problem; tu padaju pravi pokazatelji, koji već imaju smisla u kontekstu radnog sinergijskog projekta. Sasvim je moguće da za dugi razvoj testova nije kriv dizajner, već analitičar koji je zahtjeve preveo presloženo.

Opaska br. 3

Unatoč tome što model koji sam opisao govori o jedinstvu i međusobnoj povezanosti svih faza procesa, testere je danas ispravnije klasificirati na programere samih testova (naglašavajući njihovu snagu i znanje o metodologiji testiranja) i devops inženjere koji opslužuju infrastruktura. Odvajanje funkcija ima svoje prednosti kada je veličina projekta dovoljno velika i ako postoji dobro financiranje, kada se razvoj, podrška i testiranje infrastrukture mogu rasporediti između inženjera, idealno između stručnjaka stručnjaka. Bitno je da je testni inženjer ipak prije svega inženjer, programer u testiranju, sposoban koristiti različite alate za rješavanje zadanog problema. I tek drugo - stručnjak za određeni alat i program. Stručnjake za alate i mogućnosti okvira ispravnije je klasificirati kao individualne inženjere, inženjere alata.

Teza br. 4: Tester je središte procesa razvoja softvera


V-model razvoja softvera jasno pokazuje da je tester uključen u sve faze životnog ciklusa.

Sličnost programera i testera, zamagljivanje granica područja uz prisutnost dobrih kvalifikacija glavni je pokazatelj interesa za rad testera. Naravno, može se tvrditi da je uključenost u proizvod i njegovu kvalitetu u slučaju testiranja crne kutije motivacijski faktor, ali, po mom mišljenju, osoba koja je došla u tehničko i inženjersko polje to je učinila svjesno, sa željom da se razvija i radi na sebi. Stoga je prilika da proširite svoje horizonte, utječete na kvalitetu proizvoda (čak i male stvari), budete aktivni, ali i stavite veto na puštanje proizvoda iz testera, po mom mišljenju, snažniji su argumenti za struku. A ako je tako, budući da dobar ispitivač nije majmun, već inženjer-istraživač, stručnjak koji sudjeluje u gotovo svim fazama životnog ciklusa softvera (za razliku od uloga analitičara, dizajnera, programera i tehničkih pisaca), odgovoran za kvalitetu proizvoda (ne procesa, ovo je za QA, pa pod “kvalitetom proizvoda” mislimo na usklađenost s navedenim i odobrenim zahtjevima i standardima, popisima za provjeru itd.), zatim u cilju poboljšanja kvalitete proizvoda i razvijati se kao stručnjak, ispitni inženjer mora zauzeti aktivnu poziciju. On zna kako poboljšati proizvod. Zna što je "dovoljno dobro" i kako ga napraviti, proizvod ili proces, tako da može pokrenuti kretanje među razvojnim inženjerom i drugim timovima, pa čak i tvrtkama. Na primjer, u bilo kojem projektu postoje trenuci zastoja, što može biti prihvatljivo od strane uprave. Obično u to vrijeme zaposlenici rješavaju osobne probleme ili se bave samoobrazovanjem. Što se tiče posla, programer može raditi refactoring, proučavati algoritme i prenositi ih na svoje projekte. Što bi tester trebao učiniti? Naučiti nove alate za testiranje? Ne radi ništa bez početnog paketa programera/analitičara. Zapravo, on može automatizirati svoje aktivnosti ili poboljšati proizvode koje koristi, čak i ako je daleko od infrastrukture i devopsa.

Opaska br. 3

U Liebherr Aerospaceu, rigidni proces oštro je ograničio upotrebu bilo kakvih alata i strogo formalizirao proces razvoja i testiranja, tj. nije bilo puno prostora za automatizaciju - čak je i miješanje u praćenje bugova bilo zabranjeno. Međutim, takav proces kao što je priprema dokumentacije bio je automatiziran u takvim razdobljima, iako se koristio nezabranjeni VBA za MS Office. A za proces pregleda koda, statički analizatori koda mogu se poboljšati. Nisu sasvim zadovoljili standarde na projektu i generirali su nepotrebne poruke koje nisu bile filtrirane čak ni osnovnim grepom. Međutim, kako bismo smanjili vrijeme za ručni pregled koda, tijekom zastoja radili smo za budućnost, poboljšavajući proizvod treće strane, kao što je statički analizator, pripremajući skup slučajeva za provedbu potrebnih provjera.

Teza #5: Testiranje nije mjesto za fiksiranje na ključne riječi

Posljednja i najčudnija tema, po mom mišljenju, je vrlo nejasna ideja o testiranju (čak io teoriji, a da ne spominjemo praksu). U mnogim tvrtkama odjeli za testiranje ne ispunjavaju očekivanja, u nekima su se čak diskreditirali i funkcioniraju s malim dijelom svoje potencijalne učinkovitosti zbog niza faktora. Problem proizlazi i iz nepostojanja škole i iz nesposobnosti menadžmenta. Situacija je vrlo žalosna u industrijama udaljenim od IT-a, čak i tamo gdje "novac nije problem" - tamo su zadaci postavljeni na principu "poboljšati kvalitetu proizvoda". Čak iu IT tvrtkama gdje postoji opće razumijevanje procesa, postoji niz problema povezanih s fiksacijom na određene uloge ili alate, iako je, ponavljam, ovaj pristup slabo primjenjiv na testiranje.

U jednoj od velikih investicijskih banaka gdje sam bio intervjuiran, postojao je sličan zahtjev za poziciju voditelja testiranja: "povećati kvalitetu i smanjiti nedostatke." Svaki problem se može riješiti. Iako iza vela zadataka skrivena je koordinacija odjela za niz različitih proizvoda, izrada planova testiranja, organiziranje testiranja, rad s programerima, sastavljanje baze slučajeva i tako dalje. Dapače, logično je da odgovornost za kvalitetu proizvoda u poduzeću preuzme neki “direktor kvalitete”, poznat i kao QA direktor, a ne samo voditelj odjela testiranja. No, ovdje se stvar svodi na ovlasti koje ta pozicija nema i nepostojanje skupine koja nije bila uopće planirana (koja bi mogla pomoći tom i tom). Odnosno, tvrtki treba orkestar jednog čovjeka bez tima. Rješenje je jednostavno: menadžment traži po ključnim riječima, a kvalitetu u kratici QA smatra lijekom za sve probleme, iako je ona u sferi strateškog top menadžmenta i procesa koje treba pokrenuti odozgo s odgovarajućim ovlastima i resursi.


U idealnom slučaju, upravljanje kvalitetom (QA) i testiranje su dva.

Problem je sustavan, jer je sasvim dobro kada se HR pretražuje pomoću ključnih riječi poput "testiranje opterećenja", "funkcionalno". Ali kada se u postupku provjere naglasak ne stavlja na provjeru vještina, ne na aktivnost i fleksibilnost kandidata, već na određeni alat, to je već problem, pogotovo kada o testiranju nema ni traga (ima majmuniranja) , a nije činjenica da je traženi alat učinkovitiji od onog koji podnositelj zahtjeva poznaje. Problem je što se poznavanje male nijanse ili alata za čije savladavanje treba nekoliko sati stavlja u prvi plan, ispred poznavanja programskih jezika ili teorije. U jednom od intervjua bilo je prilično smiješno odgovoriti na pitanja: “navedi neku knjigu o testiranju” i nakon odgovora o Samu Kaneru čuti: “mi to ne znamo, ali jeste li čitali išta o životnom ciklusu od bube?" Bilo bi smiješno da nije tužno. Žalosno je kada HR prijavi odbijenicu zbog nedostatka iskustva kandidata, iako je to zbog pogrešnog naglaska.

Pronaći dobrog testera veliki je problem, jer test inženjer je u idealnom slučaju osoba koja rješava tehničke probleme vezane uz razvoj softvera, neka vrsta problem solvera. Za takvu osobu, osim tehničkih vještina, vrlo je važno imati pažljivost, radoznalost, biti aktivan i moći prenijeti misao i braniti svoje stajalište na bilo kojoj razini, na neki način, ispitivači su istraživači iz svijeta razvoja softvera. Stoga je u rukama inženjera za testiranje lako prepoznatljiv simbol povećalo (leća) koje promatra bube. Savršeno karakterizira rad ispitivača: koristi se i za namjeravanu svrhu za prepoznavanje nedostataka i za "spaljivanje rupa", uz njegovu pomoć možete zapaliti vatru i čak, uz cijeli sustav leća, promatrati zvijezde. Glavno je moći to učiniti.

Napomena br. 5

Intel ima dominantan pristup u kojem se alati biraju na temelju preferencija zaposlenika na projektu. To znači da, općenito, nije važno koji alat i jezik odaberete za rješavanje problema, glavna stvar je riješiti ga. Suživot tri različita testna inženjera koji pišu na tri različita jezika savršeno je prihvatljiv sve dok je problem riješen, učinkovito riješen, troškovi podrške su razumni, a proces dokumentiran. Osim toga, mnogi korišteni alati su besplatni, otvorenog koda ili vlasnički. Danas postoji ogroman broj alata s kojima je moguće riješiti različite probleme, a izbor alata ne bi trebao ograničavati mogućnosti inženjera. Međutim, ako zadatak stvarno zahtijeva korištenje nekog drugog alata osim onog koji je slobodno dostupan, tada se, uz jasno razumijevanje i opravdanje, može kupiti i koristiti. Ovo opet odgovara ciljevima poslovanja - nemojte zabijati čavle mikroskopom, nemojte raditi učinkovito, istiskujući maksimum iz alata, ako im kvalifikacije inženjera dopuštaju da prođu s "malim gubicima". Dobra alternativa je i sudjelovanje u projektima otvorenog koda i ulaganje u njih za kasniju upotrebu za vlastite potrebe. Ovakav pristup ubija dvije muhe (vlastite potrebe) i zadatke te stvara alate kojima se cijelo društvo može slobodno služiti.

Umjesto zaključaka

Tester je više od profesije. Ovo je slika proaktivnog života i želje da se ovaj život učini boljim za sve izvedivim i učinkovitim sredstvima. Ciljevi testera za proizvod najbliži su poslovnim ciljevima i strateškim ciljevima tvrtke za taj proizvod, dok se u isto vrijeme nalaze duboko u tvrtki kao istraživač. A ako je tako, onda su njegove glavne kvalitete energija, znanje i fleksibilnost. No, pritom posao testera ne podrazumijeva opće znanje i odgovornost za kvalitetu proizvoda i kvalitetu usluge. Testiranje ima granice: s jedne strane ograničeno projektom i zahtjevima u njemu (upravljanje projektom i utvrđenim životnim ciklusom programa), as druge strane procesima za koje je odgovoran QA. Ali razlike između QA-a i testiranja potpuno su druga stvar.

Tester softvera- osoba koja igra primarnu ulogu u testiranju softvera. Profesija ima tehničke predrasude; svidjet će se kandidatima koji su skloni informatici i matematici. Zanimanje je primjereno onima koje zanima informatika (pogledajte odabir zanimanja prema interesu za školske predmete).

Kratki opis

Testeri softvera jedni su od najtraženijih stručnjaka u IT industriji. Oni ocjenjuju softver sa stajališta stručnjaka i običnih korisnika, glavni cilj njihove aktivnosti je identificirati i ukloniti softverske pogreške. Ponekad testeri stvaraju tehničku dokumentaciju na ruskom ili stranom jeziku. Oni bez greške pripremaju izvješća i razvijaju alate i skripte koje se koriste tijekom testiranja. Konvencionalno se dijele u 2 skupine:

  • Alpha testeri koji rade sa softverom u razvoju;
  • Beta testeri koji su specijalizirani za gotove verzije softvera.

Testerima softvera otvaraju se mogućnosti za profesionalni razvoj jer uvijek mogu odabrati neko drugo područje koje je na neki način povezano s IT segmentom.

Značajke profesije

Testiranje softvera je zabavan i kreativan proces. Tester većinu svog radnog vremena provodi na računalu ili tabletu, pametnom telefonu i drugim vrstama gadgeta. Odgovornosti testera softvera uključuju sljedeće:

  • razvoj optimalnih metoda testiranja, izrada testnih slučajeva, modeliranje uobičajenih situacija ponašanja;
  • izrada rasporeda i planova, provođenje različitih vrsta testiranja: sigurnosnih, opterećenja, funkcionalnih, automatiziranih, konfiguracijskih, gaming, upotrebljivosti i drugih. Opći tester može izvesti sve ove vrste testiranja, ali najčešće se specijalizira za 1-2;
  • izrada baza podataka i izvješća na temelju rezultata testiranja;
  • klasifikacija pogrešaka, dubinska analiza rezultata obavljenog rada;
  • pomoć razvojnom timu u rješavanju problema;
  • konzultacije za programere i kupce, analiza pritužbi primljenih od stvarnih korisnika.

Sve gore navedene odgovornosti treba podijeliti u 3 glavne faze: razvoj (neizravno sudjelovanje), testiranje i analiza, priprema tehničkih izvješća i uklanjanje pogrešaka. Ova vrsta aktivnosti zahtijeva angažman; zanimanje je pogodno za dječake i djevojčice koji su skloni mukotrpnom i sjedilačkom poslu.

Za i protiv profesije

profesionalci

  1. Testiranje softvera je prestižna profesija koja će otvoriti put prema drugim informatičkim specijalnostima, gdje je još veća razina nagrađivanja.
  2. Mnoge tvrtke koje se bave stvaranjem softverskih proizvoda zainteresirane su za testere softvera.
  3. Tester može raditi u uredu ili kod kuće, što mu omogućuje da kombinira aktivnosti s putovanjima, hobijima ili obrazovanjem.
  4. Plaće testera su visoke, a polje je otvoreno za ambiciozne ljude svih godina.
  5. Pristup modernom softveru, igrama i drugim zanimljivim proizvodima.
  6. Mogućnost održavanja vlastitog bloga ili vloga, što vam omogućuje popularizaciju usluga i dodatnu zaradu.

minusi

  1. Rad testera je vrlo dobro plaćen, što za sobom povlači i veliku konkurenciju na tržištu rada.
  2. Ispunjavanje narudžbi zahtijeva iskustvo, bez njega nije lako naći posao.
  3. Profesionalne bolesti zajedničke svim ljudima koji rade za računalom.

Važne osobne kvalitete

Za testera softvera važne su sljedeće profesionalne kvalitete:

  • logično mišljenje,
  • sposobnost koncentracije,
  • multitasking,
  • moralna fleksibilnost,
  • kategoričnost,
  • povećana točnost,
  • profesionalna odgovornost.

Tester softvera komunicira s programerima i kupcima, stoga su komunikacijske vještine i sposobnost pravilnog formuliranja misli, kao i pismenost, važne.

Obuka za testiranje softvera

Početni tester može završiti fakultet ili steći potrebne vještine na tečajevima - sve ovisi o zahtjevima potencijalnog poslodavca i osobnim vještinama. Međutim, visoko tehničko obrazovanje treba smatrati prioritetom. Kandidat može odabrati sljedeća sveučilišna područja studija za koja je matematika glavni jedinstveni državni ispit:

  • “Primijenjena matematika i računarstvo” (šifra: 01.04.02);
  • “Informatika i računarstvo” (šifra: 03/09/01);
  • “Informacijski i analitički sigurnosni sustavi” (šifra: 10.05.04);
  • “Informacijska sigurnost” (šifra: 10.03.01) i druga tehnička područja vezana uz informatiku, matematiku, zaštitu digitalnih informacija i računalne tehnologije.

Ako se odlučite započeti svoj profesionalni put sa srednjom školom, razmislite o smjerovima “Informacijski sustavi i programiranje” (šifra: 09.02.07.), “Računalne mreže” (šifra: 09.02.02.) ili “Primijenjeno računalstvo” znanost (po industriji)”. Možete početi studirati na sveučilištu nakon 11. razreda; kandidat se može upisati na fakultet nakon završenog 9. razreda.

Međunarodna obrazovna institucija specijalizirana za informatičku edukaciju. Djeluje od 1999. godine. 42 podružnice u 16 zemalja. Najveći ovlašteni trening centar za Microsoft, Cisco, Autodesk. Polaznici dobivaju međunarodne certifikate i međunarodnu diplomu. Glavni cilj je zapošljavanje svakog diplomanta.

Savladajte jedno od najtraženijih IT zanimanja pod vodstvom osobnog mentora i počnite zarađivati ​​prije završetka tečaja. Nije potrebno programersko iskustvo. Naučit ćete kako testirati web stranice, mobilne aplikacije i drugi softver. Naučit ćete kako funkcionira rad IT tvrtki i moći ćete razumjeti kako se želite razvijati u svojoj struci. . Juniori su već jako traženi na tržištu, a ovaj tečaj će im omogućiti da dosegnu srednji nivo.

Na obuku su pozvani studenti specijaliziranih sveučilišta (3-5 godina), testeri koji žele steći nova znanja i unaprijediti svoju profesionalnost. Obuka se izvodi u večernjim satima, u grupi od najviše 10 polaznika, trajanje tečaja je 3 mjeseca. Talentirani diplomanti mogu dobiti posao u EPAM-u.

TC "Specijalist" na MSTU. N. E. Bauman

Velik izbor visokokvalitetnih programa dostupan je na web stranici centra za obuku za osobe koje odluče postati testeri softvera. Svaki tečaj se sastoji od teoretskog i praktičnog bloka; oblik obuke može biti u punom radnom vremenu ili učenje na daljinu. Trajanje treninga je 16-64 ac. h., minimalni trošak - 11.850 rubalja. i više, što izravno ovisi o odabranom profilu.

Tester je stručnjak koji testira softver kako bi identificirao pogreške u njegovom radu i kasnije ih ispravio. Ujedno postoji i malo drugačiji naziv za ovo zanimanje - QA Tester (ili QA Manager, Engineer), koji obično uključuje širi raspon odgovornosti. Tester prati kvalitetu proizvoda nakon njegovog razvoja, dok je zadatak QA testera osigurati kvalitetu proizvoda u svim fazama razvoja, izdavanja i rada softvera.

Radna mjesta

Zanimanje testera prvenstveno je traženo u IT tvrtkama koje se bave razvojem softvera, računalnih igara i web stranica.

Odgovornosti ispitivača

Glavne radne obveze ispitivača:

  • Kontrola kvalitete razvijenih proizvoda.
  • Identifikacija i analiza grešaka i problema s kojima se korisnici susreću pri radu sa softverskim proizvodima.
  • Razvoj autotestova i njihovo redovito izvođenje.
  • Razvoj testnih scenarija.
  • Dokumentacija o utvrđenim nedostacima.

Također, pozicija ispitivača može uključivati ​​pripremu tehničke dokumentacije na ruskom i stranim (obično engleskim) jezicima.

Zahtjevi ispitivača

Glavni zahtjevi za ispitivača:

  • Iskustvo u organizaciji i provođenju različitih vrsta testiranja.
  • Poznavanje programskih jezika.
  • Poznavanje alata i biblioteka za automatsko testiranje.
  • Iskustvo pisanja automatiziranih testova.
  • Više obrazovanje.
  • Analitičke vještine.

Dodatni zahtjevi:

  • Mogućnost testiranja web aplikacija.
  • Poznavanje mobilnih platformi (iOS, Android).
  • Poznavanje engleskog jezika na razini dovoljnoj za čitanje i pisanje stručnih tekstova.

Uzorak životopisa testera

Kako postati tester

U Rusiji nema sveučilišta koja podučavaju ovo zanimanje, tako da funkcije ispitivača mogu uspješno obavljati ljudi analitičkog uma i višeg tehničkog ili srednjeg specijaliziranog obrazovanja.

Najbolji način da postanete tester je da naučite programirati i u praksi shvatite kako nastaje softver, s kojim se poteškoćama programeri susreću i kako se odvija proces otklanjanja pogrešaka u softveru.

Plaća ispitivača

Plaća testera varira od 30 do 130 tisuća rubalja mjesečno. Visoke zarade najčešće se mogu naći u Moskvi ili drugim gradovima s preko milijun stanovnika. Prosječna plaća testera je 70 rubalja mjesečno.

“Sva su zanimanja potrebna, sva su zanimanja važna.” Ove riječi Vladimira Majakovskog ostale su aktualne desetljećima. Danas ćemo govoriti o profesiji softverskog testera (ili jednostavno testera). Saznat ćete je li profesija ispitivača relevantna, koliko možete zaraditi s njom i kako možete svladati ovu specijalnost.

Relevantnost profesije

U svijetu razvoja mnogi ljudi zanimanje ispitivača postavljaju na najnižu razinu hijerarhije, ali uzalud. Zahvaljujući testerima postoji relativno malo pogrešaka u postojećem softveru - ali nakon što je softver izašao iz pera programera, grešaka je bilo stotinama puta više. I to nisu samo nagađanja ili fikcija. U životu sam se okušao u brojnim zanimanjima - sve do šefa poduzeća. I ja sam slučajno bio tester.

9. rujna je Dan testera softvera. Iako je praznik neslužbeni, testeri ipak imaju svoj praznik i to pokazuje koliko je ovo zanimanje važno u svijetu. Upravo u cijelom svijetu, a ne samo u svijetu razvoja softvera. Vaš multicooker ili perilicu također su testirali posebno obučeni testeri. Čak se bojim i zamisliti što bi se dogodilo da ti uređaji nisu testirani prije nego što su pušteni u proizvodnju.

Zašto 9. rujna? Upravo na današnji dan prije više od 70 godina znanstvenici s Harvarda testirali su računalno čudovište nazvano Mark II Aiken Relay Calculator. Neka vas riječ "Kalkulator" u naslovu ne zbuni: težina prve "Marke" je točno poznata i iznosila je 35 tona. Težina drugog, mislim, nije bila puno manja.

Riječ tester, kao što možda pretpostavljate, dolazi od engleskog tester – osoba koja nešto testira.

Koliko testeri zarađuju?

Prije samo pet godina vjerovalo se da svaki student 1. ili 2. godine može biti ispitivač. Testeri su tretirani olako - kao "nedovoljno programeri". Format takvog rada značio je samo honorarni posao tijekom studija na sveučilištu, a malo je ljudi uspjelo zaraditi ozbiljan novac kao tester.

Dakle, koliko testeri zarađuju? Kladim se da vas je odgovor na ovo pitanje najviše zanimao otkako ste počeli čitati ovaj članak. Testeri s 2-3 godine iskustva mogu lako zaraditi oko 100.000 rubalja mjesečno. Minimalna plaća je od 30 tisuća rubalja, prosjek je oko 50-60 tisuća rubalja. Neću dati lijepe grafikone, dat ću dva slobodna radna mjesta koja sam pronašao za 5 sekundi na web stranici Yandex.Work: u prvom slučaju nude do 90 tisuća rubalja. (što je sasvim normalno), u drugom - od 30 do 45 tisuća rubalja.

Općenito, ako tražite, možete pronaći slobodna radna mjesta do 120 tisuća rubalja, što čak premašuje iznose koje sam obećao.


Kao što vidite, struka je prilično relevantna i ako imate želju i određene vještine, lako možete pronaći prilično dobro plaćen posao. Da, nije Gazprom, ali za život je dovoljno.

Uvjeti, zahtjevi i obveze

Nakon što sam pregledao desetak slobodnih radnih mjesta, mogu vam reći dobre vijesti. Možete raditi i u uredu i kod kuće - odaberite način rada koji vam je bliži. Ako je potrebno puno vremena da dođete do ureda, lako možete pronaći posao na daljinu uz fleksibilan radni raspored. To znači da možete studirati na fakultetu i raditi kao ispitivač. U tom pogledu ništa se nije promijenilo. Naravno, udaljeni radnici plaćaju manje, ali su radni uvjeti povoljniji.

Traži se nezavršeno visoko obrazovanje, ali je potrebno radno iskustvo. Najčešće zahtijevaju najmanje 1 godinu iskustva u specijalnosti. Ostaje otvoreno pitanje gdje steći iskustvo ako su posvuda potrebni već iskusni ljudi. No, to nije problem samo ove profesije, nego i svake druge. Plaća je izravno proporcionalna radnom iskustvu - pristojan novac počinje se isplaćivati ​​testerima s najmanje 2 godine iskustva.

Ali nemojte misliti da tester ne treba nikakve vještine osim sposobnosti pritiskanja gumba! Najmanje vam je potrebno:

  • poznavati osnove programskog jezika u kojem se odvija razvoj;
  • znati raditi s Bug trackerima;
  • razumjeti što je funkcionalno testiranje;
  • posjedovati vještine rada s automatiziranim alatima za testiranje (kao što je Selenium za Javu ili PHPUnit za PHP);
  • moći koristiti MS Office za dokumentiranje rezultata.

Odgovornosti testera uključuju:

  • generiranje ispitnih skupova;
  • pisanje metodologije testiranja;
  • priprema testnih podataka;
  • testiranje dokumentacije;
  • lokalizacija nedostataka;
  • komunikacija s poduzećima, analitičarima i programerima;
  • rješavanje tehnički složenih problema.

Kao što vidite, popis zahtjeva i odgovornosti je vrlo značajan. Nadam se da sada nećete misliti da je tester samo netko tko pritišće tipke i provjerava je li program bugljiv.

Izgledi

Kakve izglede može imati tester? Prije svega, postoji mogućnost povećanja plaće s povećanjem radnog iskustva. Danas dobivate 30-40 tisuća rubalja, za dvije godine - gotovo 100 tisuća. Zašto ne perspektiva? Čak i ako vam trenutna tvrtka ne nudi toliki novac, uvijek možete prijeći u drugu: već imate radno iskustvo.

Druga mogućnost je postati programer. Nakon što ste nekoliko godina radili kao tester, vrlo je lako prijeći u drugo područje IT-a: na primjer, "pretvoriti" se u programera, analitičara ili čak menadžera. Sve ovisi o vama i vašim interesima.

Gdje možete dobiti zvanje testiranja?

Unatoč činjenici da je struka vrlo relevantna i ima mnogo slobodnih mjesta, na našim sveučilištima nema takve specijalnosti. Ako nemate visoko obrazovanje, ali imate želju da ga steknete, možete upisati bilo koju specijalnost koja je na neki način povezana s programiranjem (na primjer, primijenjeno ili sistemsko programiranje), u okviru koje možete dodatno zaraditi kao tester, a zatim početi raditi kao programer.

Ali treba napomenuti da studiranje na fakultetu nije uvijek opravdano, pogotovo kada su u pitanju testeri. Prvo, studiranje na sveučilištu traje dugo. A ako već imate visoko obrazovanje (čak i ako nije tehničko) i želite svladati zanimanje ispitivača, onda nema smisla ponovno ići na sveučilište: na drugom visokom obrazovanju bit ćete prisiljeni pohađati predavanja za 2,5 godine. Izgubiti čak 2,5 godine! A ako nemate visoko obrazovanje, tada možete izgubiti čak 5 godina, tijekom kojih ne samo da biste mogli svladati ovu profesiju, već i postati vrlo traženi stručnjak.

Drugo, nakon što ste dobili diplomu programera (i nakon što ste na njoj proveli 2,5 do 5 godina), još uvijek nećete moći dobiti posao u svojoj specijalnosti: na kraju krajeva, nemate praktičnog razvojnog iskustva, što sveučilišta nemaju t pružiti.

Kao alternativu, možete ponuditi tečajeve koji vam omogućuju svladavanje profesije testera softvera. Na primjer, . Prednosti tečajeva su u tome što štedite i vrijeme i novac: traju samo 2 mjeseca i koštat će vas puno manje nego studiranje na sveučilištu s diplomom programiranja. Osim toga, tijekom tečajeva dobivate:

  • učinkovito online učenje u vrijeme koje vama odgovara;
  • Video snimke svih predavanja, svih prezentacija i tutorijala.
  • zanimljive domaće zadaće za učvršćivanje materijala;
  • mogućnost postavljanja pitanja učitelju;
  • potvrde za svaki tečaj i zajamčenu praksu (2 mjeseca);
  • mogućnost obavljanja prakse u IT tvrtki uz naknadno zapošljavanje;
  • mogućnost sudjelovanja u stvarnim startupima i kreiranju vlastitih projekata;
  • pravi portfelj i životopis za početak karijere;
  • znanja i vještina koje će platiti troškove tečajeva unutar mjesec dana rada u tvrtki.

Za samo 4 mjeseca imat ćete sljedeće vještine:

  • pouzdano vladanje terminologijom;
  • iskustvo u izradi testnih slučajeva i generiranju testnih kompleta, razvoju i pisanju testova prihvaćanja;
  • poznavanje pristupa programu i razina sigurnosti;
  • testiranje vještina prema unaprijed pripremljenom planu testiranja;
  • sposobnost evaluacije učinkovitosti testiranja;
  • poznavanje grešaka i problema s kojima se korisnici susreću pri radu s programskim proizvodima;
  • iskustvo u razvoju testnih scenarija, dokumentiranje pronađenih nedostataka;
  • razumijevanje funkcionalnog testiranja softvera;
  • vještine ručnog testiranja softvera;
  • poznavanje metodologije i tehnika testiranja;
  • poznavanje vrsta i tipova ispitivanja, njihove različite klasifikacije;
  • iskustvo rada sa sustavima za praćenje grešaka (Atlassian JIRA);
  • razumijevanje životnog ciklusa razvoja softvera, različitih metodologija za njegov razvoj i mjesto testiranja u tom procesu.

I što je najvažnije, nećete morati čekati nekoliko godina, već ćete odmah moći početi raditi!

Općenito, potrebno vrijeme je minimalno. Iako obuka traje 4 mjeseca, odvija se online, što znači da možete paralelno raditi/učiti i savladavati. Nema potrebe negdje putovati i gubiti dragocjeno vrijeme.

Ali što ako poslodavac zahtijeva kore? Pa, u većini slučajeva to ionako nije potrebno. Ako već imate toranj, tada će mu biti dodan certifikat koji ćete dobiti po završetku tečajeva. A ako nemate visoko obrazovanje, onda je u redu: ali imat ćete cijeli niz vještina potrebnih za uspješno testiranje softvera. Kada ste radili prvu godinu u svojoj specijalnosti, nitko neće uopće gledati na vaš nedostatak obuke - glavna stvar je da već imate iskustvo i vještine. Uz to, po završetku tečaja imat ćete priliku za dvomjesečnu praksu u pravoj tvrtki!

zaključke

Zaključci su sljedeći: profesija testera je tražena i omogućuje vam da zaradite u prosjeku oko 60 tisuća rubalja. na mjesec. Nema smisla studirati na sveučilištu da biste postali tester: dugo je, skupo, a službeno ne postoji takva specijalnost kao tester. Osim toga, nakon fakulteta još uvijek nećete imati radnog iskustva - samo nekoliko izgubljenih godina.

U vašem slučaju, možete naučiti sve vještine koje su vam potrebne za početak karijere i završiti pripravnički staž u tvrtki kako biste stekli minimalno radno iskustvo. Sve o svemu traje samo 4 mjeseca, a obuka se odvija online u vrijeme koje vama odgovara.

Sjajno, zar ne?

Poseban projekt s GeekBrainsom

    Je li tečaj prikladan za mene ako nemam iskustva u programiranju?

    Sigurno! Podučavamo od nule. U svemu će vam pomoći iskusni mentori koji će vas nadzirati tijekom cijelog tečaja.

    Hoće li praksa biti dovoljna?

    Bit će toga puno. Počevši od prve lekcije, počet ćete se okušati kao ispitivač, pokušavajući riješiti probleme s kojima se stručnjaci susreću u svakodnevnom radu. Osim vježbanja tijekom nastave, nakon svakog predavanja dobit ćete domaću zadaću koja će vam omogućiti da učvrstite svoje znanje. I neće biti prihvaćeno sve dok se ne napravi doista kvalitetno.

    Hoću li sigurno dobiti posao?

    Da, ako pohađate tečaj, naučit ćete dovoljno vještina da dobijete posao programera. Naravno, postoje uvjeti koje ne samo mi, već i vi morate ispuniti.

    Koja će mi oprema trebati?

    Laptop i pametni telefon bit će dovoljni da završite trening i napravite zadaću.

    Kako funkcionira grupni trening?

    Svi treninzi su individualni, komunicirate s učiteljem jedan na jedan. Za dodatnu komunikaciju postoji chat u kojem možete raspravljati o gorućim problemima s grupom.

    Hoće li to biti moguće kombinirati s poslom?

    Cijeli format treninga osmišljen je na način da ga možete kombinirati s poslom, fakultetom i privatnim životom.

Prijavite se za tečaj ili konzultirajte



2024 wisemotors.ru. Kako radi. Željezo. Rudarstvo. Kriptovaluta.