Spousta začínajících programátorů byla postavena nejprve do pozice testera. Dosti často jsem slyšel od nich, už abych začal programovat. Ani já jsem se netvářil zrovna nejradostněji, když mě v práci nechali psát test plány a testovat software.
Co je obsahem práce testera, testerů nebo oddělení QA (Quality assurance)?
Proč programátoři nemají rádi testery a někteří testeři chtějí být programátoři?
Je tester perspektivní zaměstnání?
O těchto tématech budou následující články:
Častý omyl: Tester je člověk, který hledá chyby v práci programátorů. Toto je pouze jenom malá část práce softwarového testera. Tester kontroluje práci všech lidí ve vývojovém procesu sw. Analytiků, designerů, programátorů. Znamená to, že každý produkt, než se dostane vůbec do rukou vývojářů, by měl projít důkladným testem specifikace. V té je totiž vždy nejvíc chyb. Znamená to tedy, že tester pro svoji práci potřebuje pochopit kompletně specifikaci a co více, ještě v ní hledat chyby.
Testerovy musí vyskočit husí kůže na zádech, když ve specifikaci čte výrazy typu:
Určitě, tudíž, zřejmě, evidentně….. ve výsledků určitě ne
A tak dále, jako například……. a co třeba tehdy…?
Dobrý, rychlý, efektivní, laciný, stabilní……. takže pomalá líná potvora….?
Ošetřeno, přeskočeno, vyloučeno….. Co všechno se skrývalo za tím, co bylo vyloučeno?
Jestliže pak…. ale co když jestliže nenastane?
Vždy, nikdy atd… i toto je krajně podezřelé.
Jakmile najdete ve specifikaci situaci, která může nastat, ale není napsáno ve specifikaci co se má dít v případě, že tato situace nastane, zcela určitě jste našli chybu.
Pokud tam chybu nenajdete, neznamená to, že tam není. Ve skutečnosti je tam spousta chyb. Zkuste najít aspoň jednu, malou. Chyby mají tendenci se kumulovat, takže v okolí určitě najdete další. 😉
Realita není vždy takto růžová. Málo který šéf obětuje člověka na testování specifikace. Je to škoda, protože právě v ní je nejvíc chyb. Chybou je totiž i nepřesnost, chybějící část atd. V malých týmech je občas analytik a tester jedna osoba. Což je problém, protože člověk chyby po sobě nevidí. A druhý člověk může najít malou nesrovnalost, která může vést k závažnému pochybení ve specifikaci.
Menší firmy občas nepíší moc podrobnou specifikaci. Občas se stává, že specifikaci má v hlavě jeden člověk. Napadá vás asi, že jsme v háji, neboť toto neotestujeme. Lze i v tomto případě testovat? Ano lze. Je to těžké, ale jde to. Cílenými otázkami se můžete dostat k jádru problému a zajistit, že analytik, který si byl tak jist, jak danou problematiku zvládá, si uvědomí, že to není tak zcela pravdou.
Pamatujme si, tester není od toho, aby ničil lidi, ale od toho, aby zvyšoval kvalitu sw. Pomáhejte analytikům, chtějte, aby vám nejasné věci vysvětlili, buďte zdvořilý a nedávejte hned najevo, že jste na koni.
Dalším článek bude popisovat testování softwaru jako černé skříňky.
Připomněl bych, že jeden z největších prohřešků vývojáře jsou výroky jako: „Myslel jsem, že…“, „Myslím, že to bylo takhle…“ či „Já si myslím…“
Jakmile tester či analytik od vývojáře uslyší „Já (si) myslím…“, měl by okamžitě zbystřit sluch jak ohař, nechat vývojáře dopovědět a okamžitě zkontrolovat kus projektu dle specifikace, o které se vývojář zmiňoval…
Protože myslet znamená ho*no vědět… 😉
Dělal jsem testera v jedné trošku větší firmě…teda byl jsem za toho ‚chytřejšího‘ protože jsem měl začít s automatickým testováním… Nicméně kolegové byly opravdový testeři bez programovacího vzdělání a nemůžu jim říct jinak než roboti, absolutně nevděčná práce… programátoři je nesnášeli protože jim akorát přidělávali práci a vždycky je běželi seřvat když v bugzile blbě označili prioritu chyby…
Bez testerů ale žádný pořádný produkt nevyplodíte takže jsou určitě nezbytnou složkou vývoje.
SH: já bych za cvičenou opici označil programátory, protože dnes už programátor nevymýšlí svoje kódy, ale jede podle přesně dané analízy.
Programátor nic nevymýšlí, on již pracuje podle napsané analízy.
A Tvá věta „programátoři je nesnášeli protože jim akorát přidělávali práci“ je IMO naprosto zcestná myšlenka – tester programátorovy práci nepřidělává.
Pokud tester najde chybu, je to buď chybný kód, za což si může programátor sám, nebo je to chyba specifikace, za což může analitik a ne tester.
Pokud jsou testeri „roboti“, nebo „cvicene opice“, pak je to problem jejich a hlavne programatoru ktery danou aplikaci vytvorili tak, ze je automaticky netestovatelny, a musi ho nejake „opice“ testovat. Chyba je na strane programatoru dane aplikace, ze ji neudelali testovatelnou (a proto se musela najmout skupina „robotu“), a pak mozna na strane testeru, pokud se nepokusili aplikaci udelat tesovatelnou.
To The.Day.X – nevim kde delas ty, ale oznacit programatory za cvicene opice bych si nedovolil. Zaprvy zadna firma uz dneska snad neni tak bohata aby mohla udelat celou hloubkovou a bezkchybnou analyzu, kterou by pak programatori „prepsali do programu“. Zadruhy jsem videl hodne programu, ktery psali „cviceny opice“ podle „dobry analyzy“, a vysledek byl zalostny – neudrzovatelny kod, ktery (pokud bezel) tak nefungoval pod zatezi nebo v multi-user prostredi. Kdyz nastoupili opravdovy programatori, tak jim trvalo rok nez napravili chyby ktere tam „opice“ vice nez 2 roky zanaseli.
Neco jineho je umet syntaxi jazyka a klikat v IDE, a neco jineho je vedet, ze urcitou konstrukci si v jiste situaci nemuzu dovolit, protoze bych treba mohl zanest O(N^3) slozitost , a hlavne vedet kde je ta hranice mezi absolutne dokonalym, rychlym a drahym na vyvoj kodem jako v ASM, a mezi klikanim v „4th generation language“.
S cim ale souhlasim je role testera – rozhodne by neme byt zatracovan („pridelava praci“) – naopak, stejne jako unit testy – kazda chyba kterou najde tester by se stejne projevila v provozu, a byla by draha a musel by ji stejne nekdo opravit, a to nejspis za vysokou cenu a mozna taky v casovym stresu nekdy vecer kdy uz chtel programator byt doma.
Reseni „jit servat testery za spatne vyplnenou prioritu“ je uplna zhovadilost, chyba je nalezena proto, abysme zvysili kvalitu produktu, ne abysme nekoho buzerovali. Vidim to ve firme kde pracuju – na vyplneni reportu v „nasi bugzille“ se musi vyplnit vice nez 50 % z 150 kolonek, vetsina jsou nejaky kody ktery nikdo nevi co tam ma byt, ale musi byt vyplneny spravne, jinak nekdo report zamitne. Dusledek – misto abysme nekomu nahlasili „mate tam chybu, opravte si ji, je to lepsi nez kdyby na to prisel zakaznik“, tak je to takova byrokracie a ztrata casu, ze se reportu pise co nejmin a tim padem se chyby neodhalujou. Navic se kazdymu teamu pocita a sleduje mnozstvi reportu (chyb), a podle toho jsou hodnoceny, coz je dalsi zverstvo…..
Ja neříkám jak by to mělo být, ale jak to bylo tam u „nás“. Moje věta “programátoři je nesnášeli protože jim akorát přidělávali práci” byla přesně o tom jak to končilo, opravovali se chyby od nejjednoduších…z pohledu celého produktu docela kravin a vůbec tam byla hrozná nevraživost jako že sme ta lůza co neumí programovat… Jinak souhlas ze spousta věcí mělo být testováno automaticky, proto jsem tam také byl 🙂 Nicméně testovat a udržovat automatické testy pro API je poměrně pracné a možná i dražší než zaplatit toho klikacího testera s minimálním vzděláním.
Pro pana The.Day.X – možná to podávám až trošku extrémě, ale takové já mám zkušenosti, není to moje myšlenka natožpak zcestná 😉
Já bych docela rozebral to slovo „Prográmátor“ – dneska se tak říká skoro každému člověku i když udělá stránky přes wysing. Je programátor ten kdo umí v PHP? Ten kdo dělá v Jave ??? Muj nazor je ze je to spis Anaityk, ale v životě už sem se párkrát mílil tak proč né dneska 🙂
BTW: Kdo, či co je to programátor?
Programátor je ten, kdo postupem zvaným programování implementuje výsledky návrhu projektu.
viz zde: http://cs.wikipedia.org/wiki/Program%C3%A1tor
Testováním se taky už nějaký rok živím a je to hodně nevděčná práce, protože každej kdo má do prdele díru si myslí, že je buhví jakej programátor a bohužel to samý se teď děje i v testování…a od toho velké projekty taky vypadají…a většinou to končí u nevraživosti typu „ten blbec programátor vs. ten blbec tester“ a občas si do toho přihřeje svou polívčičku AN a projektákem…na druhou stranu když se povede tým vyladit a všichni pochopí že tam nejsou od toho aby na sebe házeli špínu, tak pak to muže fungovat tak neuvěřitelným způsobem, že člověk jen žasne…btw ad firma kde je tým hodnocen podle toho kolik má chyb…pryč z ní…tohle už totiž hraničí z managerským diletanstvím…a na trhu je spousta ještě normálních firem, tak proč přicházet o iluze a nervy kvuli neschopnému idiotovi z vedení…
Dobry den, mohl byste mi, prosim, nejak blize priblizit tedy praci testera? Shanim nove zamestnani a tohle me zaujalo.