Software Testing #IRL tor.kjetil.moseng@kantega.no, ingunn.skogstad.oksas@kantega.no hilde.nielsen@kantega.no



Like dokumenter
Ytelsestesting i et nøtteskall

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Forelesning IMT mars 2011

Nyttestyring og viktigheten av den gode kunde

Nyttestyring og viktigheten av den gode kunde. Magne Jørgensen

Stein Grimstad. Konsulent i Scienta AS. Prosjekt hos Skatteetaten. Forsker hos Simula (deltid) 3/7/18

En praktisk anvendelse av ITIL rammeverket

Slope-Intercept Formula

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

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

Enkel og effektiv brukertesting. Ida Aalen LOAD september 2017

Eksamen i fag TDT4140 Systemutvikling. Tirsdag 27. mai 2004 kl

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner kvitteringsliste L00202 levert i CSV fil

Interaksjonsdesign Utvikling for og med brukere

Brukerkrav og use case diagrammer og -tekst 19. januar Agenda. Brukerkrav og use case. Diagrammer Tekst.

Software Requirements and Design (SRD) 1 Generelt om dokumenter

Den europeiske byggenæringen blir digital. hva skjer i Europa? Steen Sunesen Oslo,

Bostøttesamling

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS

LEVER OFTERE TEST SMARTERE

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

Trust in the Personal Data Economy. Nina Chung Mathiesen Digital Consulting

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Hvordan evaluerer man kvaliteten på et IT-system?

PATIENCE TÅLMODIGHET. Is the ability to wait for something. Det trenger vi når vi må vente på noe

Why Desperate Houswives make Excellent Test Managers Testprosjektet som suksessfaktor i et hvert prosjekt

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner for KID bytte kvitteringsliste L02625 levert i CSV format

Capturing the value of new technology How technology Qualification supports innovation

Smidige metoder i praksis Høgskolen i Oslo Kristin Meyer Kristiansen Objectnet AS

5 grunner til at Blockchain teknologien kan revolusjonere finansnæringen

Fellesprosjekt: gruppe 214

... Annita Fjuk DESIGN THINKING

Den som gjør godt, er av Gud (Multilingual Edition)

Hvordan kan man holde kontakten med venner eller familie? Kan du legge til noen ideer på listen? Sende tekstmeldinger. Sende (bursdags-)kort

Kundetilfredshetsundersøkelse FHI/SMAP

Databases 1. Extended Relational Algebra

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

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

Automatisert Robusthetstesting. Erik Arisholm Testify AS

Kost-nytte innen sikkerhet: Hva er prisen, hva er verdien, og hvordan prioritere blant tiltak?

Administrasjon av postnummersystemet i Norge Post code administration in Norway. Frode Wold, Norway Post Nordic Address Forum, Iceland 5-6.

Neural Network. Sensors Sorter

Erfaringer fra en Prosjektleder som fikk «overflow»

F.I.F.F.I.G. Fleksibelt og Innovativt system For FakultetsInformasjon og andre Greier

- En essensiell katalysator i næringsklyngene? Forskningsrådets miniseminar 12. april Mer bioteknologi i næringslivet hvordan?

Risikofokus - også på de områdene du er ekspert

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Bruk av HP Quality Center med smidige utviklingsmetoder. HP Sofware Norge

Erfaringer med smidige metoder på store prosjekter i Telenor. Kristoffer Kvam, Strategic Project Manager, Portfolio & Projects, Telenor Norway

DecisionMaker Frequent error codes (valid from version 7.x and up)

Human Factors relevant ved subsea operasjoner?

Tyrannosaurus Test Adapt or Die!

// Translation // KLART SVAR «Free-Range Employees»

STILLAS - STANDARD FORSLAG FRA SEF TIL NY STILLAS - STANDARD

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Øystein Haugen, Professor, Computer Science MASTER THESES Professor Øystein Haugen, room D

Exercise 1: Phase Splitter DC Operation

Dynamic Programming Longest Common Subsequence. Class 27

A tool for collaborating to success in a development project Experience with Visual Studio 2010 and Test Manager at Lånekasse

Reliable RT Spotify

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

En historie om Visma Reporting. Arkitektur og. Vi har et problem

Little Mountain Housing

GEOV219. Hvilket semester er du på? Hva er ditt kjønn? Er du...? Er du...? - Annet postbachelor phd

Hvordan komme i gang med ArchiMate? Det første modelleringsspråket som gjør TOGAF Praktisk

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

Kravhåndtering. INF1050: Gjennomgang, uke 03

Prosjektet Digital kontaktinformasjon og fullmakter for virksomheter Digital contact information and mandates for entities

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import

EN Skriving for kommunikasjon og tenkning

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Evaluering av digitalisering i offentlig sektor Hvor gode er vi? Evaluerer vi det som er viktig? Trenger vi mer eller annen type evaluering?

Undervisning i Smidige metoder ved Universitetet i Oslo

AVSLUTTENDE EKSAMEN I/FINAL EXAM. TDT4237 Programvaresikkerhet/Software Security. Mandag/Monday Kl

ESTIMERING I SMIDIGE PROSJEKTER

Programmering. Carsten Wulff

7 years as museum director at the Röhsska Museum, Göteborg. since February 2012 the museum director at the Sigtuna Museum, Sthlm

Public roadmap for information management, governance and exchange SINTEF

Fra tradisjonell komponentbasert overvåking 5l tjenestebasert overvåking. April 2017

From Policy to personal Quality

Kjønnsperspektiv I MNT utdanning og forskning

Vedlegg 2 Dokumentasjon fra TVM leverandør

Smart High-Side Power Switch BTS730

Teststrategi! Teststrategi! Kom og kjøp!

Tuberkulosescreening fra et brukerperspektiv. Frokostmøte LHLI,

Petroleumsundersøkelsen om skiftarbeid, søvn og helse (PUSSH)

Emnedesign for læring: Et systemperspektiv

EVRY Maskering. Agenda 9/26/2013. Testdagen ODIN 25. September EVRY Maskering. Petter Størseth og Kristian Berg

Tom Røise 9. Februar 2010

Brukertesting i et nøtteskall

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

Guide til effektiv dialog med forretningskollegaer

GoOpen 2008 Oslo 8. april. Jernbaneverket Fri programvare i driftskritiske systemer. Ole Morten Killi ole.morten.killi@bouvet.

FIRST LEGO League. Härnösand 2012

Hvordan 3 konsulenter tester et konserndatavarehus

TB-615 / TB-617 Wireless slim keyboard. EN User guide SE Användarhandledning FI Käyttöohje DK Brugervejledning NO Bruksanvisning

UNIVERSITETET I OSLO

Konfidensiell - Navn på presentasjon.ppt

Transkript:

Software Testing #IRL tor.kjetil.moseng@kantega.no, ingunn.skogstad.oksas@kantega.no hilde.nielsen@kantega.no

Litt om oss

Agenda Software testing: Hvorfor?.. og de 7 magiske prinsipper Smidig testing - testing i team Ytelsestesting: Betyr ingen feil at systemet er OK?

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

How Other professions in Computer Science sees test Project Lead Developer Customer Architect IT Ops

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Exhaustive testing is impossible

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Early Testing - Cost of Defect

Early Testing: V-Model Requirements Specifica.on Architecture Design Acceptance Test System Test Integra.on Test Unit Test Code

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Testing shows the presence of bugs, but can not show that there are no defects 1986: Programming Pearls, binarysearch() bevist og testet i et kapittel 1997: Implementert i Sun java.util.arrays.binarysearch() 2006: Feil funnet og fikset i Javabiblioteket

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Defect Clustering hdp://www.slideshare.net/andreas.zeller/myths- in- so'ware- engineering

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Pesticide Paradox Bugs found per day by a test Age of test

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Testing is Context Dependent Cost Cost of tes.ng 80-85%? Cost of defects 0% 50% 100% Coverage

Quality Attributes: ISO/IEC 9126-1:2001 Func.onality - sa#sfies needs. Suitability Accuracy Interoperability Security Func.onality Compliance Reliability - maintains opera#on Maturity Fault Tolerance Recoverability Reliability Compliance Usability - effort needed for use Understandability Learnability Operability ADrac.veness Usability Compliance Efficiency - performance given resources Time Behaviour Resource U.lisa.on Efficiency Compliance Maintainability - make modifica#ons Analyzability Changeability Stability Testability Maintainability Compliance Portability - change environment Adaptability Installability Co- Existence Replaceability Portability Compliance

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Absence of Errors does not mean the System is OK Acceptance Test System Test Performance/Stability Integra.on Test Unit Test 100% hdp://blogg.kantega.no/kodedekningsgrad/

Why So'ware Tes.ng? So'ware Tes.ng Principles Exhaus.ve tes.ng is impossible Early Tes.ng Tes.ng shows the Presence of Bugs Defect Clustering The Pes.cide Paradox Tes.ng is Context Dependent Absence of errors fallacy Summary

Så husk Testing #FTW #YOLO You can t test everything! Testing is Context Dependent! Get involved early! Testing doesn t prove software is without bugs Absence of errors does not prove the system is ok Defects cluster Old tests find fewer bugs

Testing i smidige prosjekter En hverdagsbetraktning 06.02.14 13:30

06.02.14 13:30 Vannfall

Smidig prosjekt Whole team approach Aktiv kundedeltakelse Korte iterasjoner, hyppig leveranse av forretningsverdi Kontinuerlig testing og integrasjon Kontinuerlig forbedring 06.02.14 13:30

Hva er et effektivt team? 06.02.14 13:30

06.02.14 ( Scrum 13:30.me by DamjanBNZ, licenced under CC BY- NC- SA- 2.0)

Teamarbeid 06.02.14 13:30

Hva er et effektivt team? A good team will sa#sfy its internal or external clients, become stronger as a unit as #me passes, and foster the learning and growth of its individual members. (J. Richard Hackman) 06.02.14 13:30

Hvordan gjennomføres testing i et smidig prosjekt? 06.02.14 13:30

Testing i et smidig prosjekt MÅL: lage kvalitet, og.l enhver.d ha mest mulig kunnskap om produktet vårt Samarbeid Kontinuerlig og rask feedbackloop fra test Automatisering Vi tester ikke bare sjekker 06.02.14 13:30

En testers «mindset» Hva kan vi gjøre for å bidra til å levere god programvare? Fokus på å forebygge feil. Den tydeligste forskjellen på smidig og tradisjonell testing er rask feedback fra testing. Test driver smidige prosjekter. 06.02.14 13:30

Hvordan oppleves det å være tester? 06.02.14 13:30

( The road to nowhere by sbisson, licenced under CC BY- NC- ND 2.0) 06.02.14 13:30

Playground (with a twist) by Fulla T, licenced under CC BY- NC 2.0 06.02.14 13:30

Hva gjør vi, egentlig? 06.02.14 13:30

06.02.14 13:30

Prototyping Specifica.on by example Sta.sk analyse Kravhåndtering BDD Funksjonell test Integrasjonstest Brukbarhetstes.ng Ikke- funksjonelle tester 06.02.14 13:30 Kodegjennomgang Exploratory test Automa.sering

Funksjonell test Bekrefte forventet oppførsel (basert på spesifikasjonen av produktet) Ulike plattformer, nettlesere, mobile enheter. Test-design teknikker Boundary value analysis Equivalence partitioning Cause - effect graphing Branch testing Decision tables.. 06.02.14 13:30

Eksempel, equivalence partitioning A bank has different charges depending on the transaction done. 1. 5% of the amount for transaction less than or equal to 1000 bucks 2. 6% of the amount for transaction more than 1000 and less than or equal to 2000 bucks 3. 7% of the amount for transaction more than 2000 bucks 06.02.14 (hdp://www.whiteboxtest.com/equivalence- Par..oning- And- BVA.php) 13:30

Kravhåndtering - kunsten å lage riktig ting BDD, ATDD, Specification by example, Impact mapping (hdp://impactmapping.org/index.php) 06.02.14 13:30

User stories, akseptansekriterier As a <type of user>, I want <some goal> so that <some reason>. User story: As a customer, I want to withdraw cash from an ATM So that I don't have to wait in line at the bank. Akseptansekriteria: Given that the account is creditworthy And the card is valid And the dispenser contains cash, When the customer requests the cash Then ensure the account is debited And ensure cash is dispensed And ensure the card is returned. 06.02.14 13:30

Brukbarhetstesting På konsept, prototype eller produkt. 06.02.14 13:30

Brukbarhetstesting 06.02.14 13:30

Devicelab (hdp://www.kantega.no/devicelab/) 06.02.14 13:30

Automatisering Enhets- og komponenttester Integrasjonstester Business (service)-logikk GUI Tekniske tester (last, stabilitet..) User acceptance test/bdd 06.02.14 13:30

Eksempel, soapui for WS-tester 06.02.14 13:30

Eksempel, Selenium for GUI-tester 06.02.14 13:30

Må vedlikeholdes! 06.02.14 13:30

Exploratory testing simultaneous learning, test design and test execution 06.02.14 13:30

Ikke-funksjonell testing Avbrudd Ytelse Stabilitet Last Sikkerhet 06.02.14 13:30

06.02.14 13:30 Holmes! by dynamosquito licenced under CC BY-SA 2.0

Ytelsestesting Betyr ingen feil at systemet er OK?

Kvalitetsattributter - ISO/IEC 9126-1:2001 Func.onality - sa#sfies needs. Suitability Accuracy Interoperability Security Func.onality Compliance Reliability - maintains opera#on Maturity Fault Tolerance Recoverability Reliability Compliance Usability - effort needed for use Understandability Learnability Operability ADrac.veness Usability Compliance Efficiency - performance given resources Time Behaviour Resource U.lisa.on Efficiency Compliance Maintainability - make modifica#ons Analyzability Changeability Stability Testability Maintainability Compliance Portability - change environment Adaptability Installability Co- Existence Replaceability Portability Compliance

Hva er ytelsestesting reliability tes.ng fail over tes.ng scalability tes.ng performance tes.ng load tes.ng stress tes.ng fault tolerance tes.ng efficiency tes.ng capacity tes.ng stability tes.ng peak tes.ng endurance tes.ng benchmark tes.ng volume tes.ng

Hva er ytelsestesting reliability tes.ng fail over Vår tes.ng definisjon scalability tes.ng En test der man påfører systemet en viss belastning og ser hva som skjer i gide situasjoner, og da gjerne i forhold.l sludbrukere og i forhold fault tolerance.l ressursbruk tes.ng load tes.ng efficiency tes.ng performance tes.ng stress tes.ng ISTQB capacity tes.ng stability tes.ng The process of tes.ng to determine the performance of a so'ware product peak tes.ng endurance tes.ng benchmark tes.ng volume tes.ng

Hvorfor ytelsesteste Gi trygghet for systemeiere og prosjektledere Nedetid koster penger og gir dårlig omtale Typiske spørsmål Er systemet klart for å gå i produksjon Vil oppgradering til ny versjon påvirke ytelsen Hvor mange samtidige brukere kan systemet håndtere? Hvor mange transaksjoner kan systemet håndtere i løpet av en time? Hvor er flaskehalsen i systemet? Hvor mye maskinvare trenger vi? Hva om databasen kræsjer eller en router faller ut? Hvis tjeneste X blir utilgjengelig, påvirker det tjeneste Y?

Prosess Få oversikt over testmiljøet: Hva skal testes, hva med eksterne systemer og simulatorer,... Bruksmønster og scenario: Hva er de mest brukte og viktigste funksjonene, hvor ofte brukes de (se prod.data), hvilke funksjoner påvirker ytelsen mest,... Krav og forventninger: Er kravene godt nok spesifisert, hva er ikke definert, når avslutte testing,... Hvilke tester skal kjøres: Håndteres estimert lastpåtrykk, hva er knekkpunkt, håndteres brudd, hva skjer over lengre tid,... Testdata: Finnes det gyldig data å teste med, ingen reelle kunder, datamengde,...

Prosess: bruksmønster - finne datagrunnlag Viktige metrikker: Mest brukte funksjonalitet Fordelingen på stiene Tid på hver side 4 min. 55% 25% 6 min. 3 min. 35% 10% 8 min. 3 min.

Prosess: bruksmønster - definere script 20% 35% 10% 10% 25% Brukerfordeling: 4 skript representerer 80% Skal flere med? 4 min. 55% 25% 6 min. 3 min. 35% 10% 8 min. 3 min.

Prosess: bruksmønster - tekniske risikoer Arkitekturmessige hensyn: 3% fyller inn spørreskjema. Bruk av database og e-post Ønskes med fordi: Påvirker ytelse Får konsekvens ved stress 17% 35% 10% 10% 25% 3%

Prosess: simulator iden.fiser HVA som skal testes og hva som IKKE skal testes Like viktig å vite hva som IKKE skal testes Isoler system under test Bedre kontroll Variere responstider fra avhengige baksystemet Eksempel: Nettbanken Hva: selve nettbanken, inkludert «interne» databaser Ikke: Tjenestebussen, Evry, NETS, sikkerhetskjerne (autent./autor.)

Prosess: simulator Testdriver / klient System under test Simulator Baksystem Opptak 1. Request til baksystem fanges opp og lagres 2. Respons fra baksystem fanges opp og lagres 3. Endre request-opptak for senere treff

Prosess: simulator Testdriver / klient System under test Simulator Avspilling 1. Request som matcher opptak gir tilsvarende respons tilbake 2. Kan legge elementer fra request inn i respons 3. Legge til forsinkelse på respons (fast, fordelinger)

Prosess: testdata Data må være gyldig i alle delene av systemet Kan samme testbrukere ha flere parallelle sesjoner Ta hensyn til datagenerering Er testmiljøet produksjonslikt ift datamengde Pass på i forhold til e-post, sms, etc.

Hva skal måles Antall feil brukerne opplevde Responstid Hits per sekund og throughput CPU-forbruk Minneforbruk Nettverkstrafikk Håndtering av sockets Diskforbruk Applikasjonskøer Feil i applikasjonslogger

Hvordan tolke resultatene Hvorfor er det et knekkpunkt? Hvorfor er knekkpunktet der? Er ressursbruken kontrollert? Hvorfor brukes det så lang tid på en GC? Er det transaksjoner som avviker? Hvorfor? Dårlig ytelse men lav ressursbruk god ytelse men for høy ressursbruk? Er testen produksjonslik? Også mht. bruk av baksystemer? Hvorfor er det forskjellige resultat på to like tester? Avbrudd mot baksystem hvorfor feiler «uavhengige» transaksjoner? 12:01:33 1343 0,002 12:01:34 1345 0,018 12:01:35 1365 0,009 12:01:36 1366 0,01 12:01:37 1401 0,02 12:01:38 1544 0,021 12:01:39 1555 0,026 12:01:40 1556 0,02 12:01:41 1570 0,017 12:01:42 1633 0,019 12:01:43 1633 0,021 12:01:44 1678 0,026 12:01:45 1690 0,027 12:01:46 1707 0,023 12:01:47 1733 0,022 12:01:48 1734 0,023

Vanlige tester Vi bruker normalt de samme script i alle typer tester. Hva som er målet med testen bestemmer type test Kapasitetstest / Knekkpunkts test Gjerne første ordentlige test Avdekker åpenbare feil Lærer systemets oppførsel Stabilitetstest Ca 80% av knekkpunkt Hvordan oppfører systemet seg over tid Ha kontroll med testmiljøet (restarter, disker) Avbruddstest Minst to typer avbrudd (reject, drop) Andre vanlige stresstester Skalering, øke datavolum, fjerne ledig diskplass, lengre responstider fra baksystem

Knekkpunktstest Øker antallet brukere for å finne knekkpunkt Respons.d [ms] 1s Throughput [tps] Sam.dige brukere

Stabilitetstest - responstid

Stabilitetstest - minne

Stabilitetstest - programming effects import javax.xml.xpath.*;!! XPathFactory xpfact = XPathFactory.newInstance();! Xpath xp = xpfact.newxpath();!! Node mynode = (Node) xp.evaluate(...);!

Stabilitetstest - programming effects import org.w3c.dom.*;!! SoapMessage soapmsg = new SoapMessage();! Element soapel = soapmsg.getsoapheader();!! Node mynode = soapheader.getelementsbytagnamens(...).item(0);!

Avbruddstest Som stabilitetstest, men kobler ned og opp baksystemer DROP og REJECT

Avbruddstest DROP: ingen svar REJECT: svar

Avbruddstest Køing er et avbruddsproblem OSB Proxy Business Baksystem Tjeneste Tradex Nets Evry

Lastdriver: JMeter Apache Jmeter en bruker = en Java tråd sette måltall for antall lastpåtrykk open-source grafer scripts