Suvremeno testiranje - evolucija uloge QA

Razvoj softvera evoluirao je od dana slapa, Agilea i sada DevOpsa. Naravno, testiranje kao disciplina također je imalo nekoliko velikih pomaka kako bi se prilagodili novim načinima rada i isporuke softvera.

Međutim, još uvijek postoji ogroman nesporazum i netočna percepcija uloge testera i osiguranja kvalitete u cjelini.

U ovom postu pogledamo kako se razvijalo testiranje, posebno u posljednjem desetljeću, i što QA profesionalci moraju učiniti da bi bili ispred igre.

Testiranje može biti samo zanimljivije!

Iako su se aktivnosti testiranja softvera promijenile kako bi se prilagodile novim načinima rada, još uvijek vidim mnogo staromodnih pogleda na testiranje i ulogu QA-a.

Obeshrabrujuće je vidjeti da još uvijek ima puno ljudi u IT industriji koji QA ili testere vide kao dno. Testeri se često doživljavaju kao samo funkcionalni testeri koji testiraju tek kad programeri završe s radom na značajci. 'Osiguranje kvalitete' doživljava se kao testiranje, pronalaženje i prijavljivanje pogrešaka i davanje zelenog svjetla za objavljivanje.



Još je zabrinjavajuće što je ova percepcija uloge osiguranja kvalitete najvažnija među ispitivačima i samim stručnjacima za osiguranje kvalitete.

Tradicionalno testiranje softvera

Povijesno gledano, vodeći u završnim fazama projekta vodopada, testiranje bi čvrsto stalo s desne strane životnog ciklusa projekta. Nakon unaprijed definirane potrebe, testeri će preuzeti palicu razvojnog tima na kraju razvojne faze i izvoditi dugačke, detaljne testne skripte, često ručno, i obično preko zatvorenih timova i grupa MSP-a.

Slučajevi ispitivanja detaljno su planirani unaprijed, skripte su izvršavali stručnjaci, otkrivali su i izvještavali o nedostacima, a ciklusi ispitivanja su se izvodili i ponavljali sve dok se nisu postigle unaprijed određene razine kvalitete.

Najvažnije je uvijek bilo jasno razdvajanje između programera i testera, bez preklapanja odgovornosti ili aktivnosti. Zapravo, tijekom posebne, ograđene faze ispitivanja, aktivnosti su bile isključivo usredotočene na funkcionalnu provjeru valjanosti softvera s osnovnim ciljem pronalaženja i prijavljivanja nedostataka.

QA u doba agilnosti

Pojava agilnih metodologija i načina rada stopila je aktivnosti razvoja i testiranja do te mjere da testiranje softvera više nije bilo samostalna faza. Umjesto toga, testiranje je postalo implicitna aktivnost tijekom kodiranja i razvoja softvera.

U nekim bi slučajevima bilo teško uočiti razliku između 'ispitivača' i 'programera', jer bi svaki od njih imao mogućnost neometanog poduzimanja međusobnih aktivnosti.

„Kvaliteta“ je prestala postati isključiva odgovornost testera i postala je zajednička odgovornost svih koji su uključeni u razvoj i isporuku proizvoda.

Zajedno s ovom evolucijom došlo je do pomaka ispitnih odgovornosti lijevo od razvoja, koji je u osnovi bio kvaliteta pečenja od samog početka.

Fokus je priješao s pronalaska nedostataka u ugrađenom softveru na sprječavanje ulaska nedostataka u softver.

Sa zajedničkim ciljem da se osigura ne samo da proizvod ili značajka budu funkcionalni i udovoljavaju zahtjevima, već i da odgovaraju svojoj svrsi i pružaju visoku razinu zadovoljstva korisnika.

Povezano:

Uključenost testera u pročišćavanje priča, recenzije kodova, testiranje jedinica i prakse poput TDD-a, BDD-a i kontinuiranog testiranja, osigurala je da su ispitivanje i kvaliteta bili u prvom planu i ugrađeni u razvoj.

No, dok je Agile išao dug put kombinirajući aktivnosti i prakse razvoja i testiranja, operativni tim je i dalje bio prešućen. Dvije struje rada (Dev & Ops) često nisu bile svjesne međusobnih aktivnosti.

Ako bi išta pošlo po zlu u proizvodnji, istraga bi trajala dugo. Programeri nisu imali uvid u to kako je njihova aplikacija dugoročno djelovala u proizvodnji; nije bilo transparentnosti ni jasnoće suradnje između dva tima.

Dobrodošli u DevOps

DevOps se odnosi na suradnju razvojnih i operativnih timova na stvaranju, isporuci, održavanju i podršci softvera. Odnosi se na neprekidno objedinjavanje resursa, procesa i samog proizvoda.

DevOps omogućuje metode kontinuirane integracije i isporuke vrijednosti krajnjem korisniku.

Pokret DevOps pokrenuo je novu perspektivu testiranja i stvorio nove mogućnosti za same testere.

U ovom novom dobu testeri moraju biti usklađeni i s razvojem i s operacijama.

Zadatak ispitivanja više nije ograničen na proizvod, već i na ispitivanje infrastrukture u kojoj se proizvod konačno izvršava.

Kontinuirana integracija (CI) i kontinuirana isporuka (CD) postali su de facto standard u razvoju i isporuci softvera, pa se stoga velik dio napora troši na osiguravanje CI / CD cjevovoda, okruženja i infrastrukture.

Ovo je kralježnica koja podržava i razvoj i porod.

Ako se njihova ispitivanja zanemare, to bi moglo rezultirati klimavim okruženjima, uzalud se uložiti mnogo truda istražujući ponovljena infrastrukturna pitanja i, u konačnici, visok rizik za razvoj i brzu isporuku.

Suvremeno testiranje - razvoj vođen kvalitetom

Iako je mnogo učinjeno na ugrađivanju kvalitete u svaku fazu razvoja i, kao rezultat toga, testiranje ima puno širi opseg, još uvijek vjerujem da osiguratelji kvalitete provode većinu svog vremena u potrazi za funkcionalnim problemima i usredotočuju se na provjeru softvera.

Većina osiguranja kvalitete ne shvaćaju važnost svoje uloge i utjecaja koji mogu imati na razvoj i isporuku.

Unatoč znatnim pomacima u razvojnim praksama tijekom proteklih deset godina, smatram da testeri i dalje zauzimaju staromodan pogled na svoju ulogu i tako ostaju ukorijenjeni u staroj eri testiranja.

Testiranje kao profesija i uloga ispitivača bilo je na udaru već neko vrijeme porastom „automatiziranog testiranja“. I doista, mnogi profesionalci u industriji još uvijek vjeruju da je uloga ispitivača jednostavno testiranje aplikacije koju razvijaju programeri, a sve se to može automatizirati.

Ako su programeri prikladniji i pametniji za pisanje koda potrebnog za automatizirano testiranje, što onda uopće treba za tester u timu?

Bilo je vrijeme da promijenimo tu percepciju. Moramo priznati razliku u vrijednosti i vještinama između „testiranja“ i „osiguranja kvalitete“, jer tamo gdje je testiranje funkcionalna provjera i provjera valjanosti softvera, osiguravanje kvalitete nije jedna aktivnost. QA je niz postupaka, uključujući testiranje i najbolje prakse kako bi se osiguralo da se kvalitetan proizvod isporučuje korisnicima.

Moramo težiti razvoju usmjerenom na kvalitetu i promatrati QA profesiju kao središnju i temeljnu funkciju u razvoju i isporuci softvera, stoga Suvremeno testiranje .

QA je sada ključna komponenta razvoja od početka do kraja, radeći u cijelom procesu. I premda uobičajeni jezik kaže da su svi u dostavljačkom timu odgovorni za isporuku kvalitetnog proizvoda, čvrsto vjerujem da je odgovornost za osiguranje kvalitete da osigura da se tim pridržava prakse kvalitete.

Tko je moderni QA

Tamo gdje se na testnu profesiju često gledalo kao na pristupni put razvoju, upravljanju projektima ili drugim - obično unosnijim - disciplinama, novi QA visokokvalificirana je uloga koja zahtijeva cjelovito znanje o razvojnim praksama.

Zahtijeva široko razumijevanje izazova praksi kodiranja, uvažavanje metoda i okruženja za implementaciju, kao i standarde, metode i izazove performansi i sigurnosti.

Ovo je uloga u obliku slova T s resursom koji je sposoban ne samo primijeniti svoju duboku stručnost i iskustvo kako bi ispunio svoju ključnu zadaću, već i primijeniti šire kontekstualno znanje u arhitekturi i razvoju.

Smješten u središtu bilo kojeg projekta, moderni QA trebao bi dobro razumjeti arhitekturu, performanse, sigurnost i ponudu oblaka, biti tehnički ispravan i imati žeđ za učenjem novih tehnologija kako bi ostali u igri.

Bilješka:Još jedno područje koje brzo postaje vrlo popularno i neophodno ispitivanje kvalitete podataka, testiranje velikih podataka, podatkovnih jezera i skladišta podataka.

Došlo je vrijeme za promjenu percepcije uloge osiguranja kvalitete i onoga što testeri rade. To mora početi od samih testera. Polazište je duboka briga za kvalitetu.

Ispitivači nisu tu samo da bi izvršili funkcionalno testiranje i prijavili greške. QA uloga je puno veća od te. Mi smo na projektu osigurati prakse kvalitete .

Kada duboko testiramo aplikaciju, moramo imati blisko znanje o cijelom radu sustava, a ne samo da na aplikaciju gledamo kao na crni okvir.

Da bismo imali to intimno znanje, moramo kontinuirano učiti i pratiti nove tehnologije i načine rada. Što je najvažnije, osiguranje kvalitete mora biti prilagodljivo.

Kad službe za osiguranje kvalitete shvate svoju svrhu na projektu i počnu vjerovati da je njihova uloga središnje mjesto u razvoju i isporuci softvera, kada prihvatimo moderna načela testiranja, tek tada možemo promijeniti percepciju drugih.