Kurz testování - záznam, prezentace, otázky a odpovědi k 1. lekci

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 https://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 https://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 https://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ř. https://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ř. https://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.