V úterý začal online kurz pod názvem "Leden - měsíc testování aplikací". Účast na první lekci předčila očekávání, stejně jako počet dotazů, který mi dal opravdu zabrat. Stále je ještě možné se přihlásit a zúčastnit dalších lekcí, více informací najdete na http://www.microsoft.com/cze/events/kurz-testovani-aplikaci/.

Záznam a prezentace

Záznam - https://www112.livemeeting.com/cc/microsoft/view?cn=&id=Z8FB7P&pw=

Prezentace ke stažení - https://skydrive.live.com/#!/view.aspx?cid=30D7E2F2BC3DB6BE&resid=30D7E2F2BC3DB6BE%21585

Otázky a odpovědi

Organizace kurzu

 

Budou pořizovány záznamy a v jaké formě?

Ano, zaznamenáno bude audio i video.


Kde mám spustit nahrávání?
Není třeba, abyste nahrávali. Nahrávám já a link na nahrávku nasdílím.

 

Kde bude záznam a prezentace nasdílena?

Odkazy budou zveřejňovány na http://blogs.msdn.com/vyvojari

 

Jak poznám, jestli jsem přihlášený pod správným jménem, tedy pod tím, pod kterým jsem se registroval? Stačí, když jsem ho zadal při přihlášení?

Ano, při přihlášení k LiveMeetingu zadejte stejné jméno a heslo jako při registraci, tak se sníží chybovost vyhodnocení účasti pro zjištění nároku na knihu.

 

Bude v některé přednášce ukázka nástroje na tvorbu automatizovaných testů?

Ano, bude to obsahem celé druhé lekce.

 

Je někde možné stáhnout VHD se vzorovou aplikací, testovacími případy apod., kde by bylo možné vše vyzkoušet?

Ano, je možné si stáhnout virtuál i se cvičeními a laby z adresy http://www.microsoft.com/downloads/en/details.aspx?FamilyID=E0198B64-4ACB-4709-B07F-359FB4D523BC&displaylang=en

 

Bude k dispozici ukázková aplikace a nastavené testy?

Ne zcela. Kompletní zdrojový kód aplikace dám k dispozici po druhé lekci. Abych nasdílel veškerá data včetně testovacích případů a dalších pracovních položek, musel bych sdílet celou databázi repository spolu s ostatními projekty, a to není reálné.

Nástroje pro manuální testování

 

Existuje možnost, jak do Shared steps vložit jiné Shared steps?

Aktuální verze to neumožňuje.

 

V demo příkladech jste nepoužíval diakritiku. Je to nějaké omezení Test Manageru?

Není to žádné omezení produktu, pouze moje lenost :-)

 

Lze použít jeden Test Suite ve více test plánech?

Sdílení s vazbou 1:n možné není. Můžete ale v testovacím plánu využít funkci „Copy test suites from another test plan“.

 

Mohu editovat "makra"? Ve smyslu dostat se do kód a upravovat kód?

Záznamy testera jsou XML soubory se sekvencí kroků. Jediný jednoduchý způsob, jak do nich tester může zasáhnout je mazání nežádoucích kroků v průběhu nahrávání. Pokud se ale bavíme o automatizovaných testech uživatelského rozhraní, jde o plně upravitelný kód. Více uvidíte ve 2. lekci.

 

Fast Forward je tedy něco jako AutoHotKey, kde si naprogramuji, co se má dít a pak to spustím, jestli tomu dobře rozumím.

Nevím, co si představujete pod AutoHotKey. Neprogramuji si, co se má dít, toto je zaznamenáno systémem při prvním průchodu, při dalších je pak opakována sekvence kroků. O mechanismu si více povíme ve 2.lekci.

 

Nezabírá to nahrávání videa příliš místa? Jaká je približně velikost minutového videa v rozlišení 1920x1200, což je dnes docela typické rozlišení?

Nejsem si jist, zda je to již typické rozlišení, ale na tom nezáleží. Počítejte řádově s jednotkami MB za minutu, hodně závisí na množství změn, které se na obrazovce dějí. Pokud chcete, můžete kvalitu nahrávání snížit v nastavení adaptéru. Dále můžete ukládat videa pouze pro neúspěšné testovací případy. A konečně, existuje nástroj pro mazání zastaralých velkých příloh. A konečně, v brzké době bude k dispozici doplněk pro mazání starých velkých příloh, jako jsou např. videozáznamy.

 

Je možné testovat i WinForms nebo WPF aplikace? Případně i Silverlight...

Ano, všechny uvedené typy. Více v 2. lekci o automatizovaném testování – podpora pro Fast Forward a automatizované testování je stejná.

 

Je možné Fast Forward a automatizované testování použít i pro nativní aplikace v C++?

V určité míře ano, ale není to oficiálně podporováno. Více ve druhé lekci.

 

Je možné Fast Forward použít pro aplikace nenapsané v .NET, např. Dynamics NAV?

Pouze v dosti omezené míře. Více ve druhé lekci.

 

Je možné Fast Forward použít pro PHP aplikace?

Při testování webových aplikací (ASP.NET, PHP, či jakýchkoliv jiných) jde v podstatě o testování webového prohlížeče, který „neví“ nic o technologii na serveru. Tedy rozhodně ano.

 

Kde uvidí tester informaci o tom, že k danému testovacímu případu již existuje bug?

Obojí jsou pracovní položky a je mezi nimi vazba. Nejsnáze tedy tak, že si uděláte dotaz do pracovních položek typu „New direct links query“, kde hlavní položka je typu Test Case a nalinkovaná položka typu Bug.

 

Existuje nějaký přehled, jaké testovací případy obsahuje sada testů (Test Suite)?

Zařazení testovacích případů do sad vidíte v Test Manageru. Pokud chcete přehled např. pro tisk, je možné použít Excel a připojit se do datového skladu a tam si zobrazit celou hierarchii v kontingenční tabulce (případně jiným nástrojem připojeným do datového skladu).

 

Na re-testování opraveného bugu je možné u manuálního testu použít nahraný postup (Fast Forward)?

Ano, samozřejmě. To je jedno z typických použití této technologie.

 

Je možné testovat i aplikace ve starších verzích prohlížečů?

Pokud budete chtít použít funkci Fast Forward, je nutné se držet podporovaných prohlížečů. V současné době to jsou IE7, IE8 a Firefox 3.5+

 

Je/bude možné v Shared Steps definovat více parametrů tak, aby nebylo nutné je při použití v konkrétním testu pokaždé vyplňovat?

V aktuální verzi to možné není, o budoucích je předčasné spekulovat. Použitý postup je v některých případech velmi vhodný, v jiných nepraktický. Pokud ovšem vyplňujete v testovacím případě stále stejné hodnoty pro parametry sdílených kroků, nabízí se otázka, zda by nebylo lepší udělat sdílené kroky neparametrizované a tím se této zbytečné práci vyhnout.

 

Je možné testovat UI s modálními dialogy?

Ano, bez problémů.

 

Lze při použití Fast Forware vyhodnotit i výsledek automaticky? Vy jste to při předvádění potvrzoval ručně.

Pokud máte na mysli vyhodnocení celého testu na základě kroků, tak test je úspěšný, pokud 1) potvrdíte pozitivně všechny validační kroky, 2) neoznačíte žádný krok jako selhaný. Pokud máte na mysli automatickou validaci jednotlivých kroků, tak to je úloha pro automatizované testování uživatelského rozhraní, kterému se budeme věnovat ve druhé lekci.

 

Dokáže UI test pracovat s AJAX prvky, např. autosuggestion menu např. vloží pár znaků a vybere třetí položku z nabídky menu, pokud tam je?

Ano, dokáže, pokud jsou správně nastavená ID prvků. Více ve druhé lekci.

 

Lze ve Fast Forward řešit synchronizaci mezi jednotlivými kroky? Ukázka je přece jenom nerealistická, ve většině případů lze očekávat zpoždění.

Fast Forward má poměrně sofistikovaný mechanismus pro tyto případy nazvaný „Wait for ready“. Tento lze i jemně nastavit, viz např. http://blogs.msdn.com/b/vstsqualitytools/archive/2009/08/10/configuring-playback-in-vstt-2010.aspx

 

Co testování webu, který mám umístěn lokálně, někde u sebe. Není to problém, je nutno něco  dokonfigurovat?

Není to vůbec žádný problém. Mírná komplikace je pokud se URL mění. V případě manuálního testu nebudete automatizovat první krok ke spuštění aplikace, ale spustíte ji např. pomocí zástupce (jeden klik navíc). V automatizovaných testech se ošetří kódem pro změnu URL.

 

Jakým způsobem se provádí exploratory testing?

Vytvoříte testovací případ s kroky – spusť aplikaci, přejdi na funkci XXX, zkus najít chybu. Chyby se pak zakládají na základě tohoto testovacího případu. Jako přílohu použijete sesbíraná data. Z takto vytvořené chyby lze později vytvořit testovací případ včetně automaticky vygenerovaných kroků. Viz např. http://msdn.microsoft.com/en-us/library/ee803840.aspx

 

Mám široký monitor. Když dám Run, smrskne se mi to celé, včetně ikon na ploše - ty se posunou do levých dvou třetin obrazovky. Je možné to nějak řešit nebo se musíme smířit s tím, že ikony na ploše nemohou být u široké obrazovky vpravo?

Pozici nástroje lze ovlivnit pomocí voleb pod ikonkou vpravo nahoře (vypadá jako rozdělená obrazovka). Zkuste, zda vám jiný režim nebude vyhovovat lépe.

 

Může Test Manager zaznamenávat parametry klientské stanice, když běží na lokálním PC a testuje se na vzdálené ploše?

Nejsem si jist zda rozumím dotazu. Pokud myslíte systémové informace, tak ty lze zaznamenat na počítači, kde běží Test Manager a dále ve všech virtuálech v testovacím prostředí.

 

Tester ale přece nepřestane pracovat, aby se mohl vývojář podívat na bug. Nepřijde při revertování virtuálu tester o aktuální pozici?

Máte pravdu, pokud chcete používat při virtualizaci snapshoty, stává se virtuální prostředí de facto jednouživatelské a nemůže ho používat více lidí. Jak jsem říkal, snapshot jako dokumentace chyby je poslední možnost, nikoliv rutinní prostředek. Jenom bych upozornil, že není problém virtuální prostředí klonovat a mít jich více instancí, více ve třetí lekci.

 

Je možné, aby vývojář dělal na virtuále (ověřoval BUG) společně s někým dalším?

Více uživatelů se může naterminálovat na jeden virtuál, to problém není. Víceuživatelská práce však jde jenom velmi těžko dohromady s používáním snapshotů na tomto virtuále.

 

Může být Fast Forwared využit i v prostředí, kdy testování probíhá na terminal serveru a Test Manager běží na lokálním PC (terminál je v jiné doméně než TFS server)?

Fast Forward vyžaduje, aby aplikace běžela ve stejném OS jako Test Manager. Ve vašem případě byste tedy Test Manager musel běžet rovněž v okně terminálu (stejném). To že je v jiné doméně nemusí nutně vadit, pokud je konektivita směrem k TFS. Jenom je při startu Test Manageru třeba zadat svoje doménové přihlašovací údaje.

 

Jestli to chápu správně tak developer, je schopen po dotestování (např. po nalezení chyby) i zjistit přesně, které řádky kódu tester otestoval. A dále lze tedy zjistit, kolik řádku kódu tester pokryl testy?

Ano, jedním z diagnostických adaptérů je Code Coverage.

 

Snažil jsem se přijít jak používat sdílená testovací data (například SQL dotazy, seznam subjektů apod.), ale nepřišel jsem na to jak je zpřístupnit testerovi během testování. Respektive lze nějak zpřístupnit testerovi v test run i obsah jiných atributů u testovacího případu než jsou testovací kroky?

Uživatelské rozhraní rozšiřovat nelze. Co ale můžete udělat je vlastní Diagnostic Data Adapter, který nebude nic diagnostikovat, ale místo toho zobrazí uživatelské rozhraní s čímkoliv si přejete. Můžete použít např. událost TestCaseStart. Více zde http://msdn.microsoft.com/en-us/library/dd286737.aspx

Ostatní technické dotazy

 

Lze použít IntelliTrace v 64-bit OS?

Bude to možné ve VS 2010 Service Pack 1, tedy někdy na jaře.

 

Je nástroj určen přímo pro nějakou metodiku (např. RUP), či je volně k přizpůsobení?

Je volně k přizpůsobení pro libovolnou metodiku. Nástroje jsou dodávány se 3 šablonami (MSF for CMMI, MSF Agile, SCRUM), které primárně určují typy, strukturu a workflow pracovních položek. Tyto šablony je možné libovolně upravovat nebo vytvořit šablony vlastní.

 

Pokud omylem smažu nějaký bug, lze jej obnovit?
Bug nelze smazat omylem. V nástrojích ho lze pouze zavřít. Mazání pracovních (operace Destroy) je k dispozici pouze správcům týmového projektu a pouze z příkazové řádky. Po tomto smazání už bug obnovit nelze.

 

Existuje nějaký způsob nasazení, kdy spolupracují dva vývojáři bez společné repository? Nějaké zrcadlení repository?

Ne, není. TFS je založena na centralizované architektuře klient-server.

 

Kdy je plánována další verze Test Manageru nebo plánuje se nějaký update známých chyb a nedostatků? (např. multiline u jednotlivých kroků testu)

Nejbližší plánovanou verzí je Service Pack 1 někdy na jaře.

 

Je někde možné vidět seznam známých problémů, která budou vyřešeny v Service Pack 1 pro Visual Studio 2010?

Seznam je zatím neúplný, ale je. Viz http://blogs.msdn.com/b/jasonz/archive/2010/12/20/visual-studio-2010-service-pack-1-beta-feedback.aspx, specificky pro testování

http://blogs.msdn.com/b/amit_chatterjee/archive/2010/12/10/visual-studio-2010-service-pack-1-beta-released-information-on-test-and-lab-management-changes.aspx 

 

Jaký nástroj na evidování chyb byl použit?

Veškeré pracovní položky – požadavky, testovací případy, chyby apod. jsou uloženy v jednotném repository Team Foundation Serveru.

 

 Jakým způsobem probíhá záloha celého stavu testů (např. při reinstalaci systému)? A lze nastavit automatické zálohovaní celého projektu (např. pokud dojde k pádu HDD)?

Veškerá data jsou uložena v repository – databázi SQL Serveru, který je licenční součástí TFS. Zálohování je tedy standardní zálohování databáze. Je na vás jak často ji provádíte, případně zda si ji automatizujete.

 

Je výrazné omezení prezentovaných funkcí v případě použití VS 2010 a TFS 2008?

Repository v TFS 2008 neobsahuje struktury potřebné pro testování, funkce testování je tedy výrazně omezena. Ostatní funkce (projektové řízení, správa zdrojového kódu, buildy apod.) v rozumném rozsahu fungují.

 

Je možné TFS (potažmo jen testování) použít i na projekty psané v PHP (ve VS)?

Zcela určitě. Komfortní pluginy jsou pro Visual Studio a nástroje na bázi Eclipse. U ostatních nástrojů je komfort menší (přeskakování mezi aplikacemi), ale je možné je používat rovněž.

 

Je to možné propojit s VMWarem nebo jen s MS virtuálními nástroji?

Pokud použijete VMWare, považují nástroje takový virtuál za fyzický počítač. Funguje to, ale přicházíte o řadu výhod, které máte při použití HyperV. Více informací bude ve třetí lekci.

Licenční a produktové dotazy

 

Ve kterých verzích Visual Studia 2010 je obsažen nástroj Test Manager?

V nejvyšší edici Ultimate a ve speciální testerské edici Test Professional.

 

Je k testování potřeba TFS?
Záleží na tom, jaké testování máte na mysli. Pro manuální testování je TFS nezbytné. Pro výkonnostní testování a automatizované testování uživatelského rozhraní nutné není. Nicméně TFS nepředstavuje licenční náklad navíc, neboť ve všech edicích Visual Studia 2010 s MSDN předplatným je jedna licence TFS serveru a jeden CAL.

 

Nekonečná škoda, že IntelliTrace je pouze ve verzi Ultimate. Tím je to pro nás nepoužitelné.
Osobně s vámi souhlasím, že je to nešťastné, ale bohužel licenční podmínky nemůžeme lokálně změnit. V řadě firem lze vystačit s jedinou licencí VS 2010 Ultimate. Firmy v partnerském programu ji mohou zístkat s 20% slevou ve srovnání s běžnou cenou v programech Open a Open Value, se splátkami rozloženými do 3 let.

 

Je možné získat VS 2010 Test Professional prostřednictvím partnerského programu (např. Silver nebo Gold kompetence).

Bezplatná licence na tyto edici není součástí žádného partnerského programu. Součástí partnerského programu je speciální sleva 20% slevou ve srovnání s běžnou cenou v programech Open a Open Value, se splátkami rozloženými do 3 let.

 

Tato školení budou vyžadovat verze VS 2010 Ultimate a Test Professional?

Manuální testování (lekce 1) a virtualizovaná testovací prostředí (lekce 3) vyžadují edice Ultimate nebo Test Professional. Vytváření automatizovaných testů UI (lekce 2) je možné v edicích Premium nebo Ultimate. Výkonnostní a zátěžové testy (lekce 4) vyžadují edici Ultimate. Nástroje na zvyšování kvality kódu (lekce 5) jsou z velké části doménou edice Premium nebo Ultimate.

 

Je nutné, aby celý tým testerů měl pro testování nainstalováno Visual Studio?

Odpověď vyplývá z výše uvedené odpovědi a závisí hodně na tom, jakou část testování máte na mysli. Pokud manuální testování, pak typický tester bude mít nainstalovanou edici Test Professional. V jejím plném marketingovém názvu se též vyskytuje „Visual Studio“, ale je to speciální nástroj pro testery, který s vývojovým prostředím Visual Studia nemá nic společného.

Ufffffffffffffffffffff,
Michael