Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

PUG Norway – 12. nov 09Thomas Skjørten / Jan Kolstad.

Liknende presentasjoner


Presentasjon om: "PUG Norway – 12. nov 09Thomas Skjørten / Jan Kolstad."— Utskrift av presentasjonen:

1 PUG Norway – 12. nov 09Thomas Skjørten / Jan Kolstad

2 Agenda  Kort reprise fra PUG Årsmøte 2009  Hva er automatisk bygging (Build)?  Automatisk testing (unittesting) i OpenEdge

3 Det komplette utviklingsmiljø  Moderne verktøyer for å styre alle deler av utviklingsprosessen.  Utviklingsverktøy  Kildekodekontroll  Oppgavehåndtering  Dokumentasjon  Kvalitetessikring  Build  På tvers av teknologi  Støtter alle roller i utviklingen

4 Verktøyer i bruk  OE Architect (Eclipse)  Teamprise Client Suite  Microsoft Visual Studio  Microsoft Team Foundation Server  Microsoft Office

5

6 Automatisk bygging  Egen prosess for bygging av programvare  Kompilering av kildekode  Automatisk testing for å sikre kvalitet  Generering basert på ferdigkompilert kildekode  ProxyGen  Pakking av programvare (.pl)  Installasjonspakker  Kjøres alltid basert på innsjekket kildekode  Kjøres basert på events (tidspunkt, innsjekking) eller manuelt

7 Automatisk bygging  Svært nyttig ved utvikling i team (>1 person)  Nødvendig ved smidig utvikling  Kode bygges uavhengig av maskinoppsett  Rask tilbakemelding til utviklere om deres endringer er i konflikt med andres  Sikrer kvaliteten i alle endringer  Forenkler deployment / release

8

9 Automatisk bygging - visualisering

10 Unittesting  Kompilering sikrer at koden har rett syntaks  Unittesting sikrer at koden gjør det den skal  Sikrer kvaliteten i applikasjonen  Hindrer at endringer får uønskede konsekvenser  Sikkerhetsnett for endringer i hele applikasjonens levetid

11 Hva er en unittest?  Kode som tester kode  En prosedyre / metode som kaller en eller flere andre prosedyrer / funksjoner med forskjellige parametere for å sjekke at resultatet er som forventet. function GetUkeNrForDato returns int private (dato as date): def var oUke as int no-undo. if dato <> ? then assign oUke = (((dato - date(1,1,year(dato)) + 1) + ((weekday(date(1,1,year(dato))) + 5) mod 7) ) - ((weekday(dato) + 5) mod 7 + 1) - 1 ) / oUke = if weekday(date(1, 3, year(dato))) <= 3 then (if oUke = 1 then 53 else oUke - 1) else oUke. return oUke. end function. /* Tester funksjonen GetUkenrForDato */ PROCEDURE testGetUkenrForDato: def var ukenr as int no-undo. ukenr = GetUkeNrForDato(date(11,1,2009)). RUN assertEqualsInt(ukenr, 44). ukenr = GetUkeNrForDato(date(1,1,2009)). RUN assertEqualsInt(ukenr, 1). ukenr = GetUkeNrForDato(date(12,31,2009)). RUN assertEqualsInt(ukenr, 53). ukenr = GetUkeNrForDato(date(12,24,2009)). RUN assertEqualsInt(ukenr, 52). END.

12 Regler for en unittest  Skal teste så konkrete ting som mulig  Må være rask  Være helt uavhengig av andre tester  Tester skal kunne kjøres i en hvilken som helst rekkefølge  Skal ikke være avhengig av eksterne ressurser  Database  Filsystem

13 Utfordringer  Testbarhet er tett knyttet opp mot arkitektur  Ikke tilrettelagt arkitektur kan gjøre unittesting umulig  Avgrensning av testene  Uavhengighet fra eksterne ressurser  De fleste systemer er veldig datadrevne (CRUD), hvordan teste dette uten å ha tilknytning til databasen?

14 Unittesting i Progress  Både prosedyrisk og objektorientert kode kan testes  OO er ofte enklere fordi arkitekturen og ansvarsfordelingen er mer definert  Krever et rammeverk for kjøring av testene  ProUnit (Open source)  Prosedyrisk  Kjøres stand-alone  OEUnit (Open source)  Objektorientert  Integreres i Eclipse  Punit (Open source)

15

16 Oppsummert  Med Eclipse, TFS og Teamprise har vi nå et komplett moderne miljø for Progressutvikling  Automatisk bygging svært nyttig ved arbeid i team  Unittesting sikrer kvaliteten i det vi lager både under utvikling og i framtiden

17 Linker  Microsoft TFS  us/teamsystem/default.aspx us/teamsystem/default.aspx  Teamprise   ProUnit   OEUnit   Punit 

18


Laste ned ppt "PUG Norway – 12. nov 09Thomas Skjørten / Jan Kolstad."

Liknende presentasjoner


Annonser fra Google