or*dtrosnilt,'+'.q':'

Like dokumenter
Test i Praksis. NTNU Februar Copyright 2014 Accenture All Rights Reserved.

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS

Memoz brukerveiledning

en hjemmeside Lesson Introduksjon Du kjenner en del HTML tagger, så nå er det på tide å lage din første hjemmeside! La oss begynne med en gang.

JigZaw. Teststategi utviklet av. Erik Drolshammer Bård Lind. Verifiser Forventet Funksjonalitet

6 Steg du kan ta når hodet ditt er fullt eller renner over av tanker! - Få ting gjort! - Hvordan tømme hodet og rydde opp

Bursdag i Antarktis Nybegynner Scratch PDF

Vil du at jeg personlig skal hjelpe deg få en listemaskin på lufta, som får kundene til å komme i horder?

Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder!

Løsningsforslag til Case. (Analysen)

Enarmet banditt Nybegynner Scratch Lærerveiledning

:10 QuestBack eksport - Sosiale medier

Hvor i All Verden? Del 3 Erfaren Scratch PDF

infotorg Enkel brukermanual

Vibeke Molandsveen 21. november Erfaringer med bruk av KIKORA

Evalueringsrapport Kurs for ALLE nye studenter ved Høgskolen i Ålesund Gruppe II, Ålesund 2013

Canon Self-Service. Komme i gang-veiledning. En veiledning som hjelper deg med å registrere og begynne å bruke Canons Self-Service-portal på nettet

Hva, Hvorfor og litt om Hvordan

JigZaw - Verktøy. Teststategi utviklet av. Erik Drolshammer Bård Lind. Verifiser Forventet Funksjonalitet

INF Logikk og analysemetoder Forslag til løsning på oppgave fra læreboken

Lærebok. Opplæring i CuraGuard. CuraGuard Opplæringsbok, - utviklet av SeniorSaken -

I tidligere har jeg skrevet om hvor stor betydning undervisning om ekteskap for shanfolket er. Og jeg har igjen sett hvor viktig dette er.

innhold Kapittel 1 Vorspiel Kapittel 2 Teorier som kan inspirere Til lærende lederskap... 27

BRUKERVEILEDNING. AFI_GoingGREEN

Sørum i Kunnskapsskyen

Forskningsmetoder i informatikk

GJENNOMGANG UKESOPPGAVER 9 TESTING

En eksplosjon av følelser Del 2 Av Ole Johannes Ferkingstad

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

En lærer uten lærebok. Odin Hetland Nøsen Mobil: Epost: Blogg: Twitter: myonlyeye

1. INT. FOTOSTUDIO - DAG Kameraet klikker. Anna tar portrettbilder av Dan.

Slik tar du nettbanken i bruk

gjør mer og lær mer på kortere tid #wallinmedia - mariuswallin.com

DVD-Kopiering v. 1.1

Takk for at du har valgt å søke om å bli med på Tilbake til Livet, et kurs i The Phil Parker Lightning Process.

Grunnleggende redigering Selection Tool Markere objekter med Selection Tool.

Hvor i All Verden? Del 2 Erfaren Scratch PDF

Arnold P. Goldstein 1988,1999 Habiliteringstjenesten i Vestfold: Autisme-og atferdsseksjon Glenne Senter

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

REFLEKSJONSNOTAT FOR WEBPERIODEN

Erfaringer som pen- tester. Asbjørn Thorsen

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

You can do it Kristine Skjæveland

Transkribering av intervju med respondent S3:

Vanlige spørsmål. GallupPanelet. TNS Panel-app. TNS Juni 2015 v.1.3

RYDDE MANUAL. eva isachsen rom for sjelen

! Slik består du den muntlige Bergenstesten!

Øystein Wiik. Best når det virkelig gjelder

FAQ community. Ofte stilte spørsmål. Hvordan lager jeg fotoalbum? Gå inn på bilder i menyen øverst på siden. Klikk på nytt bildegalleri knappen.

STOP KISS av Diana Son Scene for en mann og to kvinner

Elektronisk resept. Til deg som trenger resept. Trygt og enkelt

Smidig innhold Hvordan smidige metoder hjelper oss å lage kvalitetsinnhold. Ove Dalen

Hangman. Level. Introduksjon

Kvinne 30, Berit eksempler på globale skårer

Bygge et hus. Steg 1: Vegger. Sjekkliste. Introduksjon

Spørreundersøkelse om informasjon fra Arkitektbedriftene

EIGENGRAU av Penelope Skinner

Prosjektledelse - fra innsiden

Enkle generiske klasser i Java

Brev til en psykopat

Hvordan å lage og publisere ditt personlige visittkort

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

Smart bruk av Outlook for å nå dine personlige mål

God sommer! Ha en fantastisk sommer. Stay stylish! Camilla

Hva er Smartbok? Hva er Smartbok- PLUSS? Hvordan får jeg tilgang til Smartboka? Hvor kan jeg bruke Smartboka? Kan jeg miste min Smartbok?

Søknadsskjema Kurs: Tilbake til livet Instruktør: Vibeke C. Hammer

EMOSJONELL KOMPETANSE OG SELVLEDELSE

1. Profiler og variabler

Maritech Lønn versjon (Endringer etter versjon )

Øving 0 - Xcode TDT4102

Innsending av timelister. Timeliste. Innsending

Kristen homofil Av Ole Johannes Ferkingstad

SELVHJELP. Selvhjelp er for alle uansett rolle eller situasjon...

Sprettball Erfaren ComputerCraft PDF

Utdanningsvalg i praksis

Meldal kommune i sosiale medier. Olav Dombu eforum

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp

NÅR NOEN DU KJENNER HAR NEDSATT HØRSEL

Åpen BIM 2010 ArchiCAD drofus kokebok

Det er frivillig å delta i spørreundersøkelsen, ingen skal vite hvem som svarer hva, og derfor skal du ikke skrive navnet ditt på skjemaet.

!!!!!!!!!!!! !!!!!!!!!!! WP-WATCHER WORDPRESS SIKKERHET

Innledning. Det geniale med GEOREG er at systemet er fullstendig automatisert,

Begge metodene har som utgangspunkt at du har lagt inn et ortofoto av feltet eller en skannet tegning i Intrasisprosjektet eller ArcMap-fila.

Gjennom lydmuren. Jeg har alltid folt meg litt i min egen lille boble. Om a leve med nedsatt horsel. Forsiden

Testdekning og automatisering - Er 100% testdekning et mål?

Vi ble kjent med Power Plate gjennom Christine Løvli, som driver Pilatespilotene. Christine var vår instruktør i Pilates på kontoret.

Til et barn. - Du er en jente som kan virke stille, men jeg tror at det er et fyrverkeri der inne

1. Programmering: Hva og hvorfor? Scratch fra scratch Enkel programmering for nybegynnere

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

Tilhører: HAUGALANDET SKOLE ARBEIDSLIV. Utdanningsvalg i praksis. Lokalt arbeidshefte i faget utdanningsvalg 10.

Hvordan skal man skrive et godt leserbrev?

NIVÅ FORTREFFELIG KOMPETENT UNDERVEIS PÅ BEGYNNER- STADIET KRITERIER. Bruker til sammen minst 4 ulike uttrykk for å hevde egne meninger

Testrapport. Studentevalueringssystem

1. COACHMODELL: GROW PERSONLIG VERDIANALYSE EGENTEST FOR MENTALE MODELLER. (Noen filtre som vi til daglig benytter)...

Veiledning i administrering av egne loge-/leirsider i portalen

The agency for brain development

Transkript:

%,u lbnvaston.*.'. or*dtrosnilt,'+'.q':' JavaBin 5. mai Vidar Alvestad - Skatteetaten

Inspirert av: Noen eksempler er hentet fra boken. Jeg tror Mr. Feathers tilgir meg dersom du kjøper boken ;-)

Hva er lecacy code? Kode uten automatiserte enhetstester = dårlig kode Det spiller ingen rolle hvor godt koden er skrevet Uten testene aner vi ikke om koden blir dårligere eller bedre når vi endrer den Med tester kan vi endre på koden med trygghet

Vi må kunne endre koden med større trygghet! Vi må sammen lage automatiserte enhetstester som gir oss øyeblikkelig tilbakemelding. På denne måten skal vi sammen endre systemet til det bedre!

Døhh! Det er enklere sagt enn gjort!

Beholde egenskaper Å lage programvare handler mest om å beholde systemets egenskaper... Eksisterende egenskaper Nye egenskaper

Edit & Pray Bruk lang tid med å studere koden. Bruk hjernen som en run-time Når du er sikker (ganske sikker) på at du forstår koden: Gjør endringene. Men sørg for at disse er minimale. Du vil vel ikke ødelegge noe? Start systemet og trykk rundt omkring for å se om noe feiler Håp og be om at det gikk bra...

Alternativ: Cover & Modify Identifiser de stedene i koden du ønsker å endre Finn steder i koden som må testes Bryt opp avhengigheter Skriv testene Gjør endringene og sørg for at design og kode blir bedre (refactor)

Men husk: Å skrive enhetstester er ikke alt Å forstå forretningsområdet/domenet er minst like viktig (men ikke fokus for denne presentasjonen)

Sensing and separation

Late som objekter Mock Objects Fake Objects

Verktøy CI (Hudson min favoritt) xunit / TestNG Refactoring tools (Eclipse god støtte) Fit/Fitnesse Canoo, Selenium, Watir, Cucumber m.m http://www.opensourcetesting.org

Jeg forstår ikke koden... Whiteboard med domenemodell Kodegjennomgang i team: Ta utskrift av koden og heng den opp Marker feks ansvarsområder og kode som kan flyttes Effekt skisser Scratch refactoring Slett kode (og unødvendige kommentarer)!

Kode- og designforståelse

Det tar en evighet å endre koden! I et godt vedlikeholdt system: Tar KANSKJE tid å finne ut hvor endringen bør legges inn Endringen er ENKEL å gjennomføre I et dårlig vedlikeholdt system: Tar ALLTID tid å finne ut hvor endringen bør legges inn Endringen er VANSKELIG å gjennomføre

Lag time

Stresset! Må bare fikse det kjapt Husk: Koden er ditt hus. Det er du som må leve med det!

Legger til funksjonalitet Vi skal sørge for at ingen av de nye entries allerede er med i transactionbundle

En annen mulighet... Ønsketenkningsprinsippet: Jeg kunne ønske det var en metode her som het uniqueentries og som gjorde akkurat det jeg hadde behov for...

TDD Lag så metoden (helst ved hjelp av TDD, det skader heller ikke å parprogrammere...)

Sprout method Sprout class Det foregående eksempelet er det som kalles for sprout method (sprout = spire) Man lar en metode eller klasse spire på siden av eksisterende kode Blander ikke eksisterende og ny kode Enkel teknikk, men lar seg bare gjennomføre dersom funksjonaliteten skal enkelt utvides

Temporal coupling Gruppere ting sammen bare fordi de tilfeldigvis hender på samme tid skaper unødvendige koplinger Det er forbausende hvor ofte dette gjøres spesielt i en forvaltningssituasjon

Vi skal legge til logge funksjonalitet. Decorator Pattern

Store klasser

The Single- Responsibility Principle Every class should have a single responsibility It should have a single purpose in the system There should be only one reason to change it

Seeing responsibilities Group methods Look at hidden methods Look for decisions that can change Look for internal relationships Look for the primary responsibility

Noen tips til slutt Kona mi lager gele nå Programvare = gele? Tester = formen Uten tester blir geleen ustabil Men godt er det...

Programming is the art of doing one thing at the time Micheal C. Feathers

Ta barnesteg og sjekk inn tidlig og ofte

Gladprogrammering!

http://manifesto.softwarecraftsmanship.org/

Takk for meg! epost: vidar.alvestadsnabelkrøllskatteetaten.no vidar.alvestadkrøllalfagmail.com twitter: vidar_alvestad linkedin

Hvilke tester skal jeg skrive? I utgangspunktet skriver vi ikke tester for å finne bugs i koden Vi skriver tester for å bevare egenskapene i systemet