[ Log On ]

Baseless merge

Posted by frennky on 3/12/2012 @ 11:27 PM in Quality Assurance

Cilj ovog članka jeste da objasni šta je baseless merge i kako sprovesti takav merge. Razlog zašto pišem baš o ovome proizliazi i toga da sam više puta bio u situaciji da mi se developeri, pa čak i oni sa više iskustva, obraćaju sa istim problemom: kako izvršiti spajanje grana koje nisu u direktnoj (roditelj-dete) vezi.

[ more ]

Skrivanje interfejsa, klasa i metoda

Posted by frennky on 2/27/2012 @ 10:27 PM in Web Development

Sigurno ste nekom prilikom napravili biblioteku na koju ste bili ponosni, a onda totalno razočarani pretrpanim IntelliSense-om kada pokušate da je koristite. Veliki broj interfejsa, klasa ili metoda čine vašu biblioteku teškom za korišćenje. Pravilnom upotrebom modifikatora pristupa ovaj problem se može samo delimično sanirati, jer neki tipovi jednostavno moraju biti javni. Ovaj problem je naročito očigledan ako ste pravili biblioteku koja izlaže fluent API.

Na svu sreću postoji jedan atribut u okviru System.ComponentModel namespace-a koji nam može u ovome pomoći.

[ more ]

Migracija sa Selenium RC na Selenium WebDriver

Posted by frennky on 2/14/2012 @ 9:28 AM in Quality Assurance

Kako je WebDriver naslednik Selenium RC-a, svakako da je bolja investicija pisati nove testove korišćenjem novog API-ja. Međutim, šta raditi sa testovima koji već postoje i koji su napisani za Selenium RC. Tvorci WebDriver-a su ovaj problem imali u vidu i zbog toga je moguće izvršiti migraciju na novi API na prilično bezbolan način.

[ more ]

Generic Controller

Posted by frennky on 1/30/2012 @ 10:38 PM in Web Development

Kao nastavak na prethodni članak, ovde je opisan jedan od načina realizacije generičkog rešenja za kontrolere. Ono što je zajedničko za većinu kontrolera jeste da sadrže CRUD (Create, Read, Update, Delete) operacije. Međutim, kontroleri se oslanjaju na različite Repository implementacije i manipulišu različitim entitetima. Zbog toga je logično napraviti neku baznu klasu koja obuhvata CRUD operacija ali je ujedno i generička kako bi mogla da radi sa različitim entitetima. Ovaj članak se nadovezuje na prethodni - Generic Repository, tako da je preporučljivo prethodno pročitati i taj članak.

[ more ]

Generic Repository

Posted by frennky on 1/17/2012 @ 10:28 PM in Web Development

U ASP.NET MVC zajednici jako je popularna upotreba Repository paterna za rad sa podacima, zbog toga gotovo da ne postoje primeri koji se ne oslanjaju na ovaj patern. Više informacija o Reposiotry paternu može se naći na MSDN-u ili na sajtu Martin-a Fowler-a, a u ovom postu je prikazan kod koji ilustruje kako može da se implementira generički Repository nad Entity Framework-om.

[ more ]

WebDriver - ITakeScreenshot

Posted by frennky on 12/15/2011 @ 10:19 PM in Quality Assurance

Prilikom izvršavanja auto testa često sam bio u situaciji da mi je potreban screenshot aplikacije. Razloga za to može biti više, ali najčešći razlog jeste potreba da se uhvati trenutak u kome je test pao kako bi se lakše utvrdio uzrok.

Pored toga neke stvari je neophodno testirati, ali samo testiranje nije moguće u potpunosti automatizovati. Na primer, potrebno je testirati da li je layout ili uopšte neki vizuelni aspekt aplikacije korektan.

Koji god razlog da je, pomouću Selenium 2 WebDriver-a moguće je napraviti screenshot internet pretraživača na vrlo jednostavan način.

[ more ]

PageMapper

Posted by frennky on 12/3/2011 @ 7:53 PM in Quality Assurance

U prethodnom postu sam govorio o Page Object paternu kao načinu pisanja UI testova i dao primer koji se oslanja na Selenium WebDriver. Iako ovaj pristup smanjuje dupliranje koda i olakšava održavanje, implementacija Page Object klasa može da bude prilično zamorna.

Da bi koristli Paga Object kalse, potrebno je da izvršimo mapiranje korisničkog interfejsa aplikacije koja se testira. Ako uzmemo u obzir da jedna netrivijalna aplikacija može da ima nekoliko desetina, pa i par stotina, stranica a da pri tom svaka stranica može da ima veći broj UI kontrola koje podržavaju neki vid interakcija, jasno je da UI mapiranje može da preraste u veliki posao.

[ more ]

Page Object Pattern

Posted by frennky on 11/30/2011 @ 11:03 PM in Quality Assurance

Od testova se očekuje da se brzo prilagode promenama korisničkog interfejsa, koje su nažalost vrlo česte. Pored toga, od testova se očekuje da rade sa više različitih korisničkih interfejsa za različite uređaje, počev od web stranica za desktop browser-e pa do mobilnih verzija stranica za mobile browser-e.

Za ove probleme postoji univerzalno rešenje u vidu Page Object paterna koji se može primeniti kako na web tako i na desktop aplikacije, odnosno na bilo koju vrstu GUI aplikacija.

[ more ]

Selenium 2 - WebDriver

Posted by frennky on 11/18/2011 @ 10:39 PM in Quality Assurance

Selenium 2 (WebDriver) pretstavlja jedno od rešenja za automatsko testiranje web aplikacija. Ima jednostavan API koji se brzo i lako uči, svakako lakše nego Selenium-RC (1.0) API, što naravno čini testove lakšim za razumevanje i održavanje. Ne zavisi ni od jednog test framework-a tako da se može se koristiti uz bilo koji unit testing framework (NUnit, xUnit, MSTest itd.).

[ more ]