Veebirakenduste automaatne testimine vol 2 – jõudlus ja stabiilsus

May 24th, 2014 by matip

Jätkamaks postituses Veebirakenduste automaatne testimine – capybara-webkit vs poltergeist alustatud headless-draiverite võrdlust, püüan järgnevalt anda lühikese ülevaate sellest, milline on nende kahe jõudlus lihtsas võrdlustestis ning arutleda ka selle üle, kui stabiilne on suure hulga kasutajaliidese testide regulaarne jooksutamine pikemas plaanis.

Nagu juba viidatud postituses mainitud, on poltergeist’il päris mitu eelist, kuid kuidas on lood testide jooksutamise kiirusega? Võrdlemaks kahte draiverit, jooksutasin ühte ja sama testide kogumit mõlema draiveriga kolm korda ning kasutasin võrdlemiseks kolme korra keskmist tulemust. Valitud kogum oli koostatud selliselt, et testid läbiksid võimalikult palju erinevaid olukordi, nii keerukamaid kui ka lihtsamaid lehekülgi.

Tulemusi analüüsides selgus, et vähemalt antud rakenduse ja valitud testide korral ei olnud kahel draiveril olulist jõudluse erinevust. Lihtsamate lehekülgedega sai poltergeist hakkama kiiremini, kuid keerukatel, rohket Javascripti sisaldavatel lehekülgedel olid mõlemad draiverid keskmiselt üsna võrdväärsed. Kokkuvõttes oli valitud testide puhul poltergeist keskmiselt umbes 10% kiirem, kuid üle kõigi testide oli ajavõit suhteliselt marginaalne 5-6%. Loomulikult võib see number sõltuvalt testitavast rakendusest ja testide iseloomust kõikuda mõlemale poole, nii et kokkuvõtvalt võib öelda, et jõudluse poolest on mõlemad draiverid suhteliselt võrdväärsed.

Read the rest of this entry »

Noorteakadeemia vol. 1 ehk kuidas seadmetele hing sisse puhuda

April 15th, 2014 by Kristi Kaljurand

Noorteakadeemia on kutsutud ellu ideega ärgitada leiutamishuvi meie kõige nooremates. Esiotsa otsustasime kokku kutsuda Proeksperdi töötajate lapsed. Kohtumine sai korraldatud innovatsiooni- ja ettevõtluskeskuses Mektory, mille üheks eesmärgiks on tegeleda järelkasvuga ja näidata kooliõpilastele, et inseneri roll on huvitav, jõukohane ja elulähedane! Mektory majas on loodud palju võimalusi ka lastele.

Enne leiutama hakkamist tegime kiire ringkäigu Mektory põnevates ruumides. Kõigepealt ajas lapsed elevile rääkiv puu, mida sai ägedalt sakutada ja mis selle peale siiski inimkeeles (ehkki välismaises) palus end mitte nii tugevalt raputada. Kõigele lisaks teatas ta, et pole slot machine. Muuhulgas piilusime ka robotooriumisse, kus ka meie kõige suuremal lapsel Lauril silmad põlema läksid.

Read the rest of this entry »

Veebirakenduste automaatne testimine – capybara-webkit vs poltergeist

April 1st, 2014 by matip

Veebirakenduste automaatseks testimiseks on mitmeid võimalusi, üks neist on testida rakendust läbi kasutajaliidese – kasutades selleks siis kas päris- või headless-brauserit.

Kasutajaliidese kaudu testimisega kaasneb paratamatult hulk probleeme, alates sellest, et testid on suhteliselt aeglased võrreldes rakenduse backend‘i service‘i tasemel testimisega. Jah, palju asju saab veebirakenduste puhul testida kasutajaliidest absoluutselt puudutamata, kuid on ka olukordi, kus tuleb seda teha.

Näiteks on kasutajaliidese kaudu testimine praktiliselt ainus võimalus testida rakendust tegeliku kasutaja vaatepunktist, samuti võimaldab see teostada end-to-end testimist ning mis kõige tähtsam – veenduda, kas meie veebirakenduse frontend üldse töötab.

Read the rest of this entry »

Kas meil on midagi õppida PowerPointi koolitusest

March 31st, 2014 by lauriv

Kämblatäis vabatahtlikke Pro ridadest registreerisid endid sisekoolitajate koolitussarjale. 21. veebruaril jõudiski kätte esimene koolitus. Siin artiklis katsun anda ülevaate sellest, mis mõtteid see koolitus minus indutseeris ja mida muud me kõik võiksime sealt kõrva taha panna.

Esmalt kirjeldan koolituspäeva. See oli jagatud järgmiselt: kolmandik andragoogikat (täiskasvanute harimise teooriat) ja kaks kolmandikku PowerPointi. Nagu pealkiri reedab, keskendun ma siin sellele tagumisele kahele kolmandikule. Andragoogika oli küll huvitav ja mõtteid sütitav, kuid selles ei olnud ma enne nii kodus kui mulle meeldiks. Hiljem sain aru, kui palju rohkem ma sellest teemast teada tahaks. Seevastu PowerPoint on arvutiinimestel veres juba sellest ajast kui arvutid ja Windowsid tubadesse sisse murdsid. Seepärast tekkis koolitusel viibivatel Pro inimestel küsimus, et kas me oleme ikka õiges kohas.

Tegin südame kõvaks, ei andnud tärkava kevade kutsele järgi ja istusin oma kohustuslikud kolm tundi ära. Esineja oli iseenesest huvitav ja tegelikult laialdase kogemusega kõiksugustel Office’i teemadel. Õnneks näitas vahepeal ka naljakaid videoid Peeter Ojast – kui märkas, et inimesed hakkavad liiga laiali valguma. Read the rest of this entry »

Atlassian Summit 2013

October 16th, 2013 by priit

Sel aastal leidis Summit aset parimal aastaajal San Francisco külastamiseks – oktoobri alguses. Soojast ilmast ning vihma ja udu puudumisest hoolimata ei toimunud üritus vabas õhus, vaid endiselt samas laohoonest ümber ehitatud konverentsikeskuses. Osalesime Proeksperdist sel aastal 2 inimesega, mõlemal võrdluseks varasem Summiti-kogemus.

Atlassian Summit 2013

Esimese päeva avasid traditsiooniliselt Atlassiani asutajad Scott Farquhar ja Mike Cannon-Brookes. Scott alustas kliendi tähtsuse teadvustamisega kogu tarkvaraarenduse protsessis – kõik algab ja lõppeb ju kliendiga. Kliendi tagasiside põhjal tehtud muudatused teevad sageli heast tootest suurepärase. Et neid muudatusi kliendini toimetada, peavad meeskonnad tõenäoliselt tihemini reliisima. Siin tulevadki mängu Atlassiani tooted (ConfluenceJIRA & DevTools), mis proovivad seda protsessi võimalikult mugavaks ning ladusaks teha.

Read the rest of this entry »

Juhtideta organisatsiooni võimalikkusest Proeksperdis

September 18th, 2013 by Terry London

Enam kui viis aastat tagasi riigisüsteemist Proeksperti tööle tulles võttis mind vastu eriline, selgelt tunnetatav kultuur. Oli meeldiv avastada, et projektijuhid ja programmeerijad olid võrdsed partnerid ja et juhil on pigem töö ära tegemiseks vajalike tingimuste loomise roll – mitte ülemuseks olemine. Selgelt paistis välja, et tarkade ja teadlike inseneride juhtimine toimub eelkõige läbi usalduse, ühiste eesmärkide ja nende saavutamise. Märksõnaks oli horisontaalne ehk lame struktuur.

Tänaseks on Proeksperdi töötajate arv enam kui kahekordistunud. Lame struktuur on asendunud mitmekihilise hierarhiaga – äriüksustega, mis koosnevad meeskonnajuhtide veetud arendustiimidest. Toimub juhtide juhtimine.

Selle algselt loogilisena tundunud mitmekihilise organisatsioonistruktuuri puudused ei lasknud ennast pikalt oodata. Kolmeks äriüksuseks jaotatud Proeksperdis hakkasid arenema erinevad inforuumid, mis sõltusid sellest, kuidas vastav juht enda üksuses juhtkonna infot edasi kommunikeerib. Ettevõttes olevad üksused omandasid justkui eraldiseisvate firmade mõttelaadi. Read the rest of this entry »

Ärianalüüsi valdkonnas failide versioneerimine ja exceli failide võrdlemine (diff)

September 3rd, 2013 by valdop

Business intelligece (BI) ehk ärianalüüs on valdkond, kus toimub mitte tarkvara arendamine vaid tarkvara juurutamine. Nõnda, kuidas erineb tegusõna, on levinud arusaam, et tarkvara arendamise võtteid ei saa juurutamise alal rakendada. Tegelikult on nendel tegevustel mitmeid sarnaseid jooni. Ütleksin, et juurutamine on sarnane tarkvara edasi arendamisele.

Üks tarkvaraarenduse elementaarseim hea tava on failide versioneerimine (source control). Kõik failide muudatused peetakse sedasi meeles ja nii saab hiljem erinevaid variante võrrelda – ja vajadusel minna tagasi mõnda varasemasse seisu. Olukord, kus meeskonna jagu arendajaid muudab projekti faile siit-sealt – ilma, et muudatustest jälge maha jääks – on mõtlematu ja põhjustaks segadust. Seega, võttes aluseks juhise, et juurutamine on arendamisele sarnane, peaks olema võimalik ka ärianalüüsi valdkonnas failide versioneerimist rakendada. Teeme sellega proovi. Read the rest of this entry »

Mida silmas pidada testide automatiseerimisel

August 20th, 2013 by matip

Automatiseerimiseks sobivaimad testid on tavaliselt sellised, mis testivad suhteliselt lihtsaid ning sirgjoonelisi stsenaariumeid, kuid mis käsitsi jooksutades liigselt aega kulutavad. Automaattestid on väga head selliste ülesannete jaoks, mida inimene kas ei saa või lihtsalt ei taha käsitsi testida.

Automaatselt testitav funktsionaalsus ei tohiks olla habras ning liigselt sõltuv testi käivitamisele eelnevast olukorrast ning testi lõpptulemusest. Kui tarkvara mõne osa testimise automatiseerimine on liiga keeruline, nende testide haldamine aja- ning ressursimahukas, ning lõpptulemusena käsitsi testimisega võrreldes olulist võitu ei saavutata, siis enamustel juhtudel ei tasu selline automatiseerimine ära.

Read the rest of this entry »

Testijad ja arendajad – või ikkagi meeskond?

July 3rd, 2013 by Kristi Kaljurand

Käesoleva aasta juunis toimus Tallinnas teist korda rahvusvaheline Nordic Testing Days (NTD) 2013 konverents, mis keskendub testijate kultuuri arendamisele Eestis ja Põhjamaades.

NTD 2013 korraldus oli eelmisest korrast toekam ja fookus kaasaegne – loenguid ja töötubasid läbivaks teemaks oli Testers and Developers – Partners in Quality. Ilmselt oli lugu ka kuulaja valikutes, kuid kaks märksõna, mis loengutest ja töötubadest kummitama jäid, olid teamwork ja automation.

NTD 2013 koosnes kokku kolmest päevast. Esimene päev oli tutorial’ite päralt, teine ja kolmas aga olid tihedalt täis erinevaid ettekandeid ning töötube.

Proeksperdi panus NTD 2013 õnnestumisse

Automatiseerimise rõõmude ja murede lahkamine on ka Proeksperdi jaoks hingelähedane. Kui eelmisel aastal viisime Mati Parve eestvedamisel läbi ühe automatiseerimise teemalise töötoa, siis sel aastal oli meil kogemusi juba topelt jagada.

Read the rest of this entry »

Raspberry Pi ja ETV järelvaatamine – Flashi-vaba tsoon.

June 10th, 2013 by lauri

See siin on lühijutt ühest progeja tüüpilisest õhtust, mis hõlmaks justnagu tervet elutsüklit: ideed, probleemi püstitust, kastist-väljas mõtlemist, tagasivaadet, lihtsustamist, lahendamist ja nautimist.

Häda ajab härja kaevu.

Omal ajal oli ütlemine, et Microsoft kirjutab iga IBMi poolt toodetud arvuti tarkvara kohe pilgeni täis. Siis on põhjust jälle uue ja võimsama soetamiseks, mida taas kord uue tarkvaraga üle koormata. Ja nii ongi see juba aastakümneid kestnud. Ikka ja jälle leian end seda lõbusat legendi meenutamast. Alles huljuti juhtus, kui minu valdusesse sattus üks Raspberry Pi. Mida selle peal esimesena katsetada? Eks ikka GPU võimsust – see ju selle riistapuu eeliseks. Naiivse lootuse – kuid realistliku pessimismiga – hakkasin proovima oma lemmikteenust: ETV salvestiste internetist järele vaatamist. Tulemus oli muidugi ette teada.

Kui juba kahetuumalised CISC protsessorid ei suuda flash player rakendust täisekraanil sujuvalt jooksutada, ei suuda seda ka 25 dollarit maksev RISC. Põhimõtteliselt ei jõudnud isegi nii kaugele, et oleks pildi ette saanud. Kuid kas asi ikka piirdub sellega? Kas peaksin selle teadmisega rahulduma? Üks õige progeja ei rahuldu – enne kui pole ise järgi kontrollinud.

Puude taga on siiski mets.

No mida erilist see flash player siis teeb? Selle teada saamiseks tuleb tänapäeval appi iga endast lugupidav veebilehitseja, kus on võimalik suvalise koha peal paremat hiireklahvi vajutada ja inspect element käsku valida. Vahekommentaariks niipalju, et olles viimased 7 aastat sardsüsteemide C++ progeja olnud, olen üllatunud, millise hüppe veebilehitsejad vahepeal on teinud. Igas brauseris on põhimõtteliselt kogu silumissüsteem (debug) sees. Võimalik on vaadata mitte ainult lehe algset lähtekoodi vaid kogu HTML/JavaScript hetkeseisu, jooksutada käsurealt enda lisatud JavaScripti, profileerida jne. Siiski, esmapilgul ei näe kohe puude taga metsa – kui ainult seda flashi ees ei oleks! Tuleb flashi-vaba tsooni peal hiirt vajutada ja natuke kaugemalgi ringi kolada. Lõpuks selgub, et kõik videod on standardsed RTMP meediavood: vaja ainult URL teada saada. Siit juba midagi koidab. Konstrueerime tervikliku URLi ja anname ette Raspberry Pi vaikemängijale (omxplayer), mis on kohandatud Pi riistvaralist kiirendust kasutama (siiamaani ainuke teadaolev). Ja voila! Nii ilusat, sujuvat, vaikset ja nii suurel ekraanil ETV järelvaatamist pole ma veel kogenud. No mis häda on neil kogu aeg seda fläšši teha!? Meenub vanakooli IT mees. Meil on tõesti vist loomupärane omadus kirjutada ka kõige lihtsamad operatsioonid kõige ressursinõudlikumaks.

Lihtsus on geniaalsus.

Esimene mõte on nüüd teha selle kasutamine võimalikult mugavaks. Aga kuidas? Meil on antud tuhandeid võimalusi, sadu teid, aga ma olen õnnelik, et inimesed on nii ilusad ja head. Peas hakkavad keerlema tuhanded erinevad ideed uuest rakendusest, mis võiks töötada Raspberry Pi peal, mis tõmbaks ERRi serverist uut infot ja kuvaks seda kenasti suurel ekraanil. ETV kodulehel ei paista aga olevat isegi RSSi, rääkimata veebiteenusest. Tõenäoliselt kasutavad ERRi mobiilirakendused mingit rätsepalahendust, aga see polegi enam oluline. Seda kontrollida ma ei viitsi, sest selle kõige tegemine võtaks liiga palju aega. Mõte veereb hoopis analüütiku ja disaineri köögipoolele. Ma istun kodus, diivani peal, läpakas süles ja kolan ringi ETV kodukal. Kasutan justnimelt läpakat, kuna televiisoriekraanilt ei ole mugav teksti lugeda – olgu ekraan kui suur tahes. Videoklippe tahaks aga telekast vaadata. Mõeldud, tehtud. Tuleb teha üks veebilehitseja pistikprogramm või lehitseja liivakast, mis leiaks kodulehelt automaatselt video aadressi üles ja saadaks selle minu Pi-le edasi. Nii poleks vaja kulutada aega uue täisfunktsionaalse programmi kirjutamiseks/hooldamiseks ja jätaks kasutajale alles võimaluse tarbida ETV kodulehe rikkalikku sisu. Seda rikkalikku sisu, mis tavaliselt mobiilidele mõeldud versioonides puudub.

Nüüd alles läheb tehniliseks.

Eesmärk pühendab abinõu. Tegin ühe lihtsa Chrome’i plug-ini, mis iga avaneva lehe pealt otsib Flow Playerit. Leides selle, parsib ta sealt välja video aadressi ja pakub saatmiseks edasi Raspberry’s asuvale väikesele Pythoni skriptile, mis omakorda juhib omxplayerit. Lõpptulemus on üllatavalt mugav – kuigi kahjuks ei tööta RTMP striimi peal veel edasikerimine kuna seda pole lihtsalt siiani kirjutatud. Vabavara-maailmas pidavat aga asjad ju lihtsalt käima – vaja ainult natuke patchida ja confida! Seega, ülesandeks number üks on leida lähtekood! Kloonida omale repo Githubistmountida Raspberry Weezy image – kompileerida omale üks cross-compiler – õppida FFmpeg librat – kirjutada mõned read koodi – konfigureerida, kompileerida… ja… no peaaegu töötab. Edasi kerib, aga mängimist ei jätka. Tuleb käsitsi pausi panna ja paus maha võtta.

Aga nii lõppeb see seiklusterohke hilisõhtu. Aeg saab otsa ja uus päev toob uued väljakutsed. Jäägu siis pealegi nii, et elus tuleb osata käsitsi pausi panna ja seda käsitsi ka maha võtta.

Asjast huvitatud võivad laadida omale praeguse versiooni kogu tehtud tööst siit: ETV Vaarikas.