Metody zlepšení spolupráce vývojářů a testerů

Podobné dokumenty
Řízení reálných projektů, agilní metodiky

Softwarový proces. Bohumír Zoubek, Tomáš Krátký

Návrh softwarových systémů - úvod, motivace

DOTAZNÍK PRO URČENÍ UČEBNÍHO STYLU

Obsah. Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11

Návrh softwarových systém. Návrh softwarových systémů

Agile. nejžádanější způsob vývoje software. Tomáš Tureček. Business consultant, Lean&Agile coach Tieto

Udělá to, proč přišel/najde co hledal? Navštivte nás na adrese

Testování softwaru. 10. dubna Bořek Zelinka

ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ

Seminární práce Vývoj informačního systému. Manažerská informatika 2 Ing. Miroslav Lorenc

Scénář ukázkového testu Přetištěno z knihy Nenuťte uživatele přemýšlet! 2010 Steve Krug

Ročníkový projekt. Jaroslav Žáček

KURZY PRO PRACOVNÍKY MATEŘSKÝCH ŠKOL, PŘÍPRAVNÝCH TŘÍD A DALŠÍCH PŘEDŠKOL. ZAŘÍZENÍ NABÍDKA 1. POLOLETÍ, PLZEŇSKÝ KRAJ VE ŠKOLCE SE SPOLU DOMLUVÍME

1 OTÁZKY OBSAHOVÉHO RÁMCE (W) Oblast A: Čemu ve výuce věřím, jaká mám východiska? A1/1 Jak se ve výuce odráží skutečnost, že je každý žák jiný?

Nebojte se přiznat, že potřebujete SQA

Základní práce v souborovém manažeru

Zveme Vás na vzdělávací program: 1. ŘÍZENÍ PROCESŮ

Softwarový proces Martin Hlavatý 4. říjen 2018

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Přihláška Motivační dopis

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Příloha č.3 Otázka pro hodnocení manažera

Příloha A: Souhlas s využitím obchodního jména GE Money bank, a.s. v diplomové práci

Blacksmith Consulting S. l.

Testování software. Jaroslav Žáček

KONTROLNÍ SEZNAM KNIHOVNA

Agilní metodiky vývoje softwaru

Význam teambuildingu. Kdy jej uskutečnit Závazek. Teambuilding 1

Příloha č. 7 zadávací dokumentace popis vzdělávacích aktivit část VZ č. 2 Název projektu: FINIDR AKADEMIE - vzdělávání zaměstnanců

Formativní hodnocení. Mgr. Tomáš Zatloukal ústřední školní inspektor. Praha OP Hodnocení

Ročníkový projekt. Jaroslav Žáček

programátor vs. vývojář

Strategické plánování a budování značky. 12. duben 2011

Operační program Lidské zdroje a zaměstnanost

HR controlling. Ing. Jan Duba HRDA

Tisková zpráva z budoucnosti Easytask.cz Léto 2017

Jakým způsobem lze zlepšit plnění smluv o úrovni poskytovaných služeb a současně snížit náklady?

I. JAK SI MYSLÍM, ŽE MOHU BÝT PRO TÝM PROSPĚŠNÝ:

Česká zemědělská univerzita v Praze

Váš tým ve formě. Test Your Team. Souhra. Řešení problémů. Kondice. Tvořivost. Výkonnost. Komunikace

Vývoj řízený testy Test Driven Development

CASE. Jaroslav Žáček

Vnitřní kontrolní systém a jeho audit

Vývoj informačních systémů. Přehled témat a úkolů

Testing as a Service. Přístupné, flexibilní a cenově výhodné řešení pro ověření kvality softwaru. Kompletní portfolio služeb testování softwaru

TREND POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE

KONTROLNÍ SEZNAM PRO SESTAVENÍ ÚLOŽNÉ KRABICE

AGILNÍ METODIKY VÝVOJE SOFTWARE

ZVÝŠENÍ KVALITY ŘÍZENÍ NA MĚSTSKÉM ÚŘADU LANŠKROUN V RÁMCI OP LIDSKÉ ZDROJE A ZAMĚSTNANOST. Reg. č. CZ.1.04/4.1.01/ KOMPETENČNÍ MODEL

ISO 9000, 20000, Informační management VIKMA07 Mgr. Jan Matula, PhD. III. blok

Obsah. Úvod 9 Členění knihy 10

EXIN Agile Scrum Foundation Příručka ke zkoušce. Vydání

Sebepoznání kde je zakopaný pes našeho úspěchu

Neurolingvistické programování. Facilitace a moderování - vedení týmových porad. Obchodní dovednosti. Kompetentní manažer

Vývoj informačních systémů. Jak vyvíjet v týmu

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

PROBLÉMY A SPECIFIKA VÝVOJE SOFTWARE

Bakalářský studijní obor informatika

Přípravné činnosti projektu. Mgr. Lenka Svrčinová Ing. Jan Ministr, Ph.D.

Lean Six Sigma Green Belt

JSOU INVESTICE DO TECHNICKÉHO A PROGRAMOVÉHO VYBAVENÍ ŠKOL SMYSLUPLNÝM PŘÍNOSEM PRO VÝUKU?

Předmluva 11. Poděkování 11 O autorech 12 Úvodem 12 Komu je tato kniha určena 13 Jak byste měli tuto knihu číst 13 Web 14

Projekt mobility pracovníků v oblasti školního vzdělávání

Studie webů automobilek

SUPPORTING PEOPLE WITH DISABILITIES COPING WITH GRIEF AND LOSS. Podpora osob s postižením při vyrovnávání se se smutkem a ztrátou

Dan Svoboda Partner, Business Ottima as

NÁVOD K PRACOVNÍMU LISTU

POČÍTAČE A PROGRAMOVÁNÍ

2. Začlenění HCI do životního cyklu software

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

Doporučujeme vyhnout se komunikaci, která je: příliš složitá nepoužívejte dlouhé, komplikované věty

Start Trh Spotřebitel Nápad Koncept Hodnocení. Kdo jsou cíloví spotřebitelé konceptu?

Obsah. Zpracoval:

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

Obsah Jak se vyrovnat s pocity, které jsou s učením spojeny Sedm dovedností, které vybídnou děti ke spolupráci... 44

Význam měřm. Mgr. Anna Borovcová doc. Ing. Alena Buchalcevová, Ph.D. VŠE Praha

Příloha 5. Specifikace předmětu zakázky - Nabídková cena pro dílčí plnění 3 Měkké a manažerské dovednosti

Jak mluvit s roboty. Dokážeš naprogramovat robota tak, aby postavil kelímky ve správnou stavbu?

Co je to matematika?

Co je to SCRUM! FRAMEWORK vs METODIKA. Ken Schwaber a Jeff Sutherland ho mají za framework Kde hledat detaily?

Rozvoj čtenářské a matematické gramotnosti v rámci projektu P-KAP 1. díl Čtenářská gramotnost

End-to-end testování. 26. dubna Bořek Zelinka

KOMU JE KNIHA URČENA?

METODIKA FEATURE-DRIVEN DEVELOPMENT NEOPOUŠTÍ MODELOVÁNÍ A PROCESY, A PŘESTO PŘINÁŠÍ VÝHODY AGILNÍHO VÝVOJE ing. Alena Buchalcevová, Ph.

Schůzky a porady: nástroj pro podporu konkurenceschopnosti každé organizace... nebo spíš ohrožení? TC Business School Praha, 28.5.

Zkouška ITIL Foundation

10 KROKŮ K DOKONALOSTI. Využívejte efektivně systém řízení kvality ve své firmě a staňte se lídrem ve svém oboru

Jak to je s tím druhem? Rozdělme si to jednoduše na dva druhy.

PŘEDMLUVA 14 ÚVOD 17 KAPITOLA 1 20 APLIKACE EKONOMICKÝCH NÁSTROJŮ VE VEŘEJNÉM SEKTORU 20

Semestrální práce z předmětu 4IT421 Téma: CMMI-DEV v.1.3 PA Project Monitoring and Control

VOIPEX Pavel Píštěk, strategie a nové Sdílet projek ts y práv, I né PEX inf a.s orm. ace se správnými lidmi ve správný čas

14 Úvod do plánování projektu Řízení projektu

Katedra managementu ŘÍZENÍ OBCHODU. Ing. Miloš Krejčí

Testování Java EE aplikací Petr Adámek

Využití chemie v procesu testování webových aplikací vytvořených pomocí technologií PHP a Java

Katalog vzdělávání 2016 Obsah

WebWalker

CO JE MARKETING V SOCIÁLNÍCH MÉDIÍCH?

Transkript:

Semestrální práce Metody zlepšení spolupráce vývojářů a testerů Předmět: Zlepšování procesů budování IS Zpracovali: Daria Draganova, Yauheniya Andreyuk 1

Obsah Úvod... 3 Proč zlepšovat komunikace... 4 Příčiny problému nepochopení... 5 Jak začít spolupráci?... 6 Metody zlepšení spolupráce... 7 Závěr... 9 Seznam zdrojů:...10 2

Úvod Problematika spolupráce vývojářů a testerů je dobře známa každému, kdo pracoval v tomto odvětví. I když jsou oba povolání velmi blízké a mají stejný cíl (dodání kvalitního softwaru), vývojáře a testery mají odlišný přístup. Vývojář se snaží vytvořit aplikaci a minimalizovat množství možných chyb, a tester se snaží všechny možné chyby najít. Tím pádem v hodně případech dochází ke konfliktu, neboť nikdo nerad uznává svoje chyby. Také často můžeme slyšet, že programátoři považují práci testerů za druhotnou a si stěžuji, že testeři se chlubí, jakmile najdou nějakou chybu a za osobní úspěch považuji, pokud programátor udělal hodně chyb. Takže jak je patrné v komunikaci mezi vývojáře a testery je hodně nepochopení a vzájemná nepřízeň, kterou současné metodiky týmové práce se snaží eliminovat. Cílem naše semestrální práce je přiblížit problematiku zefektivněni spoluprací testerů a developerů a nalézt mezery, ovlivňující efektivitu práce. Dalším cílem je zjištění metod zlepšovaní komunikaci oddělení testerů a developerů, a vyber klíčových metod. 3

Proč zlepšovat komunikace I když oba povolání jsou velmi blízké, často se stává, že programátoři vědí málo o testování a zároveň testeři vědí málo o specifických obtížnostech při programováni. Během spolupráce testerů a vývojářů některé věci se neřeknou přímo - věci, jako například to, kde vývojáři programu mají určitou nejistotu, nebo například jakou část kódu trvalo napsat déle, než se očekávalo. Projednání podobných věci by mohlo být pro testera vodítkem, čemu by měl dat větší pozornost a jaké jsou hlavní rizika programů. Tyto body by mohli ovlivnit nebo i úplně změnit scénář testování. [1] Jeden z nejpragmatičtějších důvodů spolupráci testerů a vývojářů je to, že tím pádem oni jsou schopní lépe zkoumat možné výsledky podmínek kódu, což umožnuje rychleji vybudovat model. Vždycky, když tester má možnost vidět jiný přístup řešení rizika, psaní kódu nebo programu, získává znalosti o dalším způsobu, jak vytvářet testovací scénář. Během spolupráci vývojáři se mohou naučit, jak efektivně testovat svůj kód a získat nový pohled na to, jak by mohl být použit jejich software. [1] Vývojáři ale nejsou jediní, kteří se mohou naučit něco nového. Testeři zároveň mohou získat důkladnější pochopení aplikací. Vzhledem k tomu, že vývojáři sdíleli své znalosti základního kódu, tester může se dozvědět, jaké oblasti produktu mohou obsahovat slabé stránky a získat znalosti specifické pro danou aplikaci. 4

Příčiny problému nepochopení Často se stává, že vývojáře nevidí software, jak jeho vidí tester. Oni většinou mají tendenci myslet na testy, které odrážejí typický způsob používání softwaru. Testeři naopak mají myšlení A co by se stalo, jestli bych zkusil tohle, takže myslí spíše na testy, které by mohly způsobit selhání. A proto vývojáře během spolupráci s testeři jsou často překvapeni pokusy o to, aby se dostat kolem kontrolního bloku programu. Takže vývojářské perspektivy a techniky testování liší od perspektivy testerů. Testeři mají tendenci soustředit se na perspektivu uživatele, zatímco vývojáři mají tendenci soustředit se na to, co jim program vypráví o tom, co se děje v zákulisí. [2] Taky se často stává, že vývojáře negativně reagují na snahu testera v podstatě zničit, to co on dlouho vyvíjel a dál tomu tolik energie a času. Jestli by vývojář a tester spolupracovali od začátku, bylo by možný lépe omezovat výskyt chyb a nebyla by potřeba něco ničit nebo předělovat. 5

Jak začít spolupráci? Není úplně vhodné hned aplikovat nějakou z metod. Je možné začít několika malými pokusy experimentu s párováním. Před začátkem spoluprací je zapotřebí si vybrat vývojáře, který může poskytnout přehled na vysoké úrovni o architektuře produktu. Dále se musí vybrat vhodný projekt. Není vhodný testovat celou aplikaci v jedné relaci a navíc spolupráce vývojáře a testera funguje nejefektivněji při testování nových funkcí, a když oba účastníci pracují na projektu od začátku. Dalším krokem by mělo byt plánování - zjištění času testu, délky relace a definice zaměření testování. Také by se měli upřesnit cíle a byt nadefinované výstupy testovacích relací (při programování jediný vystup - kód, při testovaní výstupu je víc - zprávy o vadách, zkušební dokumentace, zkušební případy atd.). Před samotným začátkem práce by se melo používat prostředí, které je vhodné i pro vývojáře i pro testera aby testovali na jednom stroji. Melo by se ujistit, že oni mohou spolupracovat bez přerušení a mají možnost vzájemně mluvit. Po ukončeni práci by se měli vyhodnotit výsledky a melo by byt posouzeno jak úspěšné bylo testování, nebo popřípadě co by se dalo příště udělat jinak. [3] Pro efektivní spolupráci jsou také podmínkou technické dovedností testera, potřebné pro testování a komunikaci s dalšími členy vývojového týmu. Jenom tester s dostatečnými technickými dovedností může sdílet a vývojářem úlohu, jako je například psaní automatizovaného testu. Na začátku je možné zkusit spárovat testera s vývojářem na hodinu, aby provedli nějaké průzkumné testování. Před tím je taktéž možné požádat je, aby strávili pár minut chůzí a se domluvili na plánu. Je třeba požádat tým, aby stanovil měřitelný cíl, např. "Snížit počet chyb zjištěných v den vydání o 20% v příštím měsíci" nebo "v příštích dvou měsících se nesmí nalézt více než jedna chyba v den releasu". Dalším způsobem začátku je navrhnout měsíční experiment: každý tester se spáruje s vývojářem o jeden den v týdnu a pracujte na jednom nebo obou z následujících krocích: 1. Stories ze zpožděné práce - "normální" práce vývojářů. 2. Psaní a provádění průzkumných testovacích stories, které již byly dodány a nasazeny do testovacích prostředí. 6

Metody zlepšení spolupráce Metoda Pair testing Je to technika, ve které dvě osoby testují aplikaci ve stejném počítači, přičemž podle recenzí se vývojáři jsou schopní naučit něčemu i testery. Před začátkem testování developer a tester si dají schůzku s cílem zjistit zaměření a rozsah testů. Záměrem muže být zjištění vážné chyby, někdy zajištění, aby kritéria pro přijetí zákazníkem byla splněna, nebo najít chyby v nové funkci. Během této schůzky své cíle a testovací nápady se píšou na tabuli, a nechává se kopie hotových poznámek pro vlastní potřebu. Vývojáři se takto naučí, jak efektivně otestovat svůj vlastní kód a získat nový pohled na to, jak by mohl být použit jejich software. Testeři získají důkladnější pochopení aplikací, které testují, a naučí se techniky ladění, aby zjistili příčiny defektů. Navíc testování v párech může porušit komunikační bariéry mezi vývojáři a testery a usnadnit budování týmu. [2] Metoda Brain Storming Metoda spočívá v tom, že tým developerů a testerů si sednou spolu a začne se generování co nejvíce nápadů na určené téma. Dále se tento seznam musí být očištěn a zbývající úkoly se rozdělí mezi týmy a každý pracuje zvlášť. Většinou se takhle rysi unittesty anebo testy jednotek kódu. Podle recenze někteří vývojáři byli s tímto typem spolupráce mnohem pohodlnější. [2] Metoda Jeden tým Tim je myšleno využití agilních metod, a to spočívá v tom, že rusí se bariera mezi tymy na rozdíl od vodopádových metod. Odstranění tohoto oddělení mezi testery a vývojáři nutí tým vyvíjet a testovat společně ve stejném sprintu a ve stejné iteraci. Tento koncept spolupráce, když neexistuji samostatné týmy pro rozvoj a QA, může způsobit zmatek, když firma začne provádět přechod od vodopádu k agilním praktikám. Je prováděn vývoj založený na testování, a testeři tím pádem nemohou testovat každý story zvlášť a testují více vrstev a pravděpodobně najdou problémy, které nemohou najít tím, že se zaměřují na jeden případ. Tato praxe testerů a vývojářů, kteří se dají dohromady, také podporuje větší míru mentality "jednoho týmu", kterou vyžaduje úspěšná implementace Agilních metod. [3] 7

Metoda Ping pong Tato metoda znamená, že jedna osoba (tester) píše nový test a vidí, že tento test spadl na chybu. Dále tester o tom informuje vývojáře, a ten píše takovým způsobem, aby test prošel. Tester zase píše nový test a ten spádné na jinou chybu. Zase hned informuje vývojáře a proces se opakuje znovu. [3] Metoda Strong-style pairing Tento styl je ve skutečnosti velmi podobný skutečné situaci navigátoru / řidiče v autě nebo na lodi, takže existuji 2 role. Role řidiče je v tomto případě nejkomfortnější, ale musí se nebát neznámým situacím a důvěřovat svému navigátoru. Navigátor tedy má dvě hlavní úlohy: 1. Uvést další instrukce řidiči v okamžiku, kdy je připraven jej provést Navigátor v podstatě spravuje seznam ToDo a velké detaily obrazu, aby se řidič mohl soustředit na kód, který píše. 2. Mluvit na nejvyšší úrovni abstrakce, kterou může řidič pochopit Druhým úkolem navigátoru je mluvit na nejvyšší úrovni abstrakce, kterou řidič dokáže v současné době trávit. Je odpovědností navigátorů komunikovat smysluplným způsobem a neměl by mluvit nad porozuměním řidičů. Je však také zodpovědností navigátorů, že stále zvyšuje úroveň komunikace a porozumění. Silné párování funguje skvěle i pro průzkumné testování. Navigátor, který poskytuje nápady, má svobodu sledovat, co se děje bez nutnosti přemýšlet o klávesnici a řidič sleduje pokyny a píše kód. [3] 8

Závěr Prvním cílem této práce bylo přiblížení čtenáři problematiky spoluprací testerů a developerů. Tento cíl jsme splnili v první kapitole, kde jsme uvedli důvody, proč by se komunikace mezi vývojáře a testery měla byt vylepšena. Dalším cílem bylo nalezení mezer, ovlivňujících efektivitu práce. Daný cíl byl splněn v následující kapitole, která seznamuje čtenáře s původem vzniku problém spolupráce těchto dvou oddělení. Hlavním cílem práce bylo zjištění metod zlepšení komunikaci oddělení testerů a developerů. Kostrou teto práce je kapitola Metody zlepšení spolupráce kde jsou popsané námi vybráni metody zlepšení komunikace vývojářů a testerů. Hlavní cíl práce jsme splnili v dané kapitole. Tím pádem všechny cíle teto práce povazujeme za splněné. 9

Seznam zdrojů: [1] N. JOHNSON, Karen. Improve Your Testing and Your Testers with Paired Testing. [Online]. 27.04.2010. Dostupné z: http://www.informit.com/articles/article.aspx?p=1579370&seqnum=2 [2] Kohl, Jonathan. Pair Testing: How I Brought Developers into the Test Lab. [Online]. 2018. Dostupné z: http://www.kohl.ca/articles/pairtesting.html [3] CRISPIN, Lisa. Pairing With Developers: A Guide For Testers. [Online]. Dostupné z: https://dojo.ministryoftesting.com/dojo/lessons/pairing-with-developers-a-guide-for-testers [5] PAYNE, Jeffery. 5 Ways to Pair Developers with Testers February. [Online]. 2018. Dostupné z: [4] COLANTONIO, Joe. Getting Testers and Developers To Work Together. [Online]. 28.07.2016. Dostupné z: https://www.joecolantonio.com/2016/07/28/getting-testers-developers-worktogether/ https://www.agileconnection.com/better-software-magazine-article/5-ways-pair-developerstesters 10