Veel tankiga seenel käimisest

Tegelikult ajendas mind kirjutama Valdo postitus SOAPi testide automatiseerimisest. Ma ei tea kuidas teile teistele tundub, aga minule jätab Visual Studio SOAPi testide jaoks küll ebaproportsionaalse mulje. Kõik see GUI ja proxide genereerimise wizardid ja noh peamiselt siiski – Windows only vahend – ei kõla nagu veebi testimiseks mõstlik. Aga eks ole Youtubest nähtud kuidas tankiga seenel ka käiakse või õlle jahutamiseks reaktiivmootor ehitatakse.

Jutt keerukusest kõlas intrigeeriv. Mõtlesin, et prooviks siis ise ka. Ütlen ausalt, ei olnud ka minul varasemat kogemust selles vallas. Aga et mitte igavalt Valdoga samasse auku astuda valisin keeleks Ruby.

Ruby install on kõigis enamkasutatavates keskkondades (mida mina kasutanud olen) sirgejooneline. Installerid on olemas või on Ruby opsüsteemi vaikimisi ära installitud. Pole vaja midagi “internetist otsida” ja mööda foorumeid aurata. Hilisem librade install käib sisse ehitatud package manageriga imelihtsalt.
Continue reading “Veel tankiga seenel käimisest”

Kuidas automatiseerida veebiteenuse testimist üle SOAP protokolli

Proeksperdi plaan on testide laialdane automatiseerimine. Esimeseks katsetuseks sai telekommunikatsiooni projekt, kus iseteeninduse veebileht suhtleb teenuste serveriga ja infovahetus toimub vana hea SOAP protokolli abil. Regressiooni käigus tuleb testida, kas teenused käituvad õigesti ja seda saab teha käsitsi iseteeninduse lehte kasutades. Lühidalt öeldes: serverile on vaja saata HTTP päringuid ja veenduda, et tagasi tuleva paketi sees on õige info. Säherdune ülesanne tundub jõukohane just arvutile meie eest ära teha.

SOAP – Simple Object Access Protocol on tuntud asi, aga kohe kuulsin lisaks, et nii “lihtne” see ka ei ole. SOAPiga käib kaasas WSDL (Web Services Description Language) kirjeldus, mis on antud teenuse kirjeldus veebilehel. Sellest saab teada, mis funktsioone teenuselt kutsuda saab, mis argumente tahetakse, milline objekt tagastatakse ja mida objektid sisaldavad. Õnneks on asi nii standardne, et on olemas erinevates keeltes library’d, mis funktsioonide ja klasside genereerimise automaatselt ära teevad, ega ole vaja ise WSDLi dešifreerida. Tulemuseks on PROXY, mis võimaldab funktsioonide näol veebiserverile päringuid saata ja mingeid XMLi ega HTTP päringuid pole üldse vaja näppida.

1. päev – PERL

Automatiseerimise üks eesmärk on asjad võimalikult lihtsana hoida. Kuna olin sellega veidi kokku puutunud, sai esimeseks valikuks PERL. Otsimise peale selgus, et on kaks pakki Continue reading “Kuidas automatiseerida veebiteenuse testimist üle SOAP protokolli”

GPS tripmeeter Androidile

Kõik algas sellest, et hea tuttav rallisõitja küsis minult, kas ma suudaksin muundada tema telefoni GPSi põhiseks tripmeetriks. Sest õiged ralli tripmeetrid on hirmus kallid ja see lahendus oleks palju täpsem. Lisaks jääks ära aeganõudev kalibreerimine rehvi mõõdu muutumisel, mida hooaja käigus üsna tihti ette tuleb. Vastasin, et tema Nokiat muundada ei oska, sest ühtegi seadet pole arenduseks võtta – aga tema kaardilugejat, Androidi jooksutavat Samsungi aga küll. Sellest piisas ja lõime käed.

Esimeseks probleemiks sai kohe, et kuidas tavalisi ralli tripmeetreid üldse kasutatakse. Pole ei mina ega tema ühtegi sellist masinat näppinud ja piltide järgi oli enamus aparaatidel mitu tablood ja hulgim nuppe. Selleks sai ette võetud tõenäoliselt  maailma lihtsaima ralli tripmeetri, ehk õigemini kompuutri, Monit Rally Q-Seeria kasutujuhend. Sellest pidi piisama, et välja selgitada, mida ühe lihtsa tripmeetriga teha peaks saama.

Niisiis, mida üks lihtne ralli tripmeeter tegema peab (Monit Rally Q-10 alusel):

  • lugema kogu- ja vahedistantsi, nii kasvavalt kui kahanevalt,

Lisaks peab sellega saama:

  • nullida eraldi vahedistantsi ja mõlemat distantsi,
  • muuta lugemise suunda või üldse seisma panna ja
  • distantsi käsitsi muuta.

Nullimine, lugemise suuna muutmine ja seisma panek võiks olla teostatav mingi välise puldiga.

Väliseks puldiks oli algselt mõte võtta mõni nupuga hands free seade. Kuid tehniliste raskuste tõttu sai idee tulevasteks versioonideks tallele pandud. Sellest hoolimata sai lõpptulemus hea ning rakendus suudab ka jalakäija kiirusel täpselt vahemaid mõõta.

Esialgu hoian veel pöialt, et rakendus esimesed tuleristsed Maarjamaal edukalt läbiks. Võõrsil rakenduse kasutajate hulk aina kasvab ja juba on Google Play poes ka esimesed arvustused üleval.

Huvilised saavad lahenduse kätte Google Play poest.

Veebirakenduste turvalisusest

Osalesin hiljuti veebirakenduste turvakoolitusel, mis muutis mu suhtumist internetti ilmselt igaveseks. Miks? Kuidas sulle meeldiks veebipoest saada näiteks tasuta plasmateler, 9 mobiiltelefoni ja lisaks veel väike rahasüst krediitkaardile? Kõik see on teoorias võimalik, kui veebipoe programmeerija on teinud mõned vead, testija pole neid üles leidnud ja ka firma muudes protsessides on puudujääke.

Aga kuidas siis neid tasuta asju saada? Näiteks, proovi panna ostukorvi sulle sobiv teler ja -9 mobiiltelefoni (just, negatiivne arv), mille kogusumma ületab teleri maksumuse. Kui tellimus läbi läheb, saad parimal juhul nii teleri, telefonid (kuna laos võidi arvata, et see miinusmärk on mingi süsteemi viga) kui ka negatiivse lõppsumma krediitkaardile (kui raamatupidamises arvati, et tegu on kreeditarvega). Kõlab uskumatult, aga väidetavalt true story.

 

Et taolisi vigu vältida, peaks kõigepealt teadma, kuidas pätid neid otsivad. Ning just sellest antud koolitus oligi. 2 päeva hands-on “häkkimist” ja nüüdseks vaatan ma pea igat veebi input-form‘i natuke teise pilguga. Kui minu sisestatud andmeid samal saidil kuskil teises kohas ka välja näidatakse, siis teen paranoiliselt väikse testi. Näiteks, toksin input‘i sisse “javascript:alert(1337);”, salvestan ja kui selle peale hüppab mulle ette hüpikaken, kuhu on kirjutatud 1337, siis saab seal lehel juba väga palju pahandust korda saata :) Kuigi see oli väga lihtsustatud näide ja programmeerijad tavaliselt päris nii elementaarseid vigu ei tee, siis näitab see kätte suuna, kuidas peaks mõtlema nii veebirakendusi arendades kui ka testides.

 

 

Koolitusel kaeti hulganisti erinevaid ründe liike ja viise, kuidas nende vastu kaitsta. Mõned märksõnad: Cross-Site Scripting (XSS), küpsised (cookies), sessiooni kaaperdamine, sunnitud päringud (Cross-Site/On-SiteRequest Forgery), kasutajaliidese võltsimine (User Interface Redress Attacks, ClickJacking, CursorJacking jne). Koolitusel öeldi tabavalt, et “ründajale piisab ühest turvaaugust, arendusmeeskond peab leidma ja parandama kõik”.

 

Arvestades, et isegi kahest päevast jäi kogu materjali katmiseks väheks, siis ühe artikliga ei tee harimise osas just kuigi palju ära. Tegelikult peaks sellise mõttemaailma tutvustamine olema ülikoolide IT-teemalistes õppekavades, sest kust muidu äsja tööturule tulevad noored teadma peaks, kuidas nii tööandja kui viimase klientide huve kaitsta. Ja ka juhtide tasemel peaks veebirakenduste turvalisuse teemale rohkem rõhku panema – kasvõi selleks, et nad teaks, mida nõuda. Teadmatuse, kogenematuse, naiivsuse, liigse kiirustamise jms tõttu töösse lastud turvaauguline rakendus võib ettevõttele põhjustada märkimisväärseid ebamugavusi ja rahalisi kahjusid. Ja seda ei soovi ju keegi.

 

Lõpetuseks natuke alatut reklaami ka – koolitust korraldanud Clarified Security (sh Pro endine töötaja Jaanus Kääp, kes tegi oma hobist elukutse) näol on tegu tõsiste oma ala spetsialistidega. Lausa lust oli vaadata, kuidas ükski küsimus ei jäänud vastuseta, näiteid nii kodust kui kaugemalt oli kamaluga võtta ning praktilised ülesanded olid hästi läbi mõeldud. Just sellised peaksid ained ülikooliski olema, entusiasm õppida tuleks iseenesest.

Arenguvestlus on juhi olulisim tööriist

2002. aastal puutusin esimest korda kokku piiri tagant Eestisse imporditud arenguvestluse põhjadega. Töötasin toona CV-Online`s ja me tahtsime oma klientidele pakkuda töövahendeid inimeste paremaks mõistmiseks ja motiveerimiseks. Ka pärast eesti keelde tõlkimist jäid aga need erinevate nimetustega ankeedid kuidagi võõrapäraseks ja kaugeks. Innovaatoritena ei jätnud me muidugi jonni ja võtsime ka ise ühe neist eriti peenetest arengu- ja tulemusvestluste põhjadest kasutusele.

Tagantjärgi tarkusena võib nentida, et hoolimata teatavast kohmakusest meetod siiski töötas. Mul on siiani selge ülevaade enda CV-Online’s töötatud aastate arengutest, eesmärkidest ja väljakutsetest. Nüüd, kümme aasta hiljem, oskan öelda ka seda, miks arenguvestlus hästi läbi viiduna toimib.

Continue reading “Arenguvestlus on juhi olulisim tööriist”

Do you know RapidBoard?

Mõtlesin et jagan teiega tööriista, mis on Atlassiani Greenhopperis veidi aega tagasi (versioonis 5.9) “kasutatavaks” muutunud.

Ükskõik mida scrumipuristid väidavad, reaalsuses on meeskonnal sageli samaaegselt käimas mitu projekti. Need on reeglina erinevad tooted, mida arendatakse paralleelselt ja mille kõigiga on seotud sama grupp inimesi. Nende prioriteete seatakse ühiselt ning sageli peavad need tooted koos toimima ning kasutama samu reliisitsükkleid. Senini polnud Jiras/Greenhopperis niisuguste projektide taskide ühiseks planeerimiseks ja vaatlemiseks mugavat võimalust. Selle tulemusena kippus sprintide skoop minu kogemusel ähmastuma ja pidev projektide vahetamine planeerimisel tekitas osalejais segadust. Sprindi käigus proovisime seda probleemi lahendada eraldi projektideülese füüsilise scrumboardiga, aga selle haldamine oli üsna ebamugav (kuigi hi-level füüsilist scrumboardi kasutame siiani).
Continue reading “Do you know RapidBoard?”

Lihtsusega eksimuste vastu: kirjasõna kvantiteedist ja kvaliteedist

Parim rakendus oli kord see, mille kasutusjuhendit ei pidanud mitte kunagi avama. Kui see remark tundus kohane viie aasta eest, siis paratamatult on aeg see välja vahetada. Tänapäeva parim rakendus on see, mille jaoks polegi kasutusjuhendit tarvis. Intuitiivsus, kiirus ja rikkalik tagasiside sillutavad teed uute lahenduste vaprasse maailma. Kahjuks pole mitte iga rakendus iPadi peal rõngaste joonistamiseks, mille otsekohesus võrdub selle sisulise väärtusega; aga püüdlus lihtsustada ka kõige keerukam toode käepäraseks kasutamiseks peaks olema kaasaegse arenduse mantraks. Kuidas sellesse uude mõttelaadi kvaliteedi termin sobitub ja kuidas kvaliteeti kui taolist sootuks tõlgendada, sellest mõne sõnaga pikemalt.

Continue reading “Lihtsusega eksimuste vastu: kirjasõna kvantiteedist ja kvaliteedist”

Scrumist, tegelikult sertifikaatidest ehk miks ei ole pointi asju üle või ala-armastada

Leidsin ühe lihtsa blogiposti, mille pealkiri on küll 6 ebameeldivat asja Scrumis, kuid mis tegelikult räägib, miks Certified Scrum Master kirjutaja arvates suhteliselt mõttetu asi on. Artikli märksõnadeks on reaalse elu väline õpetamine, evangelism ja juurte unustamine.

Mõned omapoolsed kommentaarid. Kuna antud juhul pole mul vahet, kas teemas käsitletakse Scrumi või mõne muu õpetuse väärekspluateerimist, siis keskendun sellele, mida nende õpetuste raames müüakse ja ostetakse ehk siis sertifikaadile.
Continue reading “Scrumist, tegelikult sertifikaatidest ehk miks ei ole pointi asju üle või ala-armastada”

Kind le Hack

Dilemma e-lugeri ostmise mõttekuse üle oli kestnud juba kaua. Alates esimesest Kindlest. Mitte alates sellest momendist kui teatati e-ink tehnoloogia läbimurretest, aga kusagilt Kindle loomise ajast. Igasugused muud e-lugerid on mind alati külmaks jätnud, sest nad olnud juba kaugelt vaadates kuidagi puised. Rääkimata siis lähedalt vaatamisest. Ja tõttöelda, ega need esimesed Kindle-d oma imelike klaviatuuridega polnud just suuremad asjad.

Aga otsustamine on jah kestnud kaua. Raamatu lugemine kusagilt mujalt kui raamatust tundus kahtlane. Ajalehe lugemisest ma saan aru, mida aeg edasi, seda vähem on tahtmist lugeda pikki artikleid ja pealkiri või kokkuvõte on piisav, et kogu meedia sisukusega või sisu puudumisega hakkama saada. Aga päris raamatu lugemine mingi gadgeti ekraanilt… no see läheb kuidagi üle piiri. Või kas ikka läheb?
Continue reading “Kind le Hack”

Kindle Fire Euroopas!

Kõik algas soovist omada e-lugerit. Mõeldud tehtud ja põhimõtteliselt ka valitud!

Valitud, aga tegelt ei olnud ju ka! Ei valinud Kindle Fire’t lugeriks, vaid tavalise Kindle, mis näitab halli ilusat pilti ning ongi just mõeldud ainult selleks. Ühesõnaga tahtsin parimat, aga välja tuli Kindle Fire, sest viimast klikki tehes oli sellel nii soodne hind, et jah pani mõtlema… 199$ tundus täitsa mõistlik juba korraliku tableti eest, teades et IPad on miljon korda kallim ning minu nõudmisi viimane täita ei suutnud. Ehk see siis on parem… Seega tellimus sisse ning head inimesed (Tänud neile!) tõid selle kaugest Ameerika riigist siia. Teadmiseks, et otse Eestisse tellides läbi netikulleri on hind üle 260€. Vot nii!

Mis mulje see Fire siis jätab?

Continue reading “Kindle Fire Euroopas!”