Autor Zpráva
xxxObiWan
Profil
Ahoj,
chtěl bych se zeptat na vaše zkušenosti z praxe: Jakou používáte strukturu pro Selenium testy?

Například, mám administraci e-shopu. V něm jdou přidávat, upravovat, mazat produkty, měnit jim pořadí, skrývat. Taky k nim jdou přiřazovat obrázky, atd. Když chci pomocí Selenia takovouto správu produktů testovat, napadá mě několik možností:

1) Vše, co se týká produktů, do jednoho testu. Tzn. vytvoŕím si test, kde se přihlásím do administrace, vytvořím nějaké testovací produkty, zkusím je upravit, přidat jim obrázky, upravit obrázky, smazat obrázky, zkusím změnit pořadí produktů, zkusím jestli funguje filtrace produktů. Nakonec produkty smažu a odhlásím se.
- takovýto test bude obsahovat vše, co se týká produktů; bude ale velmi dlouhý; nevím, jestli se v něm po čase někdo vyzná :-)

2) Rozdělím testy produktů na menší pod-testy. Budu mít jeden test na základní operace s produkty (přihlásím se, vytvořím, upravím, změním pořadí, smažu, odhlásím se). Pak další test na obrázky (přihlásím se, vytvořím produkt, přidám/upravím/smažu obrázky, smažu produkt, odhlásím se). Pak další test na vyhledávání a filtraci produktů (přihlásím, vytvořím produkty, zkusím vyhledávat/filtrovat, smažu, odhlásím).
- testy budou kratší, zřejmě i přehlednější; hodně akcí se zde ale opakuje (přihlášení, vytváření produktu apod.), což znesnadňuje pozdější úpravy

3) Rozdělím testy na více svázaných testů. Vytvořím první test, kde se přihlásím. Další test, který bude zkoušet přidávání produktů. Pak další, který bude testovat filtraci, vyhledávání, změnu pořadí produktů. Pak další test, kde budu přidávat/upravovat/mazat obrázky k produktům. Pak další test na mazání. A nakonec test na odhlášení.
- testy budou krátké a přehledné; nelze je ale spouštět samostatně; vždy na sebe musí navazovat, nelze ani změnit jejich pořadí

Ani jeden z těchto způsobů mi nepřijde ideální. Zdá se mi, že mi něco musí unikat a že jen neznám všechny možnosti, které Selenium nabízí. Jakou strukturu používáte vy?

Díky zá názory a za tipy.

P.S. Se Seleniem začínám, takže mi jde především o Selenium IDE.
VitekJezek
Profil
ahoj,
moje zkusenosti mi relativne brzo odnaucili pouzivat Selenium IDE, ale psat si testy primo v PHPUnitu - pri dlouhodobejsi praci bylo neunosne upravovat zmeny struktury HTML na vice mistech. Nyni je pisu s mirnou abstrakci:
1) "API" - jde o sadu zakladnich funkci, ktere na webu mam; typu "prihlasit se", "vloz produkt", "edituj produkt" atd... Zde pracuju primo s XPath, ale metody se snazim mit maximalne jednoduche
2) "scenare" (= samotne testy) - zde pracuju pouze s napsanym API, takze je to velmi prehledne, typu (za predpokladu, ze "API" mam v tomto objektu, coz u vetsich aplikaci neni uplne udrzitelne; na male to muze stacit):
$name = "nejaky item";
$price = 13;
$this->login();
$this->insertItem($name, $price);//napr. jej specifikuju dle nazvu & ceny
$this->checkItem($name, $price);
$this->logout();

Muzu tak jednoduse:
1) upravovat strukturu stranek a reflektuju tuto zmenu jen na jednom miste
2) pridavat nove testy, ktere reflektuji aktualni bugy
3) pripadne i bavit se se spolupracovniky (ci technicky orientovanym klientem) o tom, co to vlastne ma jak delat ze strany "uzivatelske"

Mimochodem snazil jsem se o tom povidat tuhle na Barcampu, pripadne si o tom rad popovidam na Posobote ; )
RDPanek
Profil *
Ahoj, nejblíže mi je druhá varianta - testovací scénáře se podobají US ve scrumu. S tím Selenium IDE to opravdu nemá smysl - nespustíš to automatizovaně, při a po buildu tvým kolegou, musíš řešit ve všech scénářích změnu elementu, pokud k tomu dojde, neotestuješ další prohlížeče a mobilní emulátory a tím přicházíš o podnětům k opravě, které tvůj projekt může obsahovat.

A pokud jde o "hodně akcí se zde ale opakuje" tak si to pořešíš jednou metodou, kterou pak používáš v ostatních testech.

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: