INTERFETE 2 WEB

Testarea interfetelor web


by  Iulian


 

Cat de des ti-ai pus intrebare sau te-ai gandit macar sa testezi pagina php/jsp/asp pe care tocmai ai intesat-o cu 2-3 librarii Javascript la moda, cateva hack-uri CSS sa-l dovedesti pe batranul IE5 si, de ce nu, 1-2 query direct pe baza de date. In mod evident un avantaj mare fata de interfetele aplicatiilor desktop: reutilizabilitate, dezvoltare rapida, modificari rapide si cu efort minim.

 

Totusi interfetele web au plecat de la HTML sec, un simplu fisier text, pentru comunicari simple si rapide. Principiul KISS (Keep It Stupid Simple) a continuat cu aparitia Javascript: ce permitea manipularea programatica a elementelor DOM, fara complicatii gen tipuri de obiecte, import-uri, pachete. Odata cu aparitia CSS si a standardelor W3C au aparut si diferentele majore intre implementarile diferite ale marilor producatori de browsere. Ajax a adus noi complicatii si batai de cap. Pentru a rezolva complicatiile a aparut un numar foarte mare de framework Javascript, care rezolav intr-adevar multe din neajunsurile acestui limbaj, aducand in discutie chiar si OOP si spatii de nume (namespace, vezi Dojo).

 

In conditiile astea devine cam greu sa KISS cand dezvolti o aplicatie web cu o interfata complexa.

Cei de la Mozilla au venit cu plugin Firebug care face HTML, CSS foarte usor de debugat/analizat. Exista si suport mai light pentru Internet Explorer, sau alternativa IE Toolbar.

 

Pentru a testa workflowul unei interfete web au aparut suite de tooluri ce simuleaza actiunile utilizatorilor pe site sau abstractizeaza o parte din functionalitatile site-ului pentru a permite testarea individuala a diferitelor tehnologii folosite (teste izolate sau unit testing). De obicei ofera suport pentru actiuni Javascript, dar nu pentru un applet Java sau popularele swf-uri.

 

Selenium este o astfel de suita de tool-uri. Modul de functionare se bazeaza pe scrierea testelor folosind  un plugin pentru Mozilla Firefox. Practic in aceasta etapa se parcurg toate actiunile posibile prin interfata web ce se vrea testata. Actiunile sunt salvate intr-un format propriu si pot fi exportate in multe limbaje de programare ceea ce permite optimizarea lor sau integrarea cu framework-ul de testare deja existent folosit pe partea de server a aplicatiei web. Etapa finala consta in rularea testelor fie deschizand aplicatia pe rand in cate un tip de browser, fie ruland-o simultan pe mai multe browsere tinta folosind GRID computing. Mai multe detalii despre aceasta ultima varianta gasiti aici.

 

Microsoft vine cu un tool interesant ce permite testarea in conditii de maxima utilizare a serverului pe care ruleaza aplicatia web. Aceste teste sunt mult mai importante decat pot parea la prima vedere, mai ales in conditiile unei interfete ce utilizeaza Ajax intensiv. Diferenta dintre 10 si 100 de utilizatori online este imensa; s-ar putea ca serverul sa cedeze mult mai repede decat v-ati fi asteptat. Mai multe detalii aici.

 

Cum serviciile web sunt foarte utilizate, m-am gandit ca ar prinde bine sa prezint si un framework ce permite decuplarea componentelor bazate pe trafic HTTP. WebInject foloseste un API bazat pe XML pentru a testa izolat partile ce tin de comunicarea HTTP din aplicatia web, eliminand intervalele de timp ce s-ar pierde cu testarea reala prin cereri la serverele vizate. Rezultatele testelor pot fi vazute in format HTML, sau intr-un GUI, sau pot fi exportate in format XML pentru a fi folosite mai departe.

 

 

 

Jocuri
Free Web Hosting