pühapäev, 7. detsember 2014

Nädal 15

Nädal 15 (Nov 24 - Nov 28)

Mu viimane nädal. Boss mulle enam testimisega seotud ülesandeid ei anna. Ta soovib et ma abistaks ja õpetaks teda kuidas google.docsis nuppe teha, mis paneb javascripti tööle, mis omakorda võtab andmed PostrgreSQL andmebaasist ja kuvab need google.docsis. Tal on vaja teha klientidele selline juurdepääs, kus need saaksid pidevalt neid andmeid uuendada/jälgida.

Ma otsin kõik vajalikud materjalid/näited talle, ja demonstreerin kuidas nuppu teha, mis scripti käima lükkab, see on lihtne.

Google ametlikult ei toeta oma API-s PostrgreSQL andmebaasiga ühendamist (ta toetab küll näiteks MySQL-i andmebaasi), nii et ma ei ole kindel, kas mu ülemusel kokkuvõttes andmebaasiga ühendumine õnnestub, aga ma kirjeldan kuidas ma sellele proovimise mõttes läheneksin.

Nädal 13-14

Nädal 13 (Nov 10 - Nov 14)

Uurisin kõvasti, miks testid ei lähe läbi.
Üks on kindel, nuppude ja asjade leidmine pole raske, kui veebilehekülje elementidel on kõigil mingid tuvastatavad "id"-d.

PlayEnable lehekülgedel neid "id"-sid oli, aga mitte kõikidel elementidel. Aga üks testimise eesmärkidest oli, et kui leheküljel midagi kujunduses muutub (näiteks nuppude asukoht), siis test saab leheküljega ikka hakkama, leides selle nupu ülesse (läbi kindla ID).

Peale selle tekkisid ja kadusid seal nupud läbi javascripti ja Ajaxi.

Ülemus plaanib oma ukraina progejatele selle ülesandeks teha ja mina kirjutan juhendi, mida mul vaja on, et lehekülge edukalt testida saaks. Samas nende ID-de lisamine võtaks aega ja ukraina progejad on hõivatud muude (tähtsamate) ülesannetega.


Nädal 14 (Nov 17 - Nov 21)

Arvestades et järsku tekivad muutused selles kuidas test nuppe üles leiab, siis teen oma viimase suure muudatuse testide süsteemi. Selle tulemusel saab testidesse väljastpoolt sisestada andmetena ka need otsingu märksõnad (stringid), mille järgi test otsib leheküljelt nuppe ja välju.

Uude süsteemi jõuan ma ümber kirjutada vaid ühe oma testidest. Ka see on suur töö-

Boss arutab minuga seda, mis edasi saab. Ta on veidi automaattestimises veidi pettunud ja mõtleb, kas tal on üldse mõtet minna automaattestide teed ja palgata sinna pärast minu lahkumist automaattestide progeja või on mugavam ja odavam jätkata vanaviisi, kus filipiinlannad käsitsi lehekülge testivad. Selge on see, et kui testide kirjutamiseks on vaja minu tasemel programmeerimis oskust, ja ka siis on testide tööle saamine keeruline, vajades muutusi lehekülgedes enestes, siis filipiinlannad sellega hakkama ei saa.

Nädal 11-12


Nädal 11 (Okt 27 - Okt 31)

Mu ülesandeks oli teha skriptiga käivitatav testimiskeskus.

Lahendasin selle nii, et tegin käivitatava java .jar faili. Ülemus testis seda edukalt ja sai süsteemi kohe käima. (kirjutasin juurde ka instruktsioonid).

Esimene asi mida ta mulle teatas oli see, et test annab vea ja ei lähe läbi. Ma teadsin, et test annab vea ja selgitasin, milles seal minu arust probleem on. Ütlesin et kindlalt ei ma ei tea miks ta vea annab ja pean seda uurima. Kummaline oli sealjuures see, et seleniumi IDE-s (Firefox-i versioonis) test läks läbi, aga Java versioonis ei läinud.

 Mulle anti ülesandeks testid korda teha, nii et nad läbi läheksid.

 Tegin põhjalikku uurimistööd. Milles asi täpselt siiski oli, sellest ma aru ei saanud. Mu esimene oletus oli, et ma pean kerima veebileheküljel õige koha peale, enne kui ma saan nuppu vajutada. Tegelesin sellega mitu päeva, üritades õige koha peale kerida, ainult avastamaks et selles polnudki asi.


Nädal 12 (Nov 3 - Nov 7)

Sel nädalal kirjutasin ühe testi veel lisaks. See test läks peaaegu algusest lõpuni läbi. Testisin leheküljel olevat iga vidinat ja võimalust. Aga siiski, vahepeal oli võimalus avada aken milles sain küll andmeid sisestada, kuid testiga akna "Submit" nuppu üles ei leidnud.

Boss on kannatamatu. Nüüd on mul üks töötav test lisaks, aga ta tahab tulemust ja et kõik testid töötaksid. Peale selle ta tahab anda minu tehtud süsteemi üle filipiinlannadele, et need asjaga edasi tegeleks, kuna minu praktika-aeg hakkab peagi otsa lõppema.

Ka proovisin ma vahetada veebilehitsejat mida java kasutas (Firefoxi asemel näiteks Google Chrom-i või "headless" lehitsejat). Ma ei olnud aga sellega kuigi edukas, ja programm andis palju veateateid..



Nädal 9-10

Nädal 9 (Okt 13 - Okt 17)

Tahtsin edasi tegeleda testide tulemuste kirjapanemisega (ülevaatlik faili tegemine). Ülemus andis aga kaks uut testi mida ma kirjutama pidin. Need testid olid funktsioonide kohta, mida ei oldud kunagi varem automaat-testidega kaetud.

Uute testide tegemine võttis päris palju aega,
sest pidin väga palju lisa infot testidesse kirjutama (andmed loeti nüüd väljastpoolt ja nad pidid testidega kokku sobitatud olema),

Uute testide tegemisel ilmnesid probleemid. Test ei suutnud osi nuppe vajutada. Ta kas ei leidnud neid või keeldus neid vajutamast (pidades neid nähtamatuteks). Seega testid ebaõnnestusid 100%, kuigi käsitsi sai neid nuppe vajutada. Otsustasin sellele probleemile lahenduse leidmise tulevikku lükata.

Jätsin uued testid vigaseks ja pühendusin jälle testide tulemuste süsteemi lõpetamisele.


Nädal 10 (Okt 20 - Okt 24)

Reaal-aja tulemuste fail sai tehtud.  Ka hakkasin testide tulemustesse kirja panema kui palju mingile nupule vajutamine aega võttis, (kui palju aega võttis, enne kui lehekülg tulemuse tagastas). Tegin selle automaatseks, aga kõik testid tuli uuesti ümber kirjutada.

Ülemus vaatas asja üle ja oli rahul.

 Aga ta soovis võimalust testimiskeskust mugavalt käima lükata (et mitte läbi java-eclipse). Soovitavalt automaatselt iga päev (scriptiga).  Järgmise nädala ülesandeks oli mul vaja talle teha võimalus et ta saaks teste oma masinas scriptiga käivitada.


Nädal 7 - 8

Nädal 7 (Sept 28 - Okt 3)

Ehitasin oma java testide mootori ümber.

Nüüd oli võimalik testide käivitades valida, kust andmeid loetakse.

Tegin lausa 3 valikut, et andmeid sai sisse lugeda google.docsist, andmebaasist ja kolmanda variandi tegin ka.  Kolmandaks variandiks oli võimalus vaikimisi andmed lugeda testimiskeskusest endast.

Leidsin ka paar jama, mis oli vaja ära parandada. Näiteks avas mu testimiskeskus iga testi jaoks eraldi veebilehitseja ja need jäid kõik sinna rippuma.

Kui olin jamad ära parandanud ja oma töö ära esitanud, hakkasime arutasime kuhu oleks vaja saata testide tulemused. Moment tulid tulemused lihtsalt java konsoolile ja mitte kuhugi neid ei kirjutatud. Algses tööjuhendis oli mu ülemus kirjutanud et testide tulemused peavad olema kirjutatud faili ja faili nimi peab sisaldama testi nime ja käivitamisaega, ja kas test õnnestus või mitte. Selle võtsin aluseks, aga lõplikud otsused jäid järgmisse nädalasse.


Nädal 8 (Okt 6 - Okt 10)

Leidsimegi et parim lahendus on testide tulemused kirjutada failidesse.
Failid peaksid olema kuupäeva järgi kaustades. Failide nimed peaksid sisaldama testi nime.
See tööülesanne tundus selline nokitsemise töö.

Pidin testid jälle ümber kirjutama. Kõik võttis jälle aega. Ettenägelikult tegin oma programmi võimaluse, et testide tulemuste kirjutamise kohta saaks tulevikus ka mugavalt valida. Et, kui tekib vajadus testide tulemused ka andmebaasi saata.

Sain omaarust ülesandega suurepäraselt hakkama.

Asja üle vaadates andis boss järgmiseks nädalaks  ülesande et kataloogis oleks mingi ülevaatlik fail, milles reaal-ajas kajastuks milline test moment jookseb. Et kui ta sinna faili sisse vaatab, millised testid õnnestusid või ebaõnnestusid, kui palju mingi test on aega võtnud ja peamine - milline test parajasti pooleli on.




Nädal 5-6

Nädal 5 (Sept 15- Sept 19)

Hakkasin teste ümber kirjutama selliselt, et kõik testide andmed loetaks välja google.docsist.
See oli päris suur töö. Rääkisin ülemusega ja leidsime et minule pole mõtet uute testide loomist ülesandeks panna seni kuni süsteem on alles ehitamisjärgus. Muidu peaks kõiki teste pidevalt ümber tegema.


Kuigi tööd oli palju, siiski murekohti ei tekkinud. Ülemuse meelest oli tulemus täitsa hea ja ta oli progressiga rahul. Aga me arutasime, et mis saab siis, kui teste on (google docsi jaoks) liiga palju, et võiks olla ka teine, alternatiivne meetod, kuidas testidesse andmeid lugeda.

Järgmise nädala ülesandeks sai, et testide andmeid (need mis google.docsis) saaks välja lugeda ka PostgreSQL andmebaasist.


Nädal 6 (Sept 22 - Sept 26)

Koolis olin ma veidi andmebaase näppinud, seega sain oma teadmised nüüd koduses praktikas järgi proovida. Panin kodus püsti oma isikliku väikese PostrgreSQL andmebaasi.
Tegin testide info hoidmiseks andmetabelid ja uurisin kuidas ma javaga neile ligi pääseks.

Õnneks oli internetis näiteid PostrgreSQL ja Java ühenduse näiteid piisavalt, valisin endale sobiva ja .
tegin testide mootori ümber. Nädala lõpuks see mu java testimiskeskus ühendada end andmebaasiga ja andmed sealt välja tirida.

Ülemus imestas kuidas ma PGAdminiga (PostreSQL graafline haldur) tööd saan teha, sest tal kiilub see pidevalt kinni. Noh, mul on väga väike andmebaas, oli mu vastus.

Järgmise nädala ülesandeks sai  testimiskeskuse ümberehitamine selliselt, et saaks sättida testimiskeskust käivitades, kust andmeid välja loetakse.

Nädal 3 - 4

Nädal 3 (Sept 1- Sept 5)

Tegin filipiinlannadele kasutusjuhendi google.docsi - kuidas teste käima tõmmata.
Siis hakkasin uurima võimalusi, kuidas mugavalt teste käima tõmmata kasutades andmeid kas MS Excelist või google.docsist.

Minu ülemus (ja ka mina arvasin) arvas et Excel ei ole hea mõte, kuna teistel pole siis andmetele mugavat ligipääsu. Aga just Exceli kohta oli internetis palju infot ja esialgu paistis et näiteid kuidas google.docsi kasutada praktiliselt polnud. Ma ise olen google.docsis asju teinud ja et seal scriptitud nuppe kasutada, õppisin päevaga ära javascripti programmeerimiskeele.

Pärast pikemat otsimist leidsin ühe kirja mis mind julgustas. "Huffington Post"-i töötaja kirjutas ühes foorumis et tal on olnud edukas kasutades google spreadsheete andmete tarnijana seleniumi testidele. Kohe pärast seda otsustasin google.docsi kasuks. Kui tema juba hakkama sai, saan mina ka.

Lahenduse realiseerimine jäi järgmisse nädalasse.

Nädal 4 (Sept 8 - Sept 22)

Tegin ülevaatliku testide käimalaskmiskoha google.docsi. Seal sai määrata millised testid käima lähevad ja millised mitte.

Siis tegelesin sellega, et panna oma java programm pöörduma google.docsi poole, et sealt välja lugeda andmeid. Kuigi internetist selle kohta näiteid ei leidnud, süvenesin google appide API-sse ja sealt ma ka midagi leidsin. Siis juba õnnestus ka leida mõni kasutajate tehtud näide.

 Pärast mõningat pusimist sain asja tööle ka ja mu programm võttiski andmed google.docsist. Tegin ka spetsiaalse kasutajakonto, mida firma saaks kasutada. Peale selle dokumenteerisin oma töö.
Boss vaatas reedel mu töö üle ja andis järgmiseks nädalaks uue ülesande. Ta soovis et testid oleksid nii ümber tehtud, et kõik andmed mida test sisestab, loetaks välja google.docsist. Kuigi kontode ja paroolide andmed jäävad enamasti samaks, peaks saama google.docsist juhtida erinevaid päringud Playenable mootorile.