today software magazine n44/2016

Upload: sergiucebotari

Post on 23-Feb-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Today Software Magazine N44/2016

    1/54

    No. 36 June 2015 www.todaysoftmag.ro www.todaysoftmag.comNo. 36 June 2015 www.todaysoftmag.ro www.todaysoftmag.com

    T O D A Y

    S O F T W A R E

    Nr. 44 Februarie 2016 www.todaysoftmag.ro www.todaysoftmag.com

    M A G A Z I N E

    C P V PHP-

    S

    C ITC

    C C

    G

    H C-B T

    H

    P D/T/DO M A

    A DO

    U M L R M

    D .C CRM

    Haos,memeitiparede

    designsoftware

    Testareaserviciilorweb

    folosindSOAPUI

  • 7/24/2019 Today Software Magazine N44/2016

    2/54

    Testeaz-iabilitile

    n curnd

    programez.ro

  • 7/24/2019 Today Software Magazine N44/2016

    3/54

    7M

    E M

    8

    S

    C J & C T

    11

    A C-B T

    R S

    13

    T

    SOAP UII L

    16

    H

    C D

    18

    C M B T

    R V

    21

    A DO

    C D

    24

    H,

    A P

    27

    U M L

    M R

    30TFS (II)D C

    33

    D B .C CRMG G

    35

    C P, PHP-R M C C

    38

    C D/T/DO M AM T

    41

    S D

    45

    C

    2016D M

    47C IT&C?I V

    49

    E - . C 2030 C ?F

    51

    G S B

  • 7/24/2019 Today Software Magazine N44/2016

    4/54

    4 nr. 44/2016, www.todaysoftmag.ro

    Acum patru ani, n luna ebruarie am lansat revista oday Sofware Magazinealturi de un grup de prieteni. Astzi ne bucurm s fim o reerin n dome-niu, cu peste 700 de articole disponibile n romn i englez i aproape 400 deautori dierii. Mulumim colaboratorilor, cititorilor pentru interesul crescut i compa-niilor care susin acest proiect: Gemini Solutions, ISDC, 3Pillar Gobal, Endava, Fortech,Accesa, Betair, Yardi, Accenture, elenav, Mozaic Works, VE Interactive, Siemens,Colors in projects. V promitem s o inem tot aa i s investim la el de mult pasiune!

    Pasiunea pe care o ai sau nu trebuie s o ai dac eti programator a reprezentat unsubiect interesant de discuie la evenimentul de lansare din luna ianuarie. Inevitabils-a ajuns la tabere pro sau contra unei perspective, dar i la perspective echilibrate. Afi programator doar pentru a-i asigura venituri rezonabile i nu neaprat din pasiuneeste un mod de a te raporta la o proesie pe care muli l consider justificat ntr-osocietate n etern criz ca a noastr. Punctul meu de vedere este n avoarea pasiunii.Cred c veniturile sunt un actor important, dar nu ar trebui s defineasc o direcie dedezvoltare personal. Ca argumente care s susin punctul meu de vedere stau i diversearticole pe teme motivaionale publicate n SM. Fr pasiunea pentru programare,r plcerea de a descoperi soluii la probleme, de a te bucura de aplicarea ultimelortehnologii este greu de continuat ntr-un mediu oarte concurenial. Personal, dupciva ani de activitate care a pus accent mai mult pe management i antreprenoriat, am

    avut oportunitatea de a m ntoarce la programare. Este o plcere pe care probabil nuo poi echivala cu nici o alt activitate iar satisacia este pe msur. V stuiesc aadars acei la rndul vostru ceea ce v place sau s v ntrebai la finalul zilei dac asta esteceea ce v place s acei cu adevrat.

    ema principal a acestui numr este testarea, aa cum reiese din seria de articolesubordonate acestei teme: Harmony in Cross Browsing esting, estarea serviciilor webolosind SOAP UI, Harta testriii Care sunt provocrile n scenarii Dev/est/DevOpsi cum ne poate ajuta Microsof Azure . Continum cu Haos, meme i tipare de designsofware, un articol interesant despre Memetic, o tiin despre propagarea ideilori inluena acestora asupra noastr. Utilizarea machine learning n mbuntireaaacerilorarat posibilul impact pozitiv de olosire a tehnologiilor big data n analizabusinessurilor. Continum cu o analiz i o evaluare a CRM-urilor (Customer

    Relationship Management) existente la ora actual: De la business la implementare. Cumalegem CRM-ul. Crearea unui Microsof Band ile pentru a direciona notificrile destare a construciei prezint o soluie de notificare a echipei de dezvoltare sofware despreaptul c a czut un test de integrare direct pe dispozitivul Microsof Band 2. Finalizmacest numr cu dou articole din zona de contabilitate, un domeniu care demonstreazun interes crescut din partea cititorilor: Calculul salarial n 2016i Ce pregtete statulroman pentru domeniul I&C ? ncheiem acest numr cu o nou apariie a personajuluicomic care vine cu inormaii interesante din zona de managementului proiectelor:Gogu!

    V dorim lectur plcut !!!

    Ovidiu ManFounder Today Sofware Magazine

    Ovidiu [email protected]

    Editor-in-chiefToday Software Magazine

    editorial

  • 7/24/2019 Today Software Magazine N44/2016

    5/54

    5www.todaysoftmag.ro | nr. 44/februarie ,2016

    Lista autorilor

    Dorin [email protected]

    Service specialist@Siemens

    Georgiana [email protected]@Tekkie Consulting

    Redacia Today Sofware Magazine

    Fondator / Editor in chie: Ovidiu [email protected]

    Graphic designer: Dan [email protected]

    Copyright/Corector: Emilia [email protected]

    raductor: Roxana [email protected]

    Reviewer: Tavi [email protected]

    Contabil : Delia [email protected]

    Programator junior: Alexandru [email protected]

    Marketing i tehnoredactor:Ana-Maria Bivol

    [email protected]

    ipar realizat de Daisler Print House

    Produs deoday Sofware Solutions SRLstr. Plopilor, nr. 75/77

    Cluj-Napoca, Cluj, [email protected]

    www.todaysofmag.rowww.acebook.com/todaysofmag

    twitter.com/todaysofmag

    ISSN 2284 6352

    Copyright oday Sofware Magazine

    Reproducerea parial sau total a articolelordin revista oday Sofware Magazine

    r acordul redaciei este strict interzis.

    www.todaysofmag.rowww.todaysofmag.com

    Radu [email protected] Software Engineer@iQuest

    Emilia [email protected] Corector@Today Software Magazine

    Cristina [email protected]

    Organizatoare@ Startup Weekend Cluj

    Cristina [email protected]

    Organizatoare@ Startup Weekend Cluj

    Roxana [email protected]

    Tester@ ISDC

    Ioana [email protected]

    QA Engineer@ Bissoft

    Claudiu [email protected]

    Quality Manager@Capgemini

    Mihai [email protected]

    Microsoft MVP,Co-organizator@ITCamp Avaelgo

    Claudiu [email protected] Administrator@ Yardi Romania

    Ariel [email protected]

    Python Developer@3 Pillar Global

    Marius [email protected] Developer@Fortech

    Radu [email protected]

    PHP Developer@Pentalog

    tefania [email protected]

    IT Recruiter@Endava

    Ioana [email protected]

    Expert contabil Managing Partner@ A&I Consulting

    Florentina [email protected]

    Consulting Manager@Azimut Happy Employees

    Ctlin [email protected]

    PHP Developer@Pentalog

    Delia [email protected]

    @Contzilla.ro

    Simona [email protected]

    Speaker, trainer i consultant@Owner of Colors in Projects

  • 7/24/2019 Today Software Magazine N44/2016

    6/54

    6 nr. 44/februarie, 2016 | www.todaysoftmag.ro

    startup-uri

    Startup-uri

    DeviceHub.net este un serviciu cloud care ajut utilizatoriis obin date de la dispozitivele Io connectate la internet. Prinprocesarea datelor primite de la senzori se pot realiza notiicri,automatizarea proceselor n domenii precum: agricultura, transport,smart cities, case inteligente, medical i multe altele. Exist librrii

    pentru integrarea cu API-ul RES n Phyton, C++ i PHP.

    Link: devicehub.net

    Rocketbook este o combinaie de carneel i un pix spe-cial plus un serviciu cloud de comunicare cu principaleleaplicaii de documente precum Google Drive, Evernotesau OneNote. Utilizatorul realizeaz schie care sunt auto-mat publicate n aplicaiile specifice ale utilizatorului iar n

    uncie de simbolurile adugate desenate se pot lua dieriteaciuni. Odat umplut, carnetul poate fi ters prin introdu-cerea acestuia ntr-un cuptor cu microunde.Link: https://www.kickstarter.com/projects/642311833/rocketbook-wave-

    cloud-connected-microwavable-noteb?re=category_popular

    DeviceHub.net Rocketbook Wave

    O soluie de planificare a spaiului 3D, oarte util din perspectivaaranjrii obiectelor n cas. Uor de utilizat, aceasta oer utilizato-rului ca n cteva minute s i testeze modul n care va fi decoratapartamentul sau casa i s se plimbe eectiv prin ea. oate acestear a se instala aplicaii complexe i de asemenea gratuit. Acest pro-dus a ost construit de ctre Arxia i lansat ca public beta n aceastlun.

    Link: http://roomplanner3d.planningwiz.com/

    Programez.ro este o soluie care d utilizatoruluiposibilitatea de a-i testa cunotinele online r a aplicaobligatoriu la un job. Prin rezolvarea acestor teste, celimplicat poate s-i evalueze nivelul competenelor i s-iconstruiasc un proil proesional validat. De asemenea,programez.ro oer companiilor ocazia de a-i eficientizaprocesul de selectare a candidailor, prin recuperarea unuitimp pe care n mod obinuit l-ar fi consumat n desurareade interviuri. Programez.ro este un proiect oday SofwareMagazine.

    Link: beta.programez.ro

    Room planner beta.programez.ro

  • 7/24/2019 Today Software Magazine N44/2016

    7/54

    7www.todaysoftmag.ro | nr. 44/februarie, 2016

    TODAY SOFTWAREMAGAZINE

    Metode moderne de invocare a muzei

    De multe ori, cnd vrem s scriem un text, amnm momentul justificndu-ne prin lipsa inspiraiei. Asemenea poeilor antici, negndim c nu ar strica s invocm solemn vreo muz. O acem, dar muzele cunosc cel mai bine graca veche i latina, aa c numai insistm. Apoi ne amintim de seara petrecut cu amicii la bere, cnd acetia ne-au dat calificativul ,, genial pentru prestaiaavut la ultimul banc pe care l-am spus. Stm la pnd spernd s mai detectm mcar un licr din genialitatea de care te-au asigurat atunci.

    Paul Cezanne (1839 1906) Srutul muzei

    Degeaba! Ideile tot nu ne vin. Nu nemai rmne s avem i noi ca geniileromantice dect ntunecatul pesimism. Darca tritori n mileniul trei, suntem oamenipractici i dup ce am citit dintr-o suflarecartea cu un posibil titlu ,, Cum s deviiericit i eficient n trei pai, ncepem s

    gndim pozitiv i cutm soluii. Dac nuintenionm s realizm un studiu consis-tent centrat pe o tem general cruia s-iacordm timp ndelungat de cercetare, ciavem de redactat un text care s se nca-dreze ntr-un numr limitat de pagini saucaractere, este de preerat s evitm subiec-tele cu teme mari. Aa reducem riscul uneiabordri superficiale i incomplete, precumi riscul de a stagna la etapa de introduceresau la o perspectiv exclusiv descriptiv.

    Aadar, n loc de ,, Limbajul Java sau,, Procesele n programare, un subiectmai mic de tipul ,, Stand-up meeting sau,, Librriile de treading n Java are maimulte anse s devin atrgtor sau s

    suscite curiozitatea. Dup ce am decis asu-pra subiectului, vrem ca ideile cu privirela acesta s ie originale. Cum depistm

    n toat avalana de idei pe care le avempe acelea care sunt inedite i pertinente?O metod eficient care ne ajut s trecempeste starea de blocaj sau de pasivitate is reactivm tot ceea ce cunoatem des-pre subiectul ales, este scrierea liber.

    imp de 10-15 minute, scriem un scurttext cu toate ideile ce ne vin n minte des-pre subiect, r a fi atent la ordinea lor ir a ne preocupa neaprat de corecti-tudinea exprimrii. Inspirat din dicteul

    automat al poeilor avangarditi care-loloseau ca principiu de creaie, scrierealiber are avantajul de a scoate la supraadin colurile memoriei, asocieri surprinz-toare de idei, precum i cunotine pe carenu bnuiam c le deinem. Reeaua de ideisaupnza de pianjeneste o alt metodcare, prin apelul la scheme, reprezentrigrafice sau dispuneri n reea, evideniazmobilitatea conexiunilor ntre idei, modulcum se grupeaz n jurul unor conceptecheie sau cum se genereaz una pe alta.

    Soluia la pana de idei poate fi i con-sultarea agendei de idei,adic s ne uitmn acel carneel pe care l purtm tot timpulla noi i n care ne notm ideile inspirate.Se tie c multe dintre mreele idei s-aunscut nu neaprat n aa unui birou ci temiri unde: de la mrul lui Newton i cadalui Arhimede la concertul unde Kandinskyare revelaia picturii abstracte. Aadar,cnd suntem n main, vedem un ilm,citim o carte, conversm sau ne certms-ar putea ca muza s apar neinvitat

    i s ne aduc vreo idee interesant.

    Dac nu avem o agend de idei, atuncis ne acem una! De asemenea, este bines valorificm orice impuls de a ace o

    not sau o observaie pe marginea unuiparagra citit, nvingndu-ne astel teamade a scrie i de ane exprima propriul punct

    de vedere. Aceste cteva metode expuse aurolul de a ne nvinge teama n aa pagi-nii albe sau a ecranului i de a ne ajuta simprimm o not de autenticitate textuluiscris de noi, dar nu ne garanteaz calita-tea tiinific a coninutului. Aceasta estecondiionat de seriozitatea i consecvenacu care autorul se documenteaz , studiazbibliograia tiiniic anexat subiectu-lui sau de experiena pe care o deine ndomeniul abordat.

    educaie

    Emilia [email protected] & Corector@Today Software Magazine

  • 7/24/2019 Today Software Magazine N44/2016

    8/54

    8 nr. 44/2016, www.todaysoftmag.ro

    Soluii inspirate pentru orae

    inteligente

    Lumea n care trim este n continu micare. otul crete i se dezvolt zilnic, cuo vitez ameitoare. Este incredibil modul n care reuim s gsim noi modalitide utilizare a aplicaiilor mobile pentru a ne ace viaa de zi cu zi mai uoar.

    Oare v amintii de he Jetsons,amilia ce locuiete ntr-un ora utopic,unde mainile zburtoare sunt la ordineazilei, extrateretrii i hologramele sunt oapariie comun, iar casele i aparateleelectronice sunt controlate prin simplaapsare a unor butoane? Ceea ce era dedomeniul antasticului n anii 60 ncepe

    s devin realitate. Te Internet o Tingsa schimbat multe dintre lucrurile cu careeram obinuii cndva. Avem maini inte-ligente, care pornesc i pot fi controlate cuajutorul unor aplicaii mobile. Cluzeleauditive sunt de mare ajutor pentru ceicu diiculti de vedere, ajutndu-i snavigheze mai uor, att n spaiul pro-priei locuinei, ct i n exterior. Venicantrebare legat de Ce vom mnca lacin? i-a gsit rspunsul tot n aplicaiilemobile, iar acum ai restaurante ntregi la

    distan de un singur click.

    Considerai c acestea sunt soluiiinteligente? Noi credem c este doar

    nceputul. De vreme ce exist nc attde multe zone neexplorate n acest dome-niu, Startup Weekend Cluj organizeazn aceast primvar o ediie special careare ca subiect oraele inteligente - SmartCities.

    Dac i doreti s schimbi modul n care

    trim i interacionm unul cu cellalt,acesta este locul n care trebuie s vii.Contribuie la soluionarea problemelor,dezvolt soluii inteligente pentru oraei locuitorii acestora. Indierent daci doreti o cas operabil digital, noimodaliti de gestionare a domeniuluisntii, un mod accesibil de abordarea dezvoltrii economice, pentru toateacestea exist spaiul potrivit pentru dez-voltare i evoluie, la Startup WeekendCluj - ediia Smart Cities.

    Imagineaz-i c ntr-o zi fiecare ntre-bare va avea un rspuns, fiecare problemva i de domeniul trecutului. Depinde

    evenimente

    Cristina [email protected]

    Organizatoare@ Startup Weekend Cluj

    Cristina [email protected]

    Organizatoare@ Startup Weekend Cluj

  • 7/24/2019 Today Software Magazine N44/2016

    9/54

    9www.todaysoftmag.ro | nr. 44/februarie 2016

    TODAY SOFTWAREMAGAZINE

    doar de noi dac ne dorim aceast realitate. Cerul este limitapentru ceea ce poate fi cut. De apt, cerul nu mai reprezint olimit i nici imaginaia, pentru c atunci cnd o aduci n interi-orul unei echipe, potenialul ei crete exponenial. Spaiul verdei activitile de recreere, strzile i cldirile, transportul, sportul,sntatea, cultura, educaia - sunt att de multe domenii n carei poi contribui cu experien i cunotine.

    Ediiile precedente de Startup Weekend Cluj au strns peste450 oameni curioi i dornici s nvee n timp ce lucreaz lamplinirea unui vis, 139 de idei care i-au gsit locul pentru a fi

    ascultate, 57 de echipe care au lucrat mpreun, ghidai de peste50 mentori captivani i inspiratory. Mai bine de 70 de comunitii parteneri media ne-au ajutat s crem i rspndim o atmo-ser rumoas.

    Pentru a fi sigur c eti primul care afl cine vor fi mentoriicare vor ajuta echipele anul acesta, dar i pentru a fi la curent cutoate anunurile ulterioare, asigur-te c eti alturi de noi. Ceade-a V-a ediie Startup Weekend Cluj - Smart Cities, va avea locn perioada 8-10 aprilie 2016, n incinta Spherik Accelerator, str.Grii nr. 21. Noi venim cu spaiul, resurse, mentori extraordi-nari i-i oerim oportunitatea de-a cunoate oameni pasionaii interesai de-a nva i de-a produce o schimbare n bine. Ce

    aduci tu? Entuziasm, creativitate, energie i dorina de-a gsi

    soluii inspirate, care vor contribui la dezvoltarea unor oraeinteligente.

    Mai multe detalii i nouti poi gsi pe pagina noastr deFacebook1, sau ne poi urmri pe witter: @SWCluj i #SWCluj.Iar pentru orice ntrebare, sau sugestie, ne poi scrie la [email protected].

    1 www.acebook.com/StartupWeekendCluj

  • 7/24/2019 Today Software Magazine N44/2016

    10/54

    10 nr. 44/februarie, 2016 | www.todaysoftmag.ro

    Comuniti i Evenimente

    comuniti

    Lansarea numrului 44 al TodaySoftware MagazineFebruarie 23 (Cluj) - Ora 18:00ISDC Romnia

    Today Sofware MagazineComunitate construit n jurul revisteiSM.acebook.com/todaysofmagacebook.com/groups/todaysofmag/

    meetup.com/todaysofmagyoutube.com/todaysofmag

    Data nfiinrii: 06.02.2012Nr. membri: 2977

    Fighting Terrorism with Django,Big Data and NLP24 ebruarie (Cluj) - Ora 6:45meetup.com/RoPython-Cluj/events/228917042/

    Organizator: RoPython - ClujO comunitate Python care dorete saduc mpreun pasionaii acestui limbaj.meetup.com/RoPython-Cluj/

    Microarchitectures for Small An-droid Applications & Post-MWCRound Table29 ebruarie (Timioara) - Ora 6:30Loc. Startup Hub Timisoarameetup.com/iMoDev/events/229023544/

    Organizatori: Timisoara MobileDevelopment GroupComunitatea programatori-lor mobile din imioarameetup.com/iMoDev/

    Agile Mammoths GamesMartie 11 (Cluj) - Ora 9:00Loc: Grand Hotel Italiacolorsinprojects.ro/evenimente/?tab=1

    Organizator: Colors in projectsEste o companie axat pe training-uri deproject management. Simona Bonghez,cea care conduce Colors in projects, este

    cunoscut publicului SM prin seria dearticole Gogu.

    Meetup #47 - MakingAllegiantAir.com accessible2 martie (Cluj) - Ora 6:30meetup.com/abara-de-estare-Cluj/events/228972479/

    Organizator: Tabra de testareabra de estare este o comu-nitate ormat din testeri i aliproesioniti din industria I care,n cadrul unor ntlniri inormalelunare, mprtesc din cunotineleproprii i nva din experieneleproesionale ale celorlali membri.www.meetup.com/abara-de-estare-Cluj/

    Agile Talks #X

    9 martie (Bucureti) - Ora 6:45m e e t u p . c o m / h e - B u c h a r e s t -A g i l e - S o t w a r e - M e e t u p - G r o u p /events/226301564/

    Organizator: Agile WorksComunitatea programatorilorinteresai de metodologii Agilemeetup.com/Te-Bucharest-Agile-Sofware-Meetup-Group/

    Share IT10 martie (Cluj) - Ora 6:00http://www.share-it.ro

    Organizator: Betair Romniawww.betair.com

    Cluj Innovation Days31 martie - 1 aprilie (Cluj) - Ora 9:00Universitatea de medicin iarmacie Iuliu Hatieganuclujinnovationdays.com

    Organizator: Cluj IT ClusterOrganizaie care cuprinde majoritateacompaniilor de I clujene i nu numai.

    Innovation Labs 2016 ClujHackathon12 martie - 13 martie (Cluj) - Ora 9:00Loc. Impact Hub Cluj-Napocawww.acebook.com/events/1066711880060381/

    Organizatori: InnovationLabs i Simplon

    Startup Weekend Cluj -Smart Cities EditionAprilie 8-10 (Cluj) - Ora 18:00Str. Grii nr. 21, 400267 Cluj-Napocawww.up.co/communities/romania/cluj/startup-weekend/8696

    Startup Europe WeekComunitatea a ost creat cu scopul de areuni toate regiunile europene printr-unprogram de startup.

  • 7/24/2019 Today Software Magazine N44/2016

    11/54

    11www.todaysoftmag.ro | nr. 44/februarie, 2016

    TODAY SOFTWAREMAGAZINE

    Oamenii au nceput s aib i ssimt nevoia de a accesa o aplicaie webnu numai de pe desktop, ci i de pe otablet, un teleon mobil sau de pe calcu-latorul mamei de acas, r a avea partede surprize majore n olosirea acesteia.Dup cum se poate observa, tocmai am

    menionat cteva exemple de dispozitivecu dierite sisteme de operare, browseresau chiar versiuni ale acestora. Aadar,privind din perspectiva utilizatoruluiobinuit sau chiar al clientului pentrucare dezvoltm o aplicaie web, ca testerisau programatori trebuie s ne ntrebam:ce putem ace s ne asigurm c aplicaiape care o testm nu are deecte, iar utili-zatorul s poat naviga ericit?n cele ce urmeaz n acest articol am

    ncercat s evideniez importana calitii

    testing-ului pe mai multe platorme, pre-cum i rapiditatea plus uurina cu careputem realiza acest lucru.

    Fig. 1: Browsers

    Dac ai citit articolul lui OvidiuMan din SM#43, Previziuni pentru2016, tii c Vlad Derdeicea declaraaptul c exist o evoluie rapid a device-urilor mobile i se ateapt ca n anul2016 traficul mobil s fie egal cu cel de pedesktop. Eu am motive s menionez cdeja l-a i depit, dac ne uitm la ulti-mele rezultate. Aceasta nseamn c vomavea mai multe site-uri responsive, ntru-

    ct companiile caut variante responsivei chiar aplicaii custom. Putem trage des-tul de uor concluzia c interactivitateamulti-dispozitiv (responsive Web design)este n cretere. Inclusiv Google a decis

    ca site-urile responsives fie clasate maisus n cutri, a de cele destinate doarpentru desktop.Azi sunt zeci de modele de smartpho-

    nesi tablete, sistemele de operare ibrowserele venind cu tot mai multembuntiri. S-a produs o cretere a

    masei de utilizatori, avnd ateptri totmai mari din partea sofware-ului. Maimult dect att, nu toat lumea este laultimul update al sistemului de operaresau al versiunii de browser. Aici intervindificultile. n mod natural, de aici vini cererile clienilor notri legate de mul-titudinea de combinaii de sisteme deoperare (Windows, iOS, Android), devi-ces(pentru care nu am suficiente degetela mini s le enumr) i browsere (dela Chrome, i pn la IE8 i noul Edge).

    Bineneles innd cont de aptul cpe majoritatea dintre acestea, aplicaiatrebuie s uncioneze aproape perect.

    Cnd ne gndim la testare, trebuies ne gndim n primul rnd, la calitate.Aplicaia ar trebui s fie rapid, intuitiv,s respecte anumite guidelines , r cutilizatorul s simt o dieren majorntre mijloacele de interaciune, fie c estevorba despre o tablet sau un calculator.

    Fig. 2: Multitudinea combinaiilor

    de OS i browsers

    estarea pe o multitudine de devices,versiuni dierite de browsere sau sistemede operare este o provocare de multe

    ori. Este nevoie de o strategie oarte binepus la punct, procesul iind unul maindelungat, pentru ca noi ca testeri sau cadezvoltatori s realizm acest lucru ctmai bine ntr-un timp ct mai scurt. Spre

    exemplu, uncionalitile se pot grupaastel nct s nu fii nevoit s schimbi attde mult platormele, n special n re-tes-ting, cnd e nevoie s retestm bug-urilefixate. Deectele care ac parte dintr-unanumit cloud de issues,nu neaprat dinacelai User Story,pot fi retestate mpre-

    un pe aceeai platorm. Un exemplupot i bug-urile gsite pe InternetExplorer sau Saari. De multe ori acestproces poate prea extenuant i poateuneori, inutil, ns atunci cnd simitiacest lucru v recomand s v puneiurmtoarea ntrebare: dac aplicaia pen-tru care acei developmentsau testingarfi a voastr, ct interes ai acorda testriicross-browser?

    Rspunznd la ntrebarea de maisus, am devenit motivat s caut soluii.

    Iniial, soluia la aceast problem amgsit-o n maini virtuale.Acestea se pot descrca. Se alege o

    main virtual (care va rula un anumitsistem de operare si un browser), apoi oplatorm de virtualizare (VirtualBox,VMWare, etc) i se descarc un zip cutot pachetul. Exist intruciuni de insta-lare, iar procesul este destul de simplu.Problema este c dureaz extrem de mult,iar aceste maini virtuale expir dup 90de zile, sau pur i simplu se pierde cone-xiunea la main din cauza unor erori,

    iind nevoie ca procesul s ie reluatulterior. Aceste maini sunt destinateatt ntrepriderilor ct i utilizrii acas.

    Exist dierite tipuri de maini vir-tuale, fiecare cu uncii dierite. Acesteaasigur un substitut complet pentru omain real care dispune de unciile

    necesare pentru executarea unui testingcomplet.

    Cu toate c sunt o alegere bun, nugsim acel balans, acea armonie ntrecalitatea i rapiditatea tastrii. Aa c am

    trecut la o alt variant.O alt soluie recomandat este testa-rea prin intermediul unui toolonline. Caexemple avem BrowserStack, Sauce Labs,Browser Shots, Browserling, IE tester etc.

    Armonie n Cross-Browser Testing

    Anul 2016 ncepe n or. Cred c toi ne gndim la planuri, obiective i viitor, mai ales lucrnd ntr-un domeniu attde dinamic. n ceea ce privete testarea aplicaiilor sofware pe ramura web, se poate observa n mod clar o evoluie.

    testare testare

  • 7/24/2019 Today Software Magazine N44/2016

    12/54

    12 nr. 44/februarie 2016 | www.todaysoftmag.ro

    Roxana [email protected]

    Tester

    @ ISDC

    Eu personal am olosit BrowserStack (https://www.browser-stack.com). Acesta este un cross-browser testingtool pentrutestarea website-urilor publice i servere securizate, care se aflntr-o inrastructur de tip cloud.

    Se preteaz nu numai pentru testarea manual, dar i pentruAutomation esting olosind Selenium sau suite automate de testJavaScript.

    Folosind acest tool, vei avea acces instant la mai mult de 700de combinaii de sisteme de operare i browserereale, rulnd pedesktop i mobile. Este sub orma unui subscription, iar acestadepinde de pachetul pe care dorii s l olosii. Pentru nceputputei s l olosii gratuit i s vedei dac se preteaz nevoilorvoastre

    Fig. 3: BrowserStack tool

    Avantajele acestui tool ar fi urmtoarele: nu este nevoie de instalare,BrowserStack se acceseaz

    printr-un simplu link n browser; micorarea timpului de testing, vitez n testare; rapiditatenu doar n switch-urile dintre browsere, dar i

    ntre platorme (sisteme de operare); accesul se ace extrem de rapid, se pot salva n browser

    mainile i browserelepe care le accesai cel mai des; experien nativ; responsiveness: redimensionare n ereastra de browser; suport pentru emulatoare de mobile; oer suport pentru Automation testing (Selenium,

    JavaScript).

    Funcionaliti:

    Automation: integrarea dintre Selenium WebDriver iBrowserStack tool;

    Debugging: developer tools este pre-instalat (Firebug,Yslow, Microsof Script debugger etc.);

    Mobile: suport de la cele mai vechi la cele mai noi emula-toare mobile;

    Visual: capturarea de screenshotsper URL; Visual:responsive design testing generare de screenshots

    la rezoluia actual a device-ului; Pentru mobile devicessepoate olosi attportrait view ct i landscape;

    Portabilitate: sugestiicross-browsertestingbazate pe statis-tici globale ale utilizrii;

    Local testing: se pot testa servere interne via BrowserStackutiliznd o conexiune securizat;

    Conexiune: atunci cnd sesiunea de testing este creat,maina virtual pornete cu setrile deault(r cache, cookies,istoric, descrcri, parole salvate etc.);

    Acces: 100% up-time, acces instant.

    Marile avantaje ale acestor tipuri de tool-uri pentru o companiesunt urmtoarele:

    Nu exist niciun cost legat de achiziii hardware; Nu exist niciun cost pentru meninerea i ntreinerea

    mainilor virtualesau timp petrecut n instalarea lor; Nicun cost legat de inrastructur.

    Consider c olosind acest tip de tool am gsit o armonientre calitate- pentru c am reuit s testez pe platormele priori-tare, must-havesi rapiditatea de a m mica n switch-ul dintreele. La final pot garanta c avem ntr-adevr un produs calitativi eficient.

    n cele din urm, omul este predispus greelilor i testareaexhaustiv este oarte puin probabil, excepie cnd aplicai-

    ile mici. Acesta este principiul numrul doi al testrii. De aceea,trebuie s inem cont cu att mai mult de celelate cinci principii:testarea evideniaz prezena deectelor, necesitatea testriin azele incipiente, testarea cluster-elor de deecte, PesticideParadox, aptul c testarea este dependent contextual. n celedin urm trebuie s ne asigurm c acem tot posibilul s gsimdeectele pe majoritatea platormelor, pentru ca n final, interac-iunea cu utilizatorul s fie cu succes, iar sistemul s rspundcerinelor i nevoilor utilizatorilor pe oricare dintre platorme.

    testareArmonie n Cross-Browser Testing

  • 7/24/2019 Today Software Magazine N44/2016

    13/54

    13www.todaysoftmag.ro | nr. 44/februarie, 2016

    estele realizate sunt incluse ntr-unsistem de buildautomat olosind Maven. nurm execuiei testelor se trimite pe emailraportul de execuie ce conine statusul pen-tru fiecare metod din serviciile testate.

    Scurt prezentare a SOAP UIntr-o aplicaie orientat pe servi-

    cii, serviciile web sunt slab cuplate, astelnct, odat ce un serviciu este implemen-tat, acesta poate i testat independent de

    celelalte. Dac o aplicaie este expus attpe web ct pe mobile, testarea serviciilorse realizeaz o singur dat, validarea UIfiind realizat ulterior pentru web, respec-tiv mobile.

    Serviciile web comunic ntre ele dar icu alte aplicaii prin transmiterea de mesaje.Simple Object Access Protocol (SOAP) esteun standard recvent utilizat pentru trans-miterea mesajelor. Un mesaj SOAP este undocument XML ce prezint structura demai jos:

    SOAP envelope este elementul careconine toate nodurile dintr-un mesaj.Identific i versiunea de SOAP SOAP1.1 sau SOAP 1.2

    SOAP headereste un element opional

    care conine meta-inormaie (instruc-iuni de procesare a mesajului, date desecuritate, inormaii de adres).

    SOAP bodyeste elementul care con-ine mesajul propriu-zis.

    Web Service Description Language(WSDL) este un ormat XML care descrieserviciile web ca un set de puncte de accesscare proceseaz mesaje, structura acestuiafiind mprit in ypes, Message, Port ype

    si Binding.SOAP UI este o aplicaie ree i open

    source, parte din suita de aplicaii dezvolatede SmartBear Sofware1, ce poate fi olositpentru testarea serviciilor web. Exist iversiune contra cost a aplicaiei, care oerintea bazat pe ormulare ct i opiunisuplimentare de testare.

    SOAP UI poate fi olosit pentru: estarea serviciilor SOAP i RES.

    Pe baza contractului se genereaz requ-est-uri deaultcu date prepopulate. Cnd

    se adaug un WSDL, SOAP UI scaneaztoate SOAP bindings care apar n WSDL igsete metodele expuse de ctre serviciu.

    1 http://smartbear.com

    Testarea serviciilor web folosind

    SOAP UI

    n acest articol voi prezenta pe scurt cum se poate acoperi testarea uncional a ser-viciilor web olosind aplicaia SOAP UI i Groovy Script. estarea serviciilor web esterealizat olosind ori modelul cascad, n care outputul unui pas de test este inputulpasului urmtor, ori modelul ce presupune o conexiune la DB i prelucrarea datelor stocate

    n fiier Excel.

    testare

    Ioana [email protected]

    QA Engineer@ Bissoft

  • 7/24/2019 Today Software Magazine N44/2016

    14/54

    14 nr. 44/februarie 2016 | www.todaysoftmag.ro

    testare

    Genereaz apoi request-urile aerente acestor metode, corespun-ztor schemei XML a serviciului.

    estare uncional, de integrare, de perorman, de secu-ritate olosind acelai mediu de testare.

    Simularea serviciilor. Integrarea de scripting olosind Groovy Script sau

    JavaScript. Reactorizare WSDL modificare automat a testelor exis-

    tente pentru a fi la zi cu noua versiune a contractului. Se integreaz cu alte aplicaii, inclusiv cu cele de inte-

    grare continu. Existplugin-uri pentru Maven, Intellij IDEA,Eclipse, JBoss, NetBeans.

    Se pot genera rapoarte de execuie, cu dierite metrici.Selectnd opiunea de est Coverage, SOAP UI permite analizagradului de acoperire a elementelor contractului, prin testeleuncionale create.

    Fiind dezvoltat n Java, ruleaz pe dierite tipuri de sistemede operare.

    Execuia testelor din intera sau din linie de comand.

    Cnd se creeaz un proiect SOAP UI, acestuia I se ataeazunul sau mai multe contracte. Cnd se ncarc contractul, se vorncrca toate metodele expuse de pe acel serviciu i se pot crearequest-uri deaultpentru fiecare metod n parte.

    Imaginea 1 ncrcarea contractului

    Abordarea cascad pentru testarea funcional a serviciilor webn cadrul firmei olosim intens SOAP UI, versiunea Ready!

    API SOAP UI NG, pentru testarea uncional a servicilor web.estele sunt organizate n Proiecte. Un proiect poate avea mai

    multe suite de teste (est suites). O suit poate avea mai multeest cases. Fiecare est case conine est steps. Prin test stepsorganizm logica de validare a unei anumite uncionalitidintr-un serviciu web.

    Imaginea 2 Exemplu de request, response i assert pe response

    Pentru a ne asigura c datele de test sunt unice la iecareexecuie a testelor, una din abordrile olosite este testarea incascad. Dac se dorete validarea metodei Update de exemplu,

    mai nti apelm metoda Create. Rezultatul generat de metodaCreate devine intrare pentru metoda Update. Ultima operaie vafi cea de tergere a datelor inserate n baza de date. Rspunsulreturnat de ctre metoda Update este validat, prin crearea demultiple assert-uri pe elementele din rspuns. Se eectueazmultiple validri coninutul elementului este cel ateptat, datantoars este de un anumit tip ( exemplu datetime), dac un anu-mit element este obligatoriu, dac se ntoarce un anumit cod seeroare i mesajul aerent codului de eroare, dac se respect lun-gimea maxim pentru un anumit cmp, dac se permit caracterespeciale.

    Pentru a pune n practic abordarea cascad, olosind GroovyScript, am creat o serie de metode ajuttoare care sunt apelate ncadrul test case-urilor. Aceste metode ajuttoare genereaz testcase-uri tipizate pentru toate metodele unui serviciu, genereazdate de un anumit tip, copiaz datele din rspuns ntr-un pas detipul Properties (cmp - valoare), copiaz date dintr-un pas naltul, creeaz validri mai complexe, etc. .

    Imaginea 3 Abordarea Cascad

    SOAP UI execut est case-urile secvenial. Organiznd tes-tele n ordinea dorit, ne asigurm c la fiecare execuie datele

    de test sunt unice i nealterate. Dac primul test, cel de creareelement, eueaz, , toate testele ulterioare vor eua.Pentru a avea un grad mare de acoperire a elementelor din con-

    tract, se trimite request-ul cu toate elementele avnd date validei se creaz assert-uri pe fiecare element din rspuns. n unciede validarea dorit, se selecteaz unul din assert-urile standardsau olosind Groovy Script se pot crea assert-uri mai complexe.Pentru validarea coninutului datelor din rspuns, comparmdatele generate i stocate ntr-un pas de tipul Properties cu celentoarse n rspuns.

    Dup iecare execuie se pot genera rapoarte de execuie,coninnd toatele metodele executate, cte teste au trecut, cteau euat, care este cauza pentru care au euat, care este rata de

    acoperire a elementelor din contract.

    Testarea folosind conexiunea la DBn uncie de specificul proiectului, poate fi necesar inserarea

    sau tergerea direct din baza de date. n acest sens, olosim Setupscript i ear down script existente n fiecare est case. Datele deintrare i cele de validare a rspunsului sunt organizate ntr-unfiier Excel. Funciile Groovy necesare pentru stabilirea conexi-unii la DB, pentru manipulare date, pentru tergere conexiune,sunt grupate ntr-un fiser groovy script. Pentru a putea accesabaza de date din cadrul SOAP UI este nevoie de driver-ul ojdbc6.jar. Driver-ul trebuie copiat n locaia directorInstalareSOAPUI \

    jre\lib\ext. Pentru ca execuia testelor s fie oarte rapid, fiecaremetod care se testeaz are propriul fiier cu date de test. Pentruun serviciu vom avea attea fiiere Excel cte metode sunt peserviciu.

    Testarea serviciilor web folosind SOAP UI

  • 7/24/2019 Today Software Magazine N44/2016

    15/54

    15www.todaysoftmag.ro | nr. 44/februarie 2016

    TODAY SOFTWAREMAGAZINE

    Imaginea 4 Testare folosind conexiunea la DB

    n partea de setupse iniializeaz conexiunea la DB i se seteazconexiunea pe context pentru a putea fi olosit ulterior n cadrulaceluiai est case. Se citesc datele din fiierul Excel i se inse-

    reaz n DB.Se execut paii urmtori din test case ncrcarea datelor

    necesare validrii rspunsului, eectuarea de request-uri, valida-rea rspunsului.

    n partea de ear down script, ultimul pas executat din estcase, se utilizeaz conexiunea existent la DB dac e disponibil,dac nu este disponibil se creeaz o conexiune nou. Se citescdin fiierul Excel datele ce trebuie terse din DB i se eectueaztergerea din baza de date. Se terge conexiunea creat pentruaccesul la baza de date.

    Imagine 5 Setup script

    Integrarea testelor SOAP UI ntr-un sistem de build automat

    estele SOAP UI sunt salvate n ormat XML. Aceste teste le-am integrat ntr-un sistem de build automat, utiliznd Jenkins.Exist un job configurat s execute testele automat, ori de cteori se ace build pentru codul comis. estele sunt executate pe omain configurat pentru testare. Pentru integrarea n Jenkinsam utilizat Maven.

    Imaginea 6 Jenkins job -comnada Maven pentru execuia testelor

    n urm execuiei testelor se trimite un email care conineraportul execuiei testelor. n acest el avem un eedback rapid iconstant privitor la codul implementat.Un exemplu de raport primit pe email este prezentat n figura

    de mai jos. Emailul conine statusul per fiecare serviciu/per fie-care metod din serviciu, ct i link-uri ctre raport general i decoveragepentru fiecare serviciu n parte.

    Imaginea 7 Raport de execuie primit pe Email

    Imagine 8 - Exemplu raport de acoperire

  • 7/24/2019 Today Software Magazine N44/2016

    16/54

    16 nr. 44/2016, www.todaysoftmag.ro

    Harta testrii

    Acest mod de a-l percepe pe testeraparine de obicei acelor manageri carecred adesea c oricine poate testa aplicaii,cauznd abordri superficiale n ceea ce

    privete asigurarea calitii. Dincolo deaptul c a nu recunoate c proesia detester este una solicitant i meritorie iace pe testeri s se simt neapreciai, nciuda muncii lor grele, aceast atitudine sersrnge n mod negativ asupra niveluluicalitii n industria I.

    Care mai e rostul testrii dactot srim prin a avea bug-uri nproducie?

    Simeam nevoia s ac ceva n leg-tur cu asta, aa c am nceput s desenez.rebuia s mi pun pe hrtie gndurile,

    experienele, cunotinele mele de tes-tare sofware, deoarece doream ca ceilalioameni s vad ceea ce vd eu. Am muncitoricnd am avut puin timp liber i, dupcteva luni, am reuit s pun ceva lao-lalt. Prima ncercare a ost stngace i, cas m exprim rumos, urt ca naiba, sspun adevrul. Imediat ce prima schi aost gata, am nceput s m uit la desenulmeu ca la o hart. O hart care dezvluiasemnificaii, o hart care conecta punctece reprezint zonele principale ale testrii

    sofware. A ost nevoie de puin ajustarei leuire dar, dup alte cteva sptmni,aveam n srit ceva de artat lumii. Amcumprat un domeniu i am ncrcatharta n ormat digital. O putei vedea la

    http://thetestingmap.org/.Harta crescuse att de mult n aria

    de acoperire i coninut, dar nc era opictur de ap ntr-un ocean. Drept

    urmare, a crescut i ambiia mea.Am nceput s caut mai multeinormaii pe web. Pe ct de dificil ar puteasuna asta (i a ost), am reuit s gsescnumeroase articole relevante dedesubtulgrmezii mari de spam i reclame. Mi-amcut propriul meu motor de cutareGoogle, care eectua cutri numai n web-site-urile de testare sofware. Pe msur ceharta continua s creasc n dimensiune,am descoperit o comunitate surprin-ztoare de testeri care mi mprteauentuziasmul i pasiunea pentru aceast

    meserie. Am gsit multe website-uri ibloguri scrise de ctre testeri care eraudispui s mprteasc cunoaterea lorn mod gratuit.

    Existau att de multe inormaii utilenct am nceput s le leg prin link de zoneale hrii. Citeam cu renezie, aproximativ50 de articole pe sptmn, timp de maimulte luni, doar ca s vd dac subiectulpostrii de pe blog putea fi inclus pe hart.

    n cele din urm, am ost obligat sconstruiesc o nou pagin web unde

    puteam citi articolele i apoi s le includ nHarta testrii. Putei gsi pagina la http://sofwaretestingblogs.thetestingmap.org/.

    Acum s parcurgem mpreun princi-palele zone ale hrii.

    Mi-am petrecut ultimii zece ani din via n industria I. Am nceput ca testeri chiar dac mi-am petrecut ultimii civa ani drept Manager de Calitate,m consider ns un tester. n experiena mea de tester am remarcat o anu-mit percepie asupra condiiei testerului, care tinde s-i minimalizeze rolul acestuia.

    Claudiu [email protected]

    Quality Manager@Capgemini

    testare

  • 7/24/2019 Today Software Magazine N44/2016

    17/54

    17www.todaysoftmag.ro | nr. 44/februarie 2016

    TODAY SOFTWAREMAGAZINE

    Procese i activiti. Avem nevoiede reguli i regulamente, dar, pe de altparte, dup cum spune Barry Schwartz:regulile nu vor putea s ghideze oame-nii prin situaii complexe sau neclare.Problemele din lumea real sunt ade-sea ambigue sau prost deinite, iarcontextul se schimb mereu. Gsireaunei balane este cheia pentru a aveaun proces bun.

    Metodologie. esterii ar trebui stie ce teste s ruleze i tehnicile pecare le au la dispoziie, i cnd s leadapteze.

    Utilizarea metodologiei. Uneorimetodologia nu le acoper pe toate. Arputea s existe cazuri particulare i, naceast situaie, zona aceasta este ncn construcie. Dar am nceput s creez

    cteva exerciii de testare care, cred eu,i vor ajuta mult pe testeri.

    Principiile testrii. Fr principii, nu am avea ghidare.Adevrul este c nimeni nu este de acord cu privire la principiilecare au prioritate. Este o discuie deschis, aa c v putei alegeavoritul.

    Activiti de sprijin. estarea este o parte vie i care evolueaza ciclului de via al dezvoltrii. Nu este sarea pe care o mprtiipeste omleta ta dup ce ai scos-o din tigaie, ci mai degrab ames-tecarea i atenia continu pe care i-o acorzi pe durata ntreguluiproces de gtire.

    Instrumente.Eortul i ctigul fiecrei meserii. Un pictor

    bun este unul care tie cum s i adapteze pensulele la dispoziiasa i la cerinele picturii.Tehnologia.Considerm c este necesar o undaie de apti-

    tudini tehnice. Cei mai buni oeri sunt adesea i buni mecanici,deoarece ei neleg cum uncioneaz o main i de ce este nevoiepentru ca o main s aib perormane.

    Aptitudini sof. estarea are loc adesea ntr-un context careimplic oameni. Astel, testerii trebuie s tie cum s lucreze cuoamenii.

    Resurse de nvare. Nu exist o biblie a testrii sau vreunmanual sau colegiu unde s nvei testarea. Resursele sunt ncdispersate i, drept urmare, testerii trebuie s fie mereu ateni laapariia noilor inormaii.

    Social.estarea este un nou meteug. Multe cunotine suntmprtite prin evenimente sociale (precum ntlnirile). Cea maicunoscut ntlnire local este abra de estare.

    Istorie. Joris Meerts i contribuiile suplimentare ale luiDorothy Graham, au reuit s redacteze o minunat istorie atestrii.

    Deci, la ce olosete harta? n primul rnd, ar putea fi utilizat

    drept un ghid n demersul tu de a deveni un tester mai bun. Sauai putea avea o discuie rapid n care participanii aleg un subiecti vorbesc despre el timp de cinci minute. n ultimul rnd, ai puteancerca s o ari oamenilor care consider c testarea sofwarepoate fi cut de ctre oricine i s vezi ce opinie au.

    Aadar, tu cum ai utiliza-o?

  • 7/24/2019 Today Software Magazine N44/2016

    18/54

    18 nr. 44/februarie, 2016 | www.todaysoftmag.ro

    Crearea unui Microsoft Band Tile

    pentru a direciona notificrile de stare a construciei

    Privire generalDar ceea ce m impresioneaz este partea de sotware i

    uurina cu care poi dezvolta un tile(o aplicaie custom) pentruacesta. Nu trebuie s nvei C# pentru c poi crea uor un tiledirect din browser.1

    Acesta i va permite s obii coninut din web i s ldirecionezi spre tile-ul tu. n acest el poi uor integra aplicaiata n band! Rapid i uor.

    Un alt aspect grozav este modul cum pui n olosin i par-tajezi tile-urile. Nu este nevoie s le direcionezi n magazin, s levalidezi i aa mai departe. Nu. Eti liber s partajezi tilecu ori-cine. Doar ncarc-l ntr-o locaie specific i partajeaz URL-ulcu prietenii ti prin mail sau web. eleonul poate detecta tilenmod automat i l poate deschide utiliznd aplicaia MicrosofBand.

    Informaia este putereaPentru clieni, lucrul cel mai important este coninutul pe

    1 https://developer.microsofband.com/Webile.

    care l afiezi n tile. ncearc s te concentrezi pe coninutul pecare doreti s l afiezi. rebuie s identifici coninutul care poatembunti viaa proprietarului de band.

    Deoarece numrul de tile-uri pe care le poi instala pe bandeste limitat, ar trebui s ai n vedere aptul c acel client va pstra

    numai tile-urile cele mai importante, care i aduc inormaiile des-pre dispozitivul su de care are nevoie cu adevrat. Altel, tile-ultu va fi doar un alt tile, pe care nimeni nu l utilizeaz sau nu lpstreaz mai mult de 5 minute.

    Orice dezvoltator poate crea un tile i poate direcionaconinut spre Microsof Band, n doar 2 sau 3 minute. Dar numaiideile bune i coninutul util vor ajunge pe dispozitivele clienilor.

    Echipa noastrFiecare dezvoltator din echipa din care ac parte a primit

    anul trecut un Microsof Band 2. Am nceput s acem glume petema asta, cum c am multiplicat numrul de Microsof Bands n

    Cluj-Napoca de aproape zece ori mai mult. Echipa nu este attde numeroas, dar la acel moment n Cluj-Napoca tiam doar osingur persoan cu band.

    IdeeaAm nceput s m gndesc la ceea ce am putea ace cu band-

    ul. n cele din urm am ajuns la o soluie simpl, pe care o voidescrie de la un capt la altul n partea care urmeaz n articolulmeu.

    Direcionarea notificrilor de modificare a statusului dezvoltrii spreband

    Ideea este simpl. Noi nepstrm codul surs pe FSOnline (Visual Studio Online) iFS 2015 la locaie. Avem dieriiageni de dezvoltare pe Azure in reeaua privat a companieinoastre (la locaie) care con-struiesc soluia noastr, ruleazteste pe uniti, extrag dieriiparametri i pun n olosinaplicaia n mod automat pemedii dierite. Scopul principal

    este s ntiineze ct mai curndposibil echipa de dezvoltare deaptul c a picat construcia.

    Anul trecut, Microsof a lansat Microsof Band 2. Este oarte puternic cu muli senzori i o autonomie a bateriei care mi oerdou zile de energie.

    programare

  • 7/24/2019 Today Software Magazine N44/2016

    19/54

    19www.todaysoftmag.ro | nr. 44/februarie 2016

    TODAY SOFTWAREMAGAZINE

    Privire de ansamblu asupra blocajelor i arhitecturiiScopul principal este acela de a direciona o notificare nspre

    bandn momentul n care construcia eueaz. Ideea este simpl,dar avem nevoie s gsim o soluie pentru a putea s trimitemo notificare ctre bandr a trebui s nmagazinm FS UserCredentials (Datele de identificare ale utilizatorului).

    Nu exist nicio modalitate de a depozita datele de identificarepe bandi a cerceta serverul de control surs. O soluie posibileste s dezvoltm o aplicaie pentru teleon care s direcionezeaceste notificri. Dar, ateptai noi nu suntem dezvoltatori demobile i fiecare dintre noi avem tipuri dierite de teleoane iPhone, Windows Phone i Android. S-ar putea s mearg, dareortul de dezvoltare este prea costisitor. Am putea s scriem oaplicaie mobile cross platorm, dar pn s o lansm n magazin,se va pierde interesul i oportunitatea de moment.

    RSS Feed (Intrare RSS)O soluie mai simpl este s expunem un RSSeed/ o intrare

    RSS cu notificrile de modificare a statusului construciei. De fie-care dat, cnd se modific starea construciei, un coninut nouva fi disponibil pe Serverul RSS. ile-ul care ruleaz pe bandvadetecta noul coninut i va ntiina utilizatorul.

    n acest moment am rezolvat numai o parte din problem.Avem un punct terminal web care poate fi utilizat de ctre tilepentru a accesa o intrare RSS. Canalul de alimentare RSS poate fiolosit de ctre bandpentru a obine notificrile de modificare astatusului construciei.

    Direcionarea notificrilorAcum, noi trebuie s gsim o cale de a direciona modificarea

    strii construciei de la serverul CI ctre aplicaia noastr web.

    Acest lucru este puin mai neltor i v rog s ignorai oricetip de probleme de securitate care vor fi doar menionate, nu iacoperite.

    Pentru Visual Studio eam Services, problema poate i

    rezolvat cu uurin. Deoarece CI este disponibil publicului, noitrebuie s nregistrm n aplicaia noastr web un nume de utili-zator i o parol care s poat fi utilizat pentru a interoga stareaconstruciei n legtur cu modificrile.

    Dar pentru serverul nostru CI de la locaie, s-ar putea savem o problem. Serverul CI de la locaie nu este disponibilpublicului. Aceasta nseamn c nu putem interoga serverul nos-tru pentru a verifica starea construciei de pe internet. Haidei sne olosim imaginaia.

    Care este aciunea implicit cut de un server CI atuncicnd o construcie eueaz, cu excepia schimbrii de culoare?Aciunea cea mai obinuit este s trimit un email unuia saumai multor utilizatori. Aceasta este cheia noastr pentru a puteaaccesa o notificare de schimbare de status.

    Aparatul CI va trimite o notificare ctre serverul nostru demail. n mod normal, un Mail server este accesibil publicului depe internet. Aplicaia noastr web RSS va trebui s nregistrezedatele de identificare pentru email.

    Chiar dac soluia va unciona i ar putea fi utilizat cu suc-

    ces, noi trebuie s avem n minte c: Datele de identificare vor fi nregistrate de ctre Web App. Inormaiile confideniale (Build Status) vor fi disponibile

    publicului pe un terminal web care poate fi utilizat de oricine. Orice persoan care are tile-ul vostru va putea s vad noti-

    ficrile de schimbare de status ale construciei (construciilor).oate aceste puncte trebuie s fie discutate cu grupul de secu-

    ritate al companiei voastre. Nu ar trebui niciodat s implementaio astel de soluie r a avea acordul lor.

    ImplementareaNotificarea prin email TFS

    Soluia este aplicabil pentru versiunea mai veche a FS, deasemenea. Paii i mostrele de mai jos sunt pentru Visual StudioOnline i FS 2015.

    Va trebui s definii o alert care s trimit o notificare prin

  • 7/24/2019 Today Software Magazine N44/2016

    20/54

    20 nr. 44/februarie 2016 | www.todaysoftmag.ro

    programare

    email n momentul n carecalitatea construciei se modi-ic. n uncie de nevoilevoastre, putei utiliza acelaicont pentru a trimite notificri

    pentru construcii dierite.

    Verificarea emailurilor noiExist dierite biblioteci care te pot ajuta s i accesezi serve-

    rul email. u ar trebui s decizi ce tip de bibliotec vrei s olosetin uncie de tipul serverului email. Dac utilizezi Outlook sauExchange Server, atunci poate ai vrea s oloseti biblioteca EWS.Pentru un cont Gmail, s-ar putea s ai nevoie de un client POP3i unpurserMIME precum OpenPOP.NE. n exemplul de maijos, putei vedea cum se poate primi un mesaj, olosind bibliotecaOpenPOP.NE.

    POPClient client = new POPClient();client.Connect(pop.gmail.com, 995, true);client.Authenticate([email protected],

    Hahaha);var count = client.GetMessageCount();Message message = client.GetMessage(count);

    Subiectul poate fi accesat n elul urmtor: message.Headers.Subject.

    Expunerea notificrilor drept intrare RSS

    Urmtorul pas este s expunem noile notificri drept intrriRSS. Acest lucru poate i cut n 10 minute, dac utilizmAPIController. Nu avem nevoie s implementm o intrare RSS is dispunem n serie coninutul.

    Acest lucru este sprijinit de ASP.NE MVC. Exist chiar

    i un ActionResult special care este creat pentru acest scop RssActionResult. La RssActionResult, noi trebuie s stabilimproprietatea Feed care este de tipul SyndicationFeed.

    public ActionResult BuildStatusRSS(){ IEnumerable buildStatus = BuildSta-tusManager.GetAllByDate(8); SyndicationFeed buildFeed = new SyndicationFeed(Build Status, new Uri(http://www.raduvunvulea.com/buildStatus/RSS), Guid.NewGuid().ToString(), DateTime.Now);

    List buildStatusList = newList(); foreach (BuildStatus bs in posts) { string postUrl = string.Format(build\\build-entry-{0}, bs.Id); SyndicationItem buildStatus = new SyndicationItem(bs.Title, bs.Description, new Uri(postUrl), bs.Id, bs.Date); buildStatusList.Add(buildStatus); }

    buildFeed.Items = buildStatusList;

    return new RssActionResult {Feed = buildFeed};}

    n exemplul de mai sus, am generat un RSS cu status al

    construciei. Clasa BuildStatus este o clas customn care sedepoziteaz inormaiile legate de o construcie specific. Aceastclas este populat pe baza emailurilor care sunt trimise de FSatunci cnd statusul unei construcii se modific.

    Gzduirea aplicaiei noastre webPutem gzdui aplicaia noastr web drept o Web App n

    Azure. Nivelul gratuit va fi suficient pentru a ne juca puin.Url-ul aplicaiei mele web va fi asta2. Statusul construciei va

    fi gsit pe hart aici3.

    Crearea de TileAcesta este ultimul pas pe care trebuie s l acem. Noi trebuie

    s crem Microsof Band ile. Acestlucru va fi cut direct din browser4.

    Urmtorii pai sunt destul desimpli; trebuie s speciicai culori,icon-uri i alte astel de lucruri. Odatce am cut asta, putem descrca tilepe computerul nostru local.

    Publicarea tileCea mai simpl soluie pentru a publica tile este s l ncarcipe un sistem de partajare fiiere, precum OneDrive i s creeziun link de partajare.

    Finaluli am srit. Odat ce accesezi linkul la tilede pe teleo-

    nul tu, aplicaia Microsot Band se va deschide i vei puteadireciona tile-ul.

    Concluzien acest articol am expus o soluie de la un capt la altul legat

    de cum putem direciona notificri pe Microsof Band-ul nostru,

    r a dezvolta o aplicaie pentru teleon. Din perspectiva tile,crearea i publicarea unui tileeste uoar.

    Lucrul cel mai complex este crearea intrrii (eed) cuinormaiile corecte. Nu din cauza problemelor tehnice, ci estevorba de ce coninut s aim. Ar trebui s ne amintim cinormaia este puterea.

    2 http://rvbuilstatus.azurewebsite.com

    3 http://rvbuilstatus.azurewebsite.com/build/rss

    4 https://developer.microsofband.com/Webile

    Crearea unui Microsoft Band Tile pentru a direciona notificrile de stare aconstruciei

    Radu [email protected]

    Senior Software Engineer@iQuest

  • 7/24/2019 Today Software Magazine N44/2016

    21/54

    21www.todaysoftmag.ro | nr. 44/februarie, 2016

    Mic istoricDomeniul I a trecut de-a lungul

    timpului prin mai multe aze att tehno-logice ct i organizaionale. Fie c ne dmseama sau nu, modul n care ne organizmmunca n cadrul echipelor a depins ntr-ooarecare msur, de nivelul tehnologic dela momentul respectiv.

    Modelul waterall de dezvoltaresofware a aprut (ca aze, nu ca nume), n1956, fiind probabil, primul mod de stan-

    dardizare al acestui proces. El cuprinde nmare urmtoarele etape: analiz i design,implementare, testare i ntreinere.

    Limitrile tehnologice au permismeninerea acestui proces o perioadndelungat de timp. Sofware-ul era rulatie pe mainrame-uri la irma care creasofware-ul, fie era livrat static clientului(CD, dischete etc).

    De asemenea, au aprut roluri binedefinite n organizaii: dezvoltatori (pro-gramatori), administratori de sisteme,

    administratori baze de date, ingineri reeleetc. .Dar, cu timpul, a aprut o problem:

    clientul.

    De multe ori prea s fie cam indecis ichiar ambiguu. Att de ambiguu nct uncoleg din firma noastr i-a scris lucrareade doctorat avnd ca tem Ambiguitatean cerinele sofware. Dar mai grav eraindecizia. Aceasta genera mereu schim-bri n cerine, care duceau mai apoi laschimbri n design, implementare i aamai departe.

    Pentru c vechiul mecanism waterallnu cea a, de multe ori, mediului acesta

    dinamic, situaia a ost salvat de metodo-logia Agile.

    Agile-ul era un waterall mai mic imai scurt, repetat de mai multe ori, pncnd produsul era terminat sau clientulsatiscut. Desigur, comparaia aceasta egrosolan i suprasimplific Agile-ul, temafiind mult mai complex i interesant.

    Ce ne intereseaz pe noi n cazulde a este c, n cadrul companiilor,mprirea atribuiilor a rmas aceeai:programatorii dezvolt aplicaia (itera-

    tiv, de data aceasta), iar ceilali i vd ncontinuare de sistemele, bazele de date ireelele lor.

    Presiunea, ns, pe care o pune mediul

    Adoptarea unei culturi DevOps

    DevOps-ul este un enomen tot mai ntlnit astzi n mediul I i reprezint pro-babil viitorul modului n care ne organizm munca n comunitile noastre.Vom vedea n rndurile urmtoare de unde a aprut nevoia pentru el, cum seprezint astzi i de ce este considerat o cultur, nu o metodologie. La final, un exemplu

    concret ne va arta cum este adoptat DevOps-ul ntr-o companie clujean.Claudiu [email protected] Administrator@ Yardi Romania

    management

  • 7/24/2019 Today Software Magazine N44/2016

    22/54

    22 nr. 44/februarie 2016 | www.todaysoftmag.ro

    Adoptarea unei culturi DevOps

    management

    online asupra echipelor implicate n dezvoltarea i ntreinereaaplicaiilor contemporane, care sunt fie aplicaii web, fie dependn mod intrinsic de web), au determinat unele organizaii s acun pas important: au drmat zidurile imaginare care s-au nlattot mai mult ntre echipe.

    Au reuit s aeze un administrator ntre developer-i i, proba-bil surprinztor, au avut rezultate la care nici ei nu s-au ateptat:mai puine bug-uri, mai multe deploy-uri, mai puin downtimeireveniri mai rapide n caz de probleme.

    Datorit acestei apropieri ntre cele dou echipe, micarea aprimit numele de DevOps (n unele organizaii partea de SystemAdministration poart i numele de Operations).

    Despre DevOpsNevoia de a apropia domeniile Development de Operations a

    generat mai multe abordri n cadrul organizaiilor I.ot mai multe companii ac recrutri pe poziii de DevOps.

    Candidatul ideal, n cele mai multe din cazuri, este reprezentatde un administrator rockstar avnd competene n administrarea

    de sisteme, deployment-uri de aplicaii, baze de date, scripting,programare i, dac se poate, puin management. n alte situaiicompaniile creeaz echipe noi DevOps care s stea ntre echipaclasic de developer-i i echipa de administratori.

    Persoanele de tip rockstar pot ajuta o echip, aducnd unbagaj mai mare de cunotine i experien de care s benefici-eze toi membrii echipei, mai ales dac aceste persoane tiu smpart inormaia. O denumire mai potrivit pentru acest anga-jat esteull-stack developer.

    Unele companii, ca Etsy, preer totui s-i evite, n avoareaunor angajai de nivel junior pe care s i pregteasc ei. Motivulpentru care preer aceast abordare l reprezint aptul c, din

    experiena lor, administratorii rockstar nu lucreaz n echip lael de bine ca ceilali angajai. Ei preer echipe bine nchegate,care s uncioneze ca un tot unitar i care s nu depind de osingur persoan.

    Dei unii ar putea considera c Etsy ace o generalizare preasimplist, adevrul este c recrutarea unui ull-stack developereste oarte dificil, existnd puine persoane pe pia cu acestecompetene. Pentru un proiect sau o companie, ormarea de noiangajai care s lucreze bine mpreun reprezint o abordare maieficient economic i mai sustenabil.

    n privina celei de-a doua abordri, putem s presupunemc, pe termen lung, interpunerea unei echipe noi ntre douechipe care trebuie s comunice bine nu poate avea eectul scon-

    tat. Pe lng aptul c mediul de comunicare se sparge n dou(dev - devops - ops), trebuie gsit i o distribuire eicient aresponsabilitilor.

    Modelul care va fi prezentat n exemplul de la finalul artico-lului e un exemplu de apropiere treptat a echipelor, avnd cascop crearea unei mentaliti i a unui mod de a ace lucrurile inspiritul DevOps.

    Metodologie versus CulturPrimul impuls al celor care ncearc s defineasc DevOps-ul

    este s afirme c este o metodologie.Metodologia se reer, n general, la analiza teoretic a meto-

    delor aplicate ntr-un domeniu. De exemplu, cnd discutmdespre metodologia Agile, ne reerim la un set ntreg de metodei bune practici pe care aceasta le propune, avnd n spate o argu-mentare teoretic i chiar practic.

    DevOps-ul nu vine s nlocuiasc Agile-ul ci, n cel mai bun

    caz, doar s-l completeze.DevOps-ul propune doar ruperea barierelor care s-au ormat

    ntre partea de Dev (programatorii) i partea de Ops (adminis-tratorii) din spatele proiectelor sofware. Acest demers aecteazntreaga dinamic din organizaie, implicnd toate nivelele ierar-hice n acest proces. Astel, n organizaia care practic DevOps,exist deja o cultur a comunicrii i a rezolvrii de probleme nechipe mixte.

    De ce s facem devops?Rspunsul la aceast ntrebare l oer raportul Puppet 2015

    State o DevOps. Acest raport este pregtit anual de Puppetlabsi reprezint rezultatul statistic oerit de rspunsurile a peste 4900de angajai n I, de pe toate poziiile i din mai multe regiunigeografice. Concluziile acestui raport sunt c organizaiile I cuperormane ridicate:

    Fac deployde 30 de ori mai des. Au timpi de leadde 200 de ori mai scuri (intervalul de la

    scrierea codului pn cnd ajunge n producie). Au de 60 de ori mai puine eecuri n producie. i revin de 168 de ori mai rapid dintr-o stare de avarie.Aceste numere reprezint comparaia ntre companiile cu cele

    mai ridicate perormane i cele mai slab perormante.Modul n care este definit perormana unei organizaii I i

    cum se msoar aceasta sunt detaliate oarte explicit n documen-tul menionat, mpreun cu actorii care ajut la mbuntirea ei.Vom enumera doar civa, invitnd cititorul s parcurg ntregulraport:

    Aplicarea principiilor de lean management i continuousdelivery;

    Implicarea managementului n procesul de schimbare nDevOps; Designul aplicaiilor tinnd cont de testabilitate i

    sustenabilitate.

    DevOps la Yardi RomaniaPovestea Yardi Romnia a nceput n anul 2006 cu

    PropertyShark. Acesta este un produs destinat proesionitilorn imobiliare din New York, oerind inormaii detaliate despreproprieti.

    Fiind o firm relativ mic (maxim 40 de angajai), s-a merspe un model organizaional n care toi angajaii cunoteau bineprodusul, fiecare trecnd, la un moment dat i pentru o perioad

    scurt de timp, pe la toate echipele. Acest lucru a dus la o maibun nelegere a nevoilor de business i a problemelor care pots apar.

    Dei administratorii lucrau separat de developer-i (n ncperidierite), ei participau la toate edinele care implicau produsuli luau parte la tot ce nsemna decizie important. De asemenea,dac situaia o cerea, intrau chiar i n cod pentru a ace modifi-crile necesare ca totul s mearg bine.

    n anul 2010, PropertyShark a ost achiziionat de Yardi. ntimp, compania-mam a asignat mai multe produse biroului dinRomnia. Fiecare produs avea propria echip de dezvoltatori,ns echipa de administrare de sisteme a rmas una singur (cu

    un numr crescut de membri). Fiecare administrator cea attmunc de local I ct i task-uri de produs. i, pentru c aproapetoi administratorii ceau parte din echipa on-call, era nevoie cafiecare persoan s cunoasc fiecare produs.

    Acest sistem a uncionat bine o perioad ndelungat de

  • 7/24/2019 Today Software Magazine N44/2016

    23/54

    23www.todaysoftmag.ro | nr. 44/februarie 2016

    TODAY SOFTWAREMAGAZINE

    timp, ns, pe msur ce se adugau produse noi biroului din Cluj,devenea evident aptul c aceast soluie nu va scala.

    Pentru rezolvarea problemei, s-a decis n prim az asignareaa cte dou persoane pentru fiecare produs i participarea lor lastand-up-urile zilnice ale developer-ilor. Astel, pentru manageriirespectivelor echipe era clar cine se ocupa de problemele lor pepartea de administrare de sisteme, iar administratorii participauactiv la discuiile i deciziile privind produsul.

    Dup aceast modiicare, eedbackul primit a ost unulncurajator: managerii au observat o mbuntire n rezolvareatask-urilor de la administratori, iar acetia au ost mai concentraipe produsele lor, nefiind nevoie s schimbe contextul ntre maimulte medii i produse.

    Urmtoarea az important a reprezentat-o un proiect nou,intern, la care managerul a cerut ca cei doi administratori asignaiproiectului su s stea mpreun cu restul echipei. Dup ctevasptmni s-au i vzut rezultatele: echipa a uncionat ca un totunitar cu roluri bine definite, dar interconectate bine.

    Nivelul mare de eficien obinut n cadrul acestul proiect a

    determinat mutarea i a celorlali administratori lng echipelepe care le deserveau. Aceast apropiere fizic a ajutat att la nte-legerea de ctre developer-i i manageri a problemelor aprute pepartea de administrare ct i la nelegerea de ctre administra-tori a nevoilor developer-ilor. De asemenea, participarea tuturorprilor la discuii a determinat depistarea unor probleme naintes apar i rezolvarea altora la scurt timp dup ce au aprut.

    n continuare este nevoie ca echipa deon-calls cunoasctoate produsele, dar nu la un nivel att de avansat ca nainte.Problemele specifice produsului le rezolv echipa specializat,care, mai apoi, notific on-call-ul de schimbri.

    Acest mod de lucru s-a dovedit eficient n cadrul companiei

    noastre, iar implementarea sa treptat a contribuit major la suc-cesul su.

    ConcluziiProbabil cel mai important lucru de reinut este aptul c

    DevOps-ul nu trebuie gndit ca un set de skill-uri pe care trebuies le aib angajaii ori ca un set de tool-uri pe care trebuie s leolosim pentru a ne numi DevOps. Important este apropiereadintre echipe, iar skill-urile i tool-urile apar doar dac apare onevoie pentru ele.

    BibliografieEffective Devops - Jennier Davis, Katherine Daniels; OReilly Media 2015

    We are all DevOps presentation, Velocity Amsterdam 2015, https://speaker-

    deck.com/kdaniels/we-are-all-devops

    State o DevOps report 2015, Puppet Labs, https://puppetlabs.com/sites/

    deault/files/2015-state-o-devops-report.pd

  • 7/24/2019 Today Software Magazine N44/2016

    24/54

    24 nr. 44/2016, www.todaysoftmag.ro

    n aceast colecie de enunuri reg-sim cteva din principiile i ilozoiilecare au guvernat n dezvoltarea sofware.Unele par s le contrazic uneori pe altele,iar dezbaterile pe aceste teme sunt adeseancinse i dezvluie un anumit nivel dencpnare i un el de primitivism detoate prile. Putem gsi argumente teh-nice pentru a le rezolva?

    n acest articol ncerc s oer o privirede ansamblu asupra tiparelor de argumen-tare care apar adesea din astel de discuiii s examinm de ce este att de dificil s

    gsim rspunsuri decisive.

    Argumente tipice

    Apelul la autoritateAjuni ntr-un impas, este un lucru

    comun s acem apel la autoritate Renumitul dezvoltator John Doe sprijinacest ramework/ principiu/ aceast bibli-otec/etc., deci trebuie s fie bun! Acestanu este un argument decisiv, dar are unanumit grad de legitimitate. Un dezvolta-

    tor cu experien este probabil antrenat sevalueze cel puin calitile mai obiectiveale unei tehnologii sau ale unui demers.

    Apelul la comunitateO alt variant a apelului la autoritateeste apelul la comunitate, similar cu ape-lul la mase, dar cu dierena c aria sa esterestricionat la comunitatea dezvoltatori-lor i nu la populaie n general. Aceastaaduce o mbuntire a de cellalt argu-ment deoarece, chiar dac noul trend esteimperect, toat lumea tie c este multmai bine s lucrezi utiliznd tehnologiiavnd o comunitate puternic n spate.Dar a presupune c popularitatea unuitrend indic ntotdeauna superioritatea

    sa, este nerealist.

    Negarea subiectivitiiInginerilor le este team de subiecti-

    vitate, iar acest lucru ne ace ocazional sne expunem la a cdea victime eectuluide als consens. Adevrul este c ingineriasofware este, de apt, o activitate oartesocial. Programarea n limbaje de nivelnalt este, la urma urmei, o modalitate decomunicare nu numai cu computerele,dar i cu ali programatori. De aceea, nu

    ar trebui s fie o surpriz c concepte pre-cum lizibilitatea, care sunt n ond strnslegate de intuiia uman i care pot dieride la individ la individ, joac adesea un roldecisiv n hotrrea dac un tipar este sau

    Haos, meme i tipare de design

    software

    Codul tu nu este DRY/ SOLID/ lizibil/uor de ntreinut. API-ul nu esteRESul. Nu respeci principiul spune, nu ntreba. Codul tu nu este binedocumentat. Comentariile inlinemiros a probleme. Codul nu este eficient.Optimizarea prematur este sursa tuturor relelor. Nu ai nevoie de o bibliotec pen-tru aceast uncionalitate; ar trebui s evii sincronizarea tehnologic. Nu reinventaroata.

    programare

    Ariel [email protected]

    Python Developer@3 Pillar Global

  • 7/24/2019 Today Software Magazine N44/2016

    25/54

    25www.todaysoftmag.ro | nr. 44/februarie 2016

    TODAY SOFTWAREMAGAZINE

    nu mbriat de industrie, OOP i MVC fiind exemple destul deilustrative. Din pcate, dei se dezbate mult pe aceast tem, preapuin cercetare se ace de apt n legtur cu potrivirea anumitortipare de design la aspectele universale ale cunoaterii umane, cas nu mai vorbim de publicare.

    Dar ne este jen s recunoatem acest lucru. i atunci, ceacem? rim n negare. Evitm termeni precum personalitatei intuiie i preerm termeni pseudo-obiectivi precum lizi-bilitate i mentenan. ncepem chiar s credem c afirmaiide genul X este mai lizibil dect Y spun ceva obiectiv desprenatura realitii. Acest lucru nu nseamn c un consens n ueste niciodat real. Oricine este sntos la cap va fi de acord cnelegerea unui serviciu web complex, scris ntr-un singur fiiercu milioane de linii, este cel puin o provocare intelectual seri-oas chiar i pentru cel mai experimentat dezvoltator. Dar esteimportant s inem minte c i cele mai intuitive adevruri pentruo persoan pot uneori s par prostii altcuiva.

    tiina incertitudinii

    Deci aceste argumente nu sunt decisive, dar cu siguranexist altele mai bune. tiina ne poate spune ntotdeauna careeste cel mai bun lucru de cut, nu-i aa? Nu ntotdeauna

    MemeticaNu, nu este vorba despre memele de pe internet. Memetica

    este un cmp de cunoatere interesat de cum ideile se rspn-desc i se adapteaz drept rspuns la orele seleciei naturale.Fiinele umane sunt o specie social care a evoluat spre a nvaprin observaie i a copia comportamentul celorlali. Aceastane-a permis s acumulm cunotine ntr-o msur la care nicioalt specie nu a visat, dar de asemenea ne-a cut vulnerabili la

    parazii culturali: tradiii care nu servesc vreunui scop raional,dar care totui sunt copiate din generaie n generaie, uneori ra lua n calcul toate aspectele.

    Exemple de meme sunt melodii, idei, expresii clieu, mod lambrcminte, eluri de a ace oale sau de a construi arcade. La elcum genele se propag ele nsele n ondul genetic prin saltul de laun corp la altul via spermatozoizi sau ovule, tot aa i memele sepropag n ondul memelor prin saltul de la un creier la altul viaun proces care, n sensul larg, poate fi numit imitaie. RichardDawkins, Gena egoist

    Ceea ce vreau s subliniez este aptul c trendurile n codaresunt doar un alt exemplu de meme. Atunci cnd vine vorba deDarwinism, unii se gndesc poate la selecia natural i sunttentai s concluzioneze c memetica confirm c trendurile celemai populare sunt de apt cele mai bune. Acest lucru este incorectdin mai multe motive:

    A fi sntos nseamn a fi cel mai bun pentru nmulirei nu a fi cel mai bun pentru a ne ajuta s ne atingem scopurile.Uneori acestea coincid, alteori nu. Nicio specie nu e superioaralteia ntr-un sens absolut. A fi cel mai bun nseamn s fi cel maiadaptat la un anumit mediu, iar mediile sunt n continu schim-bare. n ecologia organismelor vii, aceste schimbri au loc peparcursul sutelor sau miilor de ani. n ecologia ideilor, acestea sepot ntmpla n ani sau chiar zile. Evenimente exterioare ntm-pltoare pot avea o influen decisiv n privina crei variante aunei meme devine dominant, indierent de abilitatea sa de a-iajuta gazda s i ating elurile. Ceea ce ne aduce la urmtorulsubiect.

    Teoria haosuluiFlitul de aripi al unui fluture n Rio de Janeiro, amplificat

    de curenii atmoserici, ar putea cauza o tornad n exas, dousptmni mai trziu. Edward Lorenz

    n sistemele oarte complexe, rezultatele sunt oarte sensibilela condiiile iniiale. Acest lucru este adevrat i pentru vreme ipentru biologie. Fiinele umane se mndresc adesea c sunt celemai evoluate animale de pe pmnt, dar nu am fi existat nici-odat dac un meteorit uria nu ar fi lovit pmntul i nu ar fiomort toi dinozaurii, permind mamierelor mici s ias dinascunziurile lor i s prospere ntr-un mediu cu totul nou. Dacevenimente mici pot ace practic imposibil de prevzut ce specii

    de animale vor disprea i care vor prospera, acelai lucru trebuies fie adevrat pentru memele de dezvoltare sofware.Unul dintre cele mai bune exemple de instrument care devine

    dominant din motive greite poate fi gsit n industria de dez-voltare web, prin popularitatea lui PHP. Limbajul este n zilelenoastre unul dintre cele mai urte limbaje potrivit acestui sondajHacker Poll i totui, este nc cel mai adoptat i tehnologia carese dezvolt cel mai rapid pe baza utilizrii n producie (81.7%potrivit w3techs). Acest lucru are sens, totui, dac lum n con-siderare bariera de intrare joas pentru noii dezvoltatori, c a

  • 7/24/2019 Today Software Magazine N44/2016

    26/54

    26 nr. 44/februarie 2016 | www.todaysoftmag.ro

    ost primul limbaj conceput pentru a servi paginilor web, c esteopen-source, c a ajuns s domine dot-com bubble, etc. .

    n contextul vremii i ecologiei, tiina haosului ncearc smearg mai departe de la a ncerca s stabileasc lanuri de cau-zalitate pentru a prezice stri viitoare ale unui sistem i n schimbs se concentreze pe gsirea tiparelor statistice n seturi mari dedate i s le multiplice prin modele matematice relativ simple. ndezvoltarea sofware, totui, este greu de imaginat cum s-ar putearealiza ceva analog.

    O inginerie experimentalIngineria n general nu este chiar o tiin, ci mai degrab

    ea se bazeaz pe o cunoatere tiinific bine stabilit pentru arezolva probleme specifice. Cunoaterea care susine ingineriasofware, totui, este mult mai puin stabil dect cea care susineingineria civil, de exemplu. Materialele disponibile, instru-mentele i cunoaterea tiiniic a mecanicii la scar umanse modific oarte ncet n comparaie cu ritmul alert al lumiiI. Acest sol ertil pentru idei noi ajunge s creeze un ond de

    meme mult prea complex i imprevizibil. otui, ca ingineri nusuntem pregtii pentru a nelege ceva din aceast harababur,aa c trebuie s nvm cum s gndim ca oameni de tiinexperimentali.Caracterul incontestabil nu este o virtute a uneiteorii, ci un viciu. Orice test autentic al unei teorii este o ncercarede a o rstlmci. Karl Popper

    ConcluziePrin aptul c am pus mai multe ntrebri dect am gsit

    rspunsuri, nu am intenionat s oer o reet pentru ctigareaoricrei dispute sau pentru luarea ntotdeauna a celei mai bunedecizii tehnice. Dar ceea ce sper este ca, aruncnd lumin asupra

    subiectului, s creez condiiile unor dezbateri mai constructive,n care prile s fie mai contiente de limitrile discursului lori de subiectivitatea experienei lor. Dispute care s nu dege-nereze n btlii ale ego-ului ntr-o lume a dezvoltrii sofwaredominat de brbai i care au drept rezultat decizii care nu suntntotdeauna asumate n mod arogant drept fiind cele mai bune.

    Avnd acestea n minte, ar trebui s ne simim ncurajai s fimcritici n legtur cu capriciile de design n timp ce nu suntemstnjenii s le adoptm n mod experimental sau de dragulconveniei comunitii. n final, n lipsa celor de mai sus, sperca mcar s fi oerit o perspectiv de ansamblu care s provoacegndirea n privina ctorva subiecte interesante care de obicei nusunt acoperite de comunitatea de dezvoltare sofware.

    Cel mai mare duman al cunoaterii nu este ignorana, ciiluzia cunoaterii. Stephen Hawking

    BibliografieDawkins, R. (1976). Te Selfish Gene. Oxord University Press, Oxord, UK

    Gleick, J. (1987). Chaos: Making a New Science. Viking Press, New York, US

    Rosenberg, A. (2000). Philosophy o Science: A Contemporary Introduction.

    Routledge, London, UK

    Haos, meme i tipare de design software

    programare

  • 7/24/2019 Today Software Magazine N44/2016

    27/54

    27www.todaysoftmag.ro | nr. 44/februarie, 2016

    programare

    Intenia mea iniial a ost de a scrie des-pre deep learning,nou cuvnt cu rezonann cercurile tehnice, dar mai apoi am deciss mi schimb puin plria de statistician imai degrab s m concentrez pe rolul MLdin perspectiva conductorilor de businessi produs.

    n acest sens, voi prezenta nevoile uneiaaceri n prezent un scenariu care poti ajustate cu abordri ale nvrii auto-matizate. Ca i al doilea obiectiv, vreauca acest articol s ie un argument saupunct de sprijin atunci cnd dorim srspundem la urmtoarele ntrebri: (1)Machine Learningpresupune multe date?(2) Machine Learning) presupune o mareputere a computerului?

    Atunci cnd vine vorba de ML, amluat n considerare ntotdeauna trei pri

    implicate principale, cu puncte de vedereoarte dierite, care pot fi implicate ntr-unproces de dezvoltare de aplicaii construc-tiv. Prima parte interesat este reprezentatde oamenii de tiin ai datelor, care sunt

    oarte interesai de puterea i acurateeainstrumentelor. A doua categorie includedezvoltatorul sotware, care este con-centrat pe perormana aplicaiei (vitez,scalabilitate, etc.). A treia i cea mai impor-tant parte implicat dintr-o perspectivpragmatic este omul de aaceri care

    dorete de apt o soluie pentru o anumitproblem real.

    Marii urnizori de sofware considerML o pia mare de bani i de aceea existmuli urnizori de instrumente i platormede machine learning, precum SAS i IBMpentru analitic, Oracle sau Amazon pen-tru soluii cloud, etc. Dintr-o perspectiva aacerii, acest instrument poate ajuta lasoluionarea problemelor, dar eu consi-der mai important domeniul speciic decunoatere n care este aplicat. Know-how

    ul n domeniu este un ingredient unda-mental n construirea de soluii pentruprobleme reale.

    Punerea ntrebrilor potrivite, adu-narea presupunerilor corecte i succesul

    Utilizarea Machine Learning n

    gestionarea veniturilor

    Aexistat mult publicitate exagerat n jurul unor concepte precum deep learning,ensembles(ansambluri) sau bagging(ambalare) n ultima perioad. Aceste subiectesunt n prezent unele dintre cele mai n vog n nvarea automatizat - Machine

    Learning(ML).

    Marius [email protected] Developer@Fortech

  • 7/24/2019 Today Software Magazine N44/2016

    28/54

    28 nr. 44/februarie 2016 | www.todaysoftmag.ro

    programareUtilizarea nvrii automatizate (Machine Learning) n gestionarea veniturilor

    msurtorilor este, n cele mai multe cazuri, rolul i centrulateniei prilor interesate ML care au o mentalitate business.Oamenilor de tiin ai datelor i dezvoltatorilor sofware le pasuneori de reclama de marketing, reerinele sau reputaia instru-mentelor sau abordrilor ML. Pe de alt parte, valoarea ML esteludat de persoanele de aaceri pe baza contribuiilor sale sau arealizrilor dovedite.

    Scenariu Utilizarea ML n gestionarea veniturilorn continuare, voi prezenta cum R poate i utilizat ntr-o

    problem ML ntr-un scenariu business curent: gestionareaveniturilor pentru hoteluri i optimizarea beneficiilor. R este unlimbaj de programare i un mediu open source.El sprijin calcu-lul statistic i nvarea automatizat. Pachetul Caret dezvoltat deMax Kuhn este avoritul meu, dar mai exist multe altele. R estearma aleas de mine, iar urmtoarele exemple vor ace reerirela biblioteci dierite. Unele similare pot fi gsite n Python, Javasau alte limbaje de programare, dar, rezumnd din nou, punereantrebrilor potrivite i gsirea datelor corecte atunci cnd imple-

    mentm o metodologie bun, sunt elemente mai importante npunerea n olosin a unei soluii ML bune.

    Machine Learningare cel puin trei aplicaii n managementulbeneficiilor n general i n strategiile de gestionare a veniturilorpentru hoteluri, n particular:

    1. Segmentarea pieii: Clienii dierii sunt dispui s pl-teasc preuri dierite pentru aceeai camer. Un manager dehotel tie c 20 de camere cu 400 euro/ zi aduc acelai venit cai 40 de camere cu 200 euro pe zi, dar scopul lor principal estemaximizarea profitului, ceea ce implic identificarea segmentelorde pia i descoperirea segmentelor int potrivite care pot fiservite: ex. 30 de camere cu 300 euro/zi. Obiectivul principal al

    hotelului atunci cnd utilizeaz segmentarea este s descrie i santicipeze valoarea creat pentru clieni n dierite segmente i si vizeze ntr-un mod eficient.

    n acest sens, tehnicile ML precum clasificatorii ajut mana-gerii de hoteluri s gseasc clieni cu adevrat rentabili. Aceticlieni sunt cei mai potrivii i cei mai aliniai cu propunerea devaloare a hotelului. Pachetul Caret de la R implementeaz i oerdocumentaie de sprijin pentru cele mai rafinate instrumente de

    clasificare Naive Bayes, Bagged AdaBoost, etc. 1

    2. Previziunea cererea de camere nu este sigur n viitor isingura modalitate de a prezice cu o anumit probabilitate esteaplicarea tehnicilor de previziune2. Multe hoteluri ncep s ia nconsiderare sisteme computerizate de management al veniturilor.Previziunile lor nu sunt perecte, dar sunt mai bune dect nimic.Aceste sisteme ajut la cunoaterea comportamentului clienilor,descrierea caracterului sezonal al cererii i prezicerea numruluide oaspei. Managerii de hotel pot, de asemenea, prezice costu-rile, identifica provocrile i se pot adapta cererii de pe pia, dinregiune sau sezon.

    Cererea nregistrat este aectat de decizia business i nureflect cererea real. n vocabularul de management al veni-turilor, cererea liber este cantitatea care ar putea fi vndutdac nu ar exista limitri precum cele de livrare a produciei saulimitarea impus de capacitate. Hotelurile ar trebui s identificecnd cererea liber este peste capacitatea hotelului. Aceasta este oparte important a strategiei de management al veniturilor unui

    hotel. n general, inormaiile vin din sistemul de rezervri com-puterizat, iar aceasta se numete cerere constrns. Pe de altparte, o situaie ideal, atunci cnd oerta este nelimitat, esteconsiderat cerere nelimitat/liber3. Instrumentele i statisticaML pot ajuta la descrierea cererii libere.

    RM2 este un pachet R dezvoltat de udor Bodea(InterContinental Hotels Group), care implementeaz unciiutilizate n gestionarea veniturilor (ex. uncia EM elibereazcererea de constrngeri, olosind algoritmul de Ateptare Maximizare)4. Pe de alt parte, orecast i zoo sunt doar doudintre cele mai populare pachete R care implementeaz previzi-unea i seriile temporale.

    3. Poziionarea preurilor i politica de preuri: Obiectivulcheie al unei strategii de stabilire a preurilor este s anticipezi

    1 Applied Predictive Modeling, ediia 2013. New York: Springer, 2013.

    2 Essentials o Marketing Research, ediia a 3-a. New York, NY: McGraw-Hill Education, 2012.

    3 What is unconstrained demand? definition and meaning, BusinessDictionary.com. [Online].

    Disponibil: http://www.businessdictionary.com/definition/unconstrained-demand.html.

    4 . B. & D. K. & M. Ferguson, RM2: Revenue Management and Pricing Package. 2008.

    Young spiritMature organizationA shared vision

    Join our journey!

    www.fortech.ro

  • 7/24/2019 Today Software Magazine N44/2016

    29/54

    29www.todaysoftmag.ro | nr. 44/februarie 2016

    TODAY SOFTWAREMAGAZINE

    valoarea creat pentru clieni i apoi s stabileti preuri specificepentru a capta acea valoare. Hotelurile pot adopta dierite politicide pre pentru a ntri percepia de valoare pentru clieni.

    actica implic crearea unor instrumente de fixare a preuluicare se schimb n mod dinamic pentru a reaciona la modific-rile cererii i pentru a aduce ctig n mod continuu. Optimizareapreului implic reglarea fin a unor variabile multiple precumelasticitatea preului i preul de inventar pentru a maximiza pro-fitul i nu neaprat veniturile 5.Machine Learningimplic gsireaunor tipare n date i utilizarea acelor tipare pentru a prezice vii-torul. nvarea tiparului cererii i stabilirii preurilor nseamnidentificarea i recunoaterea acelor tipare atunci cnd le vedemdin nou. Optimizarea are un rol oarte important n acest proces.n centrul su, managementul beneficiilor implic un controlstrategic al inventarului, pentru a-l vinde clienilor potrivii lamomentul potrivit i pentru preul corect. n limbaj matematic,gestiunea inventarului poate fi ncadrat ntr-o problem de opti-mizare. Mecanicul din spatele nvrii automatizate pentrugestiunea veniturilor implic civa pai undamentali: n sp-

    tmnile cu cerere mare, limitai rata de discount i rezervrilede grup, pentru a crete beneficiul general (rata medie) i veni-tul. n sptmnile cu cerere sczut, vindei camerele goale laorice pre sczut, pentru a crete actorii de randament i ctig.Maximizarea venitului presupune un echilibru ntre actoriibeneficiu i randament6.

    n acest moment nu voi meniona nici un pachet R, chiardac R are multe librrii de optimizare. Acum vreau doar s sub-liniez c nu exist cutii vrjitoreti care s ne poat ajuta s nemeteugim cel mai eficient instrument de stabilire a preurilor.Doar practica, rbdarea i munca din greu s-ar putea s neajute

    ML este un proces iterativ care este rulat pn cnd se obinemodelul care ace previziuni bune. Modelul de venit al hoteluluis-ar putea s implice adesea reglaje fine sau reconstrucie atuncicnd descrete puterea sa predictiv sau acurateea. Gestionarea

    5 How to Price: A Guide to Pricing echniques and Yield Management. Cambridge ; New York:

    Cambridge University Press, 2008.

    6 Yield Management: Strategies or the Service Industries, ediia a 2-a. Cengage Learning

    EMEA, 2001.

    veniturilor nu este un subiect recent. A ost i este o practic busi-ness obinuit n ultimii cincisprezece ani. ML este utilizat, pelng hoteluri, n multe alte industrii, precum cea a companiiloraeriene, nchirierilor sau n inventarul reclamelor online.

    ntorcndu-ne la ntrebrile de la nceputul articolului, arspunde aa:

    1. Machine learning(nvarea automatizat) nu necesitntotdeauna multe date pentru a unciona. Volumul de date alhotelului nu este prea mare. Bineneles, sistemele de rezervareonline i motoarele de recomandare pot urniza date suplimen-tare, dar tehnologiile din prezent pot produce rezultate i singure.

    2. Machine learning (nvarea automatizat) necesit oputere mare a computerului, ceea ce nu este puin n zilele noas-tre. n prezent, o aplicaie ML poate i uor pus n olosinca un micro-serviciu (ex. un container Docker i servit dreptAPI). Ceea ce am neles recent este c este nevoie mai des demetodologii inovative dect de tehnologii revoluionare pentru asoluiona problemele curente. O ntrebare bun i o metodologie

    robust i transparent sunt ingredientele eseniale.

  • 7/24/2019 Today Software Magazine N44/2016

    30/54

    30 nr. 44/2016, www.todaysoftmag.ro

    TFS ca platform de colaborare (II)

    caracteristici necesit o licen de tipStakeholder, n timp ce altele necesit olicen pltit.

    Web PortalPortalul web este o zon de lucru ver-

    satil, care se adapteaz la fiecare utilizator

    n uncie de hub-ul\tab-ul selectat deacesta (home, code, work, build, test), nive-lul de acces de care dispune (stakeholder,basic, advanced) i de opiunile configu-rate pentru proiect.

    Fig2. VisualStudioOnline Kanban board

    Ca dezvoltator s-ar olosi mai multVisual Studio n activitatea de dezvoltare,dar acesta se poate baza i pe hub-ul Codedin portalul web pentru a vizualiza, des-crca i compara fiierele dinsource code,ct i pentru a vizualiza changeset-urile ishelvesets-urile i pentru a lucra cu repo-

    zitoriile GI.Non-dezvoltatorii ar lucra n prin-

    cipal cu hub-ul Work i uncionalitileaerente acestuia: crearea de noi elementede lucru, olosirea de FS queriespentru agsi mai usor work item-urile cutate, cre-area de backlog-uri, urmrirea progresuluiechipei olosind kanban board-ul, crea-rea de elemente avorite ce pot fi postatepe hub-ul Home i ce vor i disponibilepentru toat echipa (queries, burndownreports, charts, diagrams etc).

    KanbanCele mai multe dintre lucrrile eec-

    tuate n cadrul unui proiect trebuie s fieorganizate ntr-un mod coerent.

    A dori s subliniez n continuare urmtoarele aspecte legate de FS, decare att programatorii ct i non-dezvoltatorii pot beneficia: web portaliKanbanboard, management de proiect i version control. Unele