Kontinuerlig kvalitetskontroll Hvordan komme helt i ml About
Kontinuerlig kvalitetskontroll
Hvordan komme helt i mål
About the speaker Johannes Brodwall Chief Scientist, Steria Arrangerer Oslo XP meetup Arrangerer Smidig 2008 Blog: http: //johannesbrodwall. com/ . meetup. com/13 © Steria
Hva er poenget med kontinuerlig integrasjon? © Steria
Invester i dag for å unngå defekter Invester mindre for å sette i produksjon Lever når som helst © Steria
Hva er kontinuerlig integrasjon? © Steria
© Steria
© Steria
© Steria
Enhetstester Funksjonelle tester Systemet kjøres i et testrammeverk © Steria
Resultatet: © Steria
Hver innsjekking blir testet © Steria
© Steria
Spørsmål: © Steria
Vil dette finne alle defektene i systemet? © Steria
Nei! © Steria
Kun de som blir kjørt i testrammerverket Kun de vi tenkte på Og så er det ytelsestesting… © Steria
Så: Hva må bør vi gjøre? © Steria
(Hint: CI handler om å investere nå i stedet for senere) © Steria
Invester mer nå! © Steria
Min løsning: Automatisert systemtest © Steria
(Egentlig: Automatisert regresjonstest på integrasjon- og systemtestnivå) © Steria
Vi ønsker: © Steria
Realistisk konfigurasjon Realistisk belastning Realistisk variasjon © Steria
© Steria
Hvordan automatisere systemtest 1. Automatisk bygg (og enhetstest) 2. Rens opp gammel data 3. Last ned siste versjon 4. Hent produksjonsdata 5. Spill av produksjonsdata 6. Sjekk resultatet 7. Send resultat via email © Steria
”Støtte du på problemer? ” © Steria
Nei © Steria
Nei, egentlig ikke Bare noen utfordinger! © Steria
Hva var vrient? 1. Installasjon 2. Integrasjon 3. Simulering 4. Verifisering © Steria
Installasjon © Steria
Automatiser installasjon 1. Scriptet, reproduserbar install 2. Forenkling (Erstattet Web. Sphere med Jetty) (Så sammen komponenter) 3. Reduser integrasjonsbehovet 4. Identiske noder © Steria
(Sidevirkninger) Forenkler installasjonsrutinene Forenkler designet Forenkler overvåking © Steria
Integrasjon © Steria
Integrasjon Hva med avhengigheter? © Steria
Forenkle integrasjon 1. Ikke integrer, gjør det sjæl 2. Simulerer det andre systemet 1. Simulerte svar 2. Ta vare på data(data centric) 3. Integrer med testversjon © Steria
Simulering © Steria
Simulering Utsett systemet for realistisk last © Steria
Simulering Svært systemavhengig © Steria
Simuler produksjon I vårt tilfelle: Filer Crawler (Dyrkorn & Watne) Lastgenerator (D&W) Ta opp og spill av HTTP requester © Steria
Verifisering © Steria
Verifisering Gikk det bra? © Steria
Verifisere resultatet Sammenlign med produksjon Se på logger Se på dataintegritet © Steria
Avstemming 1. Lagre testresultatet i database 2. Lagre produksjonsresultat i basen 3. Full outer join på naturlige nøkler 4. Finn manglende eller avvikende 5. Filtrer ut kjente avvik © Steria
© Steria
Dato © Steria
Antall filer © Steria
Okay © Steria
Mangler © Steria
Ekstra © Steria
Avviker Extra © Steria
Kjente Extra unntak Extra © Steria
Konsistenssjekk SQL uttrykk som plukker ut rare data © Steria
Logging Pass på loggingen Feillogger må være tomme når det ikke er feil © Steria
(Fint for drift) © Steria
Resultat: © Steria
Hver bygg blir systemtestet © Steria
© Steria
Vil dette avdekke alle feil? © Steria
Neida © Steria
Forenklet integrasjon Kjører ikke lenge nok Er det driftbart? © Steria
Hva nå? Automatisert preproduksjon © Steria
Hva nå? Automatisert preproduksjon © Steria
Preproduksjon Kjører ”neste” versjon Kjører i tandem med prod En uke: Forfremmes til prod Overvåkes 9: 00 -16: 00 © Steria
© Steria
© Steria
Først når du tenker som en drifter, kan du mestre systemet © Steria
Resultat: © Steria
Hver leveranse herdes © Steria
© Steria
Vil dette avdekke alle feil? © Steria
Svaret er fortsatt nei © Steria
Er kravene riktig? Gleder løsningen brukerne? Endrer brukeren oppførsel? Feide vi noe under teppet? © Steria
Målet: Lever etter hver iterasjon © Steria
© Steria
Den triste sannhet: Pilotproduksjon etter hver iterasjon © Steria
Pilot production © Steria
Hvorfor levere etter hver iterasjon? © Steria
Utnytt muligheter Finn flere feil Prøv den enkleste løsningen først Finn nye krav raskere © Steria
Levér verdi til brukerne! © Steria
Resultat: © Steria
s g i l l i b l i e f inn F g i l u tm © Steria
Alltid klar til leveranse © Steria
Invester mer nå, mindre senere © Steria
Målet: Lever etter hver iterasjon © Steria
(Og da kan du kaste bugtrackeren) © Steria
Takk for oppmerksomheten! © Steria
- Slides: 87