Vissen in troebel water Testen en accepteren 2 Software ontwikkeling is … complex mensenwerk Mensen maken vergissingen (‘errors’) - Errare humanum est 3 Vergissingen (‘errors’) tijdens … bouw ontwerp … leiden tot fouten (‘defects’) in software Sommige (niet alle) fouten worden gevonden bij testen Sommige (niet alle) gevonden fouten worden verwijderd n.a.v. testen 4 ontwerp bouw & test DUS software in productie bevat (bekende en onbekende) fouten 5 productie adaptability installability conformance replaceability maturity fault tolerance recoverability availability degradability analysability changeability stability testability manageability reusability time behaviour resource behaviour 6 understandability learnability operability explicitness customisability attractivity clarity helpfullness user friendliness suitability accuracy interoperability compliance security traceability Fouten (‘defects’) in software kunnen (soms) leiden tot het falen (‘failure’) van systemen 7 8 Falende systemen kunnen (soms) schade veroorzaken • menselijk leed • reputatie • geld Het gaat om risico: Risico = Kans x Schade 9 Project 10 Gebruikers 11 Requirements 12 Risicoanalyse 13 Unit test (leverancier) 14 Systeem test (leverancier) 15 Functionele acceptatietest (klant) 16 Gebruikersacceptatie test (klant) 17 Vrijgaveadvies (testmanager) 18 Go/NoGo beslissing 19 Inproductiename 20 wens, wet, beleid, kans, probleem gebruik & beheer Kan ik ermee werken? requirements (gebruikers) functioneel ontwerp technisch ontwerp realisatie Klant acceptatie tests Leverancier systeem tests unit tests Werkt het geheel? Zijn de onderdelen in orde? 21 • Leverancier vraagt decharge o.b.v. systeemtest wens, wet, beleid, kans, probleem gebruik & beheer requirements (gebruikers) functioneel ontwerp technisch ontwerp realisatie 22 Klant acceptatie tests Leverancier systeem tests unit tests • Klant verleent decharge o.b.v. functionele/contractuele acceptatietest wens, wet, gebruik & beheer beleid, kans, probleem requirements (gebruikers) functioneel ontwerp technisch ontwerp realisatie 23 Klant acceptatie tests Leverancier systeem tests unit tests • Klant beslist Go/NoGo o.b.v. gebruikers-/productieacceptatietest wens, wet, gebruik & beheer beleid, kans, probleem requirements (gebruikers) functioneel ontwerp technisch ontwerp realisatie 24 Klant acceptatie tests Leverancier systeem tests unit tests Testen kan de AANWEZIGHEID van fouten aantonen … niet de AFWEZIGHEID ervan 25 • Vissen • Planten • Bacterieel • Chemie • Helderheid Alles testen? • Vissen • Planten • Bacterieel • Vissen • Planten • Vissen 26 • Vissen • Planten • Bacterieel • Chemie = Alle tijd Alle geld = Onmogelijk • Vissen • Planten • Bacterieel • Chemie • Temperatuur Keuzes maken • Vissen • Planten • Bacterieel • Vissen • Planten • Vissen 27 • Vissen • Planten • Bacterieel • Chemie [tijd] [geld] ↓ Risico’s Gericht zoeken op afgesproken plaatsen naar bepaalde fouten, waar de opdrachtgever een risico in ziet 28 totdat € vinden van 1 extra fout >= € vermeden risico (dus restrisico mogelijk!) 29 Baten van testen: vermeden risico’s >= Kosten van testen: inzet mensen en middelen 30 Gestructureerd testen • Planmatig, gemanaged • Gedefinieerd proces • Methoden, technieken, kwaliteit • Gecertificeerde medewerkers • Geschikte infrastructuur, tools • Verbetercyclus 31 Gestructureerd testen 32 Conclusie • Software bevat (bekende en onbekende) fouten • … ook NA testen 33 Conclusie Ad hoc testen → toeval Gestructureerd testen → bewuste (mate van on-)zekerheid 34 Samenvatting • Gestructureerd testen is gericht zoeken • … op afgesproken plaatsen • … naar bepaalde fouten • … om specifieke risico’s te vermijden 35 Conclusie Accepteren door opdrachtgever o.b.v. informatie uit inzichtelijk testproces • Decharge • Leverancier – ST • Klant – FAT • Go/NoGo • Klant – GAT/PAT 36 Doel Tevreden gebruikers 37 Contact [email protected] @hansvanloenhoud 38 www.polteq.com +31 33 277 35 22