esmaspäev, 22. mai 2017

Ettevaatust! Satikad taskus!

Siinkohal ei pea ma silmas puuke, kes kevade saabudes välja ronivad ja inimestele kannatusi põhjustama hakkavad. Taskusse lähevad satikad hoopis koos sinu nutiseadmega, täpsemalt seal peal töötava tarkvaraga.
Tegelikult ei ole suurt vahet, kas tõrgub infosüsteem su arvutis, mobiilne veebileht, äpp telefonis või tahvlis - ühevõrra ebamugav on see nii või teisiti. Kasutajana sa läksid sinna mõnda vajalikku tegevust tegema, kuid tarkvara takistab sind eesmärgi saavutamisel.

Niisiis kehtivad mobiilitestimisel kõik "tavalise" testimise reeglid, aga on veel palju muudki, millega arvestada.

Lisakeerukus tuleneb näiteks nii seadme füüsilistest parameetritest, andmeühenduse olemasolust,  tüübist ja kvaliteedist kui ka erinevate platvormide rohkusest ja fragmenteerumisest. Kui ei usu, tee oma kontoris või sõpruskonnas küsitlus ja loe kokku, mitu erinevat seadet mitmelt erinevalt tootjalt mitme erineva operatsioonisüsteemi versiooniga, ekraani suuruse ja resolutsiooniga said.
Rääkimata sellest, et tavaarvutis toimetavat infosüsteemi üldjuhul ei patsutata ega raputata (gestures) ja samuti ei ole ohtu, et kasutaja nuppudele pihta ei saa (sest need on liiga väikesed või päikese käes liiga kehvasti nähtavad), samal ajal kui ta diivanil lesib või hoopis bussi peale jookseb. Arvutihiir on teatavasti suhteliselt täpne tööriist, erinevalt potentsiaalselt tömbist sõrmest.
Samuti tekib testimisele mõeldes põhjendatud küsimus, kas mul peavad kõikvõimalikud seadmed olemas olema, või kuidas ma muidu kontrollida saan, et ikka kõigi kasutajate telefonidel kõik õigesti toimib. Ja kui mu äpp on mõeldud kasutamiseks enam-vähem üle maailma, siis kuidas ma tean, et see Jaapanis ka töötab. Ja Uus-Meremaal.
Luban, et mobiilsete rakenduste testimisel (ja analüüsimisel, ja arendamisel) tekib hulk uus võimalusi ja kohustusi, mis tulenevad sellest, et testitav tarkvara .... käib kasutajaga kõikjal kaasas.

Erinevaid nüansse, soovitusi ja lahendusi on palju, kuid minu jaoks kõige olulisemad on järgmised:

1. Tunne oma kasutajat. Missugust seadet ta tõenäoliselt kasutab (pigem high- või low-end, platvorm) ja missuguses keskkonnas ta rakendust kasutab (kodus-tööl-puhkehetkel-elukriitilisel hetkel) ning loomulikult - mida kurja võivad võimalikud satikad talle põhjustada. Selle infoga saab juba üksjagu pihta hakata, et testimisele mõistlikud piirid seada nii testitavate stsenaariumide kui ka reaalsete seadmete vs emuleerimise taskaalu mõttes.
2. Ära unusta mobiilivaldkonna tüüpilisi nõudeid püstitada ja kontrollida. Mobiilses seadmes on võimalik kasutada asukoha, güroskoobi, kiirendusanduri jm füüsilise keskkonna anduritest saadavat infot. Samuti ei tasu unustada, et telefoni võiks lisaks äppimisele olla võimalik kasutada ka helistamiseks ja sõnumite saatmiseks. Ja et kasutajad üldjuhul solvuvad, kui äpp nende seadme aku 20 minutiga tühjaks imeb (loe: soojuseks muundab, nii et seadmel võib soovi korral liha grillida). 
3. Arvesta, et nii seadmed kui ka nende baastarkvara uuenevad kiiresti. See loob täiendava võimaluse ootamatute tõrgete tekkeks. Siinkohal võivad abiks olla mõistlikult automatiseeritud testid, mis aitavad kiirelt ja suhteliselt vähese vaevaga teada saada, kas tarkvara uuenenud platvormil ka ikka veel töötab. Kuna ka üle päeva veaparanduste saatmine kasutaja telefoni on nii kasutaja kui arendaja jaoks tüütu, siis on kõigile mugavam olulisi vigu mitte toodangusse lasta. Pea aga meeles, et automatiseerimine on vaid osa heast testistrateegiast - mobiilimaailmas on oi-kui-palju nüansse, mille headust saab hinnata vaid inimene (vt punkt 1).

Head mobiilset testimist! 

Sõltumata aastaajast, ära lase satikaid iseenda ja oma klientide taskusse!

teisipäev, 11. aprill 2017

Retsept tervisliku koogi ja tervisliku tarkvara valmistamiseks


ASAs on saabunud kevade puhul tervisliku koogi väljakutse. Me armastame kooke ja sööme neid aastaringselt, aga väikese vahelduse mõttes... kokkuvõetult tähendab see, et igal nädalal järgneva 8 nädala jooksul valmistab üks meist kolleegidele tervisliku koogi. Missugune kook on "tervislik", selles me ühele meelele ei jõudnudki, aga igaüks võib sellele oma lähenemise välja pakkuda.
Koogivõistluse avakoogiks sai kookosekook, mis sai üldise heakskiidu osaliseks ja võimalik, et sinagi soovid seda teha proovida.

See on suhteliselt lihtne: võta päris palju seda piima, mis pole lehma seest. Sega sinna sisse erinevaid jogurteid (lehmalise päritoluga). Siis lisa želatiini - piisavalt, et tarretuks, aga mitte liiga palju, et ei oleks nagu kummikomm. Magustamiseks pane suhkru asemel mett maitse järgi ja vaniljet näpuotsaga. Lisada võib veel konservmango tükke ja et koogi mõõdu välja annaks, ka kaerahelbeküpsisepuru. Kaunistuseks vaarikaid, melissilehti ja kassikäppi.

Sellise ülesande järgi valmistades on võimalik, et tuleb päris hea kook, vähemalt sama hea või isegi parem kui pildilolev. Samas on võimalik ka... et ei tule. Kui selle retsepti üle tõsiselt mõelda, siis tekib ilmselt erinevaid küsimusi, näiteks:
  • Mis piim see on, mis ei ole lehmast? Variante on väga palju erinevaid, alates lambapiimast kuni linnupiimani, aga mina kasutasin kookospiima.
  • Mis jogurt? Jogurteid on väga palju erinevaid, kuid mina kasutasin türgi jogurtit, kreeka jogurtit ja siis veel ühte teist kreeka jogurtit, sest kookospiim ise + mesi on juba suhteliselt lääged, seega mõni maitsestatud jogurt oleks olnud liiast. Miks ma kasutasin erinevaid? Sellepärast, et ei osanud ühte valida.
  • Mett maitse järgi on umbes kui palju? Noh, tegelikult ei ole probleem, kui segu jooksvalt maitsta JA on terve suur purgitäis mett kodus olemas. Probleem on siis, kui pead mett ostma - kui suur purk valida? Ma arvan, et minul läks umbes... 5 supilusikatäit Võrumaa mesilaste kuldset käpatööd.
  • Aga kui mulle mango üldse ei meeldi, kas siis võib seda asendada näiteks ananassikonserviga? Aga värskete ananassitükkidega? Kiiviga, mis on samuti tasakaalustavalt hapu ja võiks sobida? Ananassikonserv sobib, kuid värske ananass želatiiniga ei tarretu (keemilistel põhjustel). Samamoodi on ka kiiviga, kuid kiivi ei sobi lisaks hästi piimatoodetesse - tulemuseks võib olla mõru maitsenüanss.
  • želatiini.. Ka želatiini peab oskama korrektselt kasutada, nt paisutada tuleb külmas vees, sulatades ega ka hiljem keema lasta ei tohi, et kõik ootuspäraselt toimiks.
  • Kassikäpad?!!? Jah, šokolaadist.
Seega on analüüsidokument või spetsifikatsioon tarkvara koostamiseks paljuski nagu retsept koogi või toidu valmistamiseks.
Mõnedes asjades tuleb raudselt kokku leppida, et tulemus vastaks ootustele (nt ei sisalda valget suhkrut ja nisujahu), tehniliselt õnnestuks (nt želatiini kasutamine), aga midagi jääb alati katsetamise ja töö käigus otsustamise rõõmuks (võimalus leida värskeid vaarikaid).
Kui nii tellija kui tegija on kogenud sama valdkonna koogi / tarkvara tegemisel kogenud, siis on täpne lähteülesanne tulemuse saavutamise seisukohalt vähemkriitiline. Kogemus tasakaalustab, sest üks oskab küsida ja/või teine vastata ja juhtida tähelepanu.
Mida väiksem on osapoolte kogemus, mida uuem ja/või suurem on ülesanne, seda rohkem on analüüsis vaja detailsust, läbirääkimist, selgitamist, katsetamist ja seega - aega.

Ja koogi retsept (suurema tõenäosusega) taasesitamist võimaldavas vormis on järgmine:
Kogus: 15 portsjonit, mis mahuvad 280ml klaasidesse
Kookospiim (1 liiter)
Türgi jogurt (370gr)
Kreeka jogurt (380gr)
Teine kreeka jogurt (150gr)
Mesi (200ml)
Vanilje (näpuotsaga)
Mangokonservist mangotükke (2 ca 300ml purki)
Digestive suhkruvabasid küpsiseid (ca 10tk)
Želatiini (ca 100gr)
Kaunistuseks vaarikaid, melissi, kassikäppasid (šokolaadist)

Valmistamisaeg ca 45min + 4 tundi tarretumiseks.
Želatiin pane esmalt külma vette paisuma, seejärel sulata veevannil.
Soojenda kookospiima tasasel tulel 10kond minutit, aga ära keema lase. Sega sisse mesi ja vanilje. Soojasse segusse sega peene joana valades sulatatud želatiin.
Lase segul jahtuda (nii et sõrme ei kõrveta), sest liiga kuumale segule jogurtit lisades võib želatiin hakata tarduma ning tekivad tükid. Sega jogurtid ülejäänud seguga ühtlaseks massiks. Lase jahtuda toatemperatuurile.
Klaaside põhja pane mangotükke ning peale vala jogurti-piimasegu. Pane klaasid külmkappi ja lase seal tarretuda vähemalt 4 tundi. Enne serveerimist puista peale endale sobivas koguses küpsisepuru, vaarikaid ja/või muid meelepäraseid lisandeid.