Agile testen - kwaliteit onder controle

Slides:



Advertisements
Verwante presentaties
Menno Karres Lead Auditor
Advertisements

INTERACTION DESIGN Week 3.
Learning Analytics SURF | Seminar Tools voor Learning Analytics
Stijn Hoppenbrouwers Software Engineering les 1 Algemene inleiding en Requirements Engineering.
Onderwerpen Oude situatie Eerste aanpak en problemen
Stafadviseur patiëntveiligheid Atrium mc
Door: Marvin Peters & Frank van Esch
TMap NEXT in een notendop
Een introductie. Open source Betere kwaliteit Hoge innovatiesnelheid Betere prijs/kwaliteit verhouding Vrijheid in keuze van leverancier Gedreven door.
Talentmanagement in de Technische Dienst
Legacy in een moderne wereld
Activiteit 1.6 Bepalen niet-functionele eisen
Zullen we het ooit leren? Maarten Boasson Quaerendo Invenietis bv Universiteit van Amsterdam.
Noor Christoph SWI Universiteit van Amsterdam
WWB proces + Inbedding in Risicomanagement ISO 31000
Hoofdstuk 6 Kwaliteitsbewaking
Hoofdstuk 7 Risicomanagement
Inleiding Kennistechnologie §Hoofdstuk 4: Ontwikkeltraject §Hoofdstuk 5: MYCIN en complexiteit §Hoofdstuk 6: Symbolen en semantiek.
Agenda Besturen vraagstuk Besturing vraagstuk Relatie DIV (IM)
Prince2 Componenten.
Van JBF via Degelijkheid naar Pro-actief Beheer
De gebruiksvriendelijkheid van je website evalueren
Informatieanalyse.
Introductie Groepsleden: - Peter Davids - René Zuidhof - Fokko Bronsema - Nick ter Horst.
HBO-I Conference Tour RUP| versie 1.0 | 18 maart 2010 RUP toegepast binnen DUO Een korte impressie hoe we binnen DUO RUP ingevoerd hebben (aan het.
Het nieuwe werken Visie Peter Fingar. Het werk verandert: –Meer informatie gericht: gebruiken, verwerken en actie Transactie-informatie Omgevingsinformatie.
Cobolkwaliteit bij Rabobank Sonar voor Cobol
Samen-bouwen … over paneelbouw en de rest!
Duurzaamheid van projectresultaten Michiel van Geloven, januari 2008.
Risk Based Testing van pakketsoftware
Testing Back 2 Basics Testing in the Real World: Practische tools & ervaringen Rien van Vugt, Capgemini.
Workshop ‘visieversneller’
Rogier van der Linde & Davy De Winne, 2014
Artificial Pancreas Cheetah Just Boerlage & Patrick van Kouteren.
Agile Roadblocks Agile Roadblocks 3 Manifest voor Agile Software Ontwikkeling Wij laten zien dat er betere manieren zijn om software te.
Iedereen is context driven!
Fase 3: Technisch Ontwerp
Verschuif performance testen naar de Bouw 30/10/2014 TestNet Najaarsevent.
COMPUTEST BORREL – 2 Mei 2014 Van Performancetesten naar Performance Assurance TestNet Najaarsevenement 2014 Versie: 1.0 Datum: 30 oktober 2014.
De Dynamische Testrapportage: BDD en de deployment pipeline
HOE WORD JE EEN WINNING TEAM?
Testautomatisering voor en door businessanalisten
123 Belangrijke voordelenWat is het? End-to-end mogelijkheden Creëer en versterk autonome flexibele teams Plaats kwaliteit centraal in alles wat u doet.
Communicatie 2 – kw 2 Les 1.
Hulpmiddelen voor bepalen activiteiten
Project Agility. Projectoverzicht –Doel: 1algemeen pakket voor meldingen en de verwerking ervan, Melding: kan elke melding omvatten Mogelijkheden om deze.
Salesforce Partner van Ordina Flexibel 3 Schaalbaar van 1 tot gebruikers Gebruik naar behoefte Eenvoudig aan te passen.
MAAK HET ONDERNEMERS MAKKELIJK! MET EEN REGELHULP IN 7 STAPPEN.
Ministerie van BZK – 3 november 2016
Milo van der Zee
‘Business at the speed of change’
the digital workspace Connected Company & The Digital WorkSpace
Grip & Controle op digitalisering
Test Driven Development
Testen en Testautomatisering in een Agile CI / CD omgeving
Doorontwikkelen BRON vo
Lectora als ontwikkeltool voor interactieve multimedia programma’s
Smart World Workshop Scrum en Design Thinking
Agile in een niet Agile context
Praegus B.V.. .
Procesondersteuning binnen de sociale zekerheid
De PRA is dood! Leve de PRA!
Ik ben een full stack consultant! TestNet najaarsevenement
Workshop Agile Performance Testing with mBrace Agile
Het proces agile gemaakt
Software Development fundamentals
Van “Test Less” naar “Test Different”
Startgroep nieuwe HR-cyclus
Vernieuw je HR-cyclus.
Onbevredigd door Testautomatisering? Reduceer je False Negatives!
Transcript van de presentatie:

Agile testen - kwaliteit onder controle Marc Evers – Piecemeal Growth Anko Tijman – Ordina TestNet 16 maart 2006 www.testnet.org

Agenda Wat betekent ‘agile’ en agile testen Kwaliteitsborging in agile projecten Test driven development - pauze - Test driven development in de praktijk Agile testtechnieken Discussie en afsluiting Niet vergeten: vertel kort iets over onszelf Tijdsindicatie: 18:00 – 18:20 Wat betekent agile 18:20 – 18: 40: Kwaliteitsborging 18:40 – 19.00: TDD Pauze 19:15 – 19.30 TDD praktijk 19:30 – 19: 50 Test technieken 19:50 – 20.15 Discussie en afsluiting

Agile softwareontwikkeling iteratief incrementeel kortcyclisch geprioriteerd eenvoud eerst Eigenschappen van agile so vragen: wie is bekend met agile? wie heeft agile gewerkt? wat weet men over agile? wat is het beeld dat men heeft? noteer steekwoorden --> Gebruik Flipover

Agile is... resultaatgericht - duurzaam resultaat mens- en procesgericht continu sturen op basis van feedback continu verbeteren, in kleine stappen communicatie duurzaam resultaat: niet alleen korte termijn succes, maar ook duurzaam resultaat kunnen blijven boeken concurrentievoordeel op basis van mensen en processen ipv technologie IT is more about people than about computers... n.b. proces != procedure continu sturen op basis van frequente feedback over produkt en proces “La perfection est atteinte non quand il ne reste rien à ajouter, mais quand il ne reste rien à enlever” (Antoine de Saint-Exupery)

Agile is... denkwijze en houding methodiek is beginpunt, niet het doel proces continu aanpassen aan veranderende omgeving kleine stappen, kleine problemen optimalisatie van hele cyclus (loop), niet slechts een deel agile is niet een specifiek proces of methode (zoals XP, DSDM, Scrum) Agile kijkt niet naar de individuele onderdelen, zoals ontwerp, bouw of test; het kijkt naar de hele cyclus en wil daar resultaat op halen. Geen suboptimalisatie dus. Verbeterprocessen richten zich (helaas) vaak wel op (het meten van) onderdelen. Agile betekent continue procesverbetering, simpel gezegd is je “metaproces”: zoek je ergste probleem - er is er altijd wel een - kijk naar het hele systeem stel een oplossing voor - hoe weet je of het werkt? probeer deze een tijdje - evalueer en behoud wat werkt

Agile waarden Mensen en interactie Werkende software Samenwerken met de klant Reageren op veranderingen “Simple, clear purpose and principles give rise to complex, intelligent behaviour. Complex rules and regulations give rise to simple, stupid behaviour.” (Dee Hock, ceo VISA)

Roots van agile deels bestaande, bewezen werkwijzen "lean" produktie, JIT, Toyota Productie Systeem dynamische programmeertalen – Smalltalk, Lisp systeemdenken aandacht voor rol van mens en teamdynamiek Psychology of Computer Programming (1971) Peopleware (1987) financieel risicomanagement (bijv. opties) "opstand" van programmeurs vraag om "agility" vanuit business aantal agile werkwijzen werden in de jaren 60 en 70 al succesvol toegepast we zien recentelijk opleving van dynamische programmeertalen, bijv. Python en Ruby systeemdenken: systeemdenken beschouwt werkelijkheid als systeem van gerelateerde delen, met de aanname dat het geheel meer is dan sec de som der ddelen. Systeemdenken gegroeid uit besturingstheorie / modellen van feedbackbesturing; toegepast op organisaties (o.a. Shell in jaren 70), 5e Discipline van Peter Senge, Theory of Constraints; Weinberg heeft systeemdenken binnen ICT gepromoot.

Agile testen Testen in een agile project Feedback Eenvoud Communicatie Teamwork Agile: values Flexibel: - klantgericht - projectgericht - oplossingsgericht

Agile testen Huidige stand van zaken Flexibele aanpak van het testen Context driven testing (Kaner, Bach & Pettichord)

Kwaliteitsborging Hoe weet je of dat wat je gemaakt heb, goed is? Als je iets moeilijks te maken hebt, hoe reduceer je de complexiteit? vragen: hoe zien deelnemers kwaliteitsborging? hoe gebeurt dat momenteel in projecten? hoe wordt dat gemanaged? hoe wordt op kwaliteit gestuurd? (als dat al het geval is) wat zijn de effecten van deze wijzen van kwaliteitsborging? Fundamentele vraag: wat is kwaliteit? Jerry Weinbergs definitie: waarde voor iemand ("value for someone") punt 1: Feedback punt 2: Simplicity Waarsch antwoorden: entry- en exit criteria, QA manager, audits, reviews, procescompliance

Risicomanagement Tijd / Kwaliteit / Functionaliteit Eenvoud Incrementeel Prioriteren Testen...! vragen: Ervaring met projecten die niet mogen falen / die moeten slagen? Welke ervaring hebben deelnemers met risicomanagement in projecten? Wat ziet men gebeuren? hoe wordt met risico’s omgegaan? Heeft men ervaring met “buffers” in projecten? (Agile) manieren van risicomanagement: vaste tijd / vaste kwaliteit / flexibele scope complexiteit reduceren door eenvoud toe te passen projectrisico's managen door geen big bang iteratief en incrementeel werken helpt je om allerlei risico beter te managen prioriteren van je requirements - de risicovolle eerst bouwen en herprioriteren tijdens de loop v/h project, helpt ook om de boel beheersbaar te houden test early / test often - dit levert je vroeg en continu feedback of bepaalde risico's zich gaan materialiseren zodat je meteen in kan grijpen

Kwaliteitsborging in agile projecten kwaliteitsborging ingebakken in proces risicomanagement werken in kleine stappen continu evalueren en monitoren van risico's voorbeeld: werkwijzen XP Kwaliteitsborging is niet iets wat je "erop plakt"/aan toevoegt – niet een separaat iets Risicomanagement in XP: XP werkwijzen helpen om aantal "standaard" risico's in softwareontwikkeling te beheersen en te beperken – bijv. frequente releases en korte iteraties; alles geautomatiseerd testen (voorkomen van regressie) Kwaliteit is in agile, net als tijdigheid, een niet- onderhandelbaar iets. De practice zit er in, en je doet hem goed. De flexibliteit komt vanuit de prioriteitstelling van de omvang van de oplossing.

Agile en testen geen aparte fase, maar een ingebedde, essentiële activiteit basis voor kwaliteits- en risicomanagement feedback over kwaliteit van produkt en proces basis om projecten (en resultaat) te sturen Testen draait om het verschaffen van inzicht in de kwaliteit en voortgang van het project. Dit is dus een iets andere definitie (vaak”'aantonen dat het systeem voldoet aan de gestelde specs”) feedback over kwaliteit van produkt en proces basis om projecten (en resultaat) te sturen Het blijft echter ook testen: - rol blijft - technieken (komen we op terug) - risicoanalyse .

Test driven development eerst test, dan implementatie incrementeel vroege & frequente feedback geautomatiseerd begin met het schrijven van de test alvorens hetgeen getest wordt te bouwen vroege, frequente feedback: je weet dus zsm dat er niet aan een bepaalde test voldaan wordt zodat je genoeg tijd hebt om dit aan te pakken dat houdt hetgeen je aan het doen bent een stuk beter voorspelbaar, itt testen aan het eind (en/of onvoldoende testen) als je testen op die manier naar voren trekt krijg je denk ik ook een heel andere defecten-dynamiek – defecten vind je eerder en los je eerder op ipv tegen het einde van het project opeens een hele voorraad aan defecten te hebben (die weer gemanaged moeten worden en zo) in feite begin je met een formele specificatie van wat je verwacht, bijv. qua functionaliteit, qua gedrag van een module, qua performance; daarmee wordt testen ook ontwerpen: je definieert je requirements en verwachtingen precies en concreet. testen ligt dus heel dicht tegen requirements (stories, etc.) aan – ben je als tester in een traditioneel project niet bezig achteraf de gaten in het requirements werk te dichten? Boriz Beizer heeft zoiets geschreven als “The design isn't done until the test cases are ready'!

Test driven development toepasbaar op alle niveaus & aspecten: technisch ontwerp en coderen functionaliteit performance & schaalbaarheid Valkuil: Test cases BDUF gaan beschrijven (...) Maatregel: In kleine stapjes blijven denken TDD binnen de iteratie uitvoeren

TDD - unittests geautomatiseerde unittests ontwerptechniek geschreven door programmeurs ontwerptechniek testbaar → onderhoudbaar voorkomt overbodige code groeiend vangnet van tests voorkomt regressie continue feedback over wijzigingen met TDD specificeer je eerst (formeel en executeerbaar!) wat de code moet doen; dit dwingt je na te denken over hoe de structuur eruit ziet; je schrijft alleen code die je begrijpt resultaat: net zoveel testcode als programmacode verzameling unit tests moet wel in korte tijd ( < 30 s.) uitgevoerd kunnen worden

TDD - unittests werkwijze schrijf testgeval controleer of de test faalt schrijf eenvoudigste implementatie die test laat slagen controleer of de test slaagt vereenvoudig programmacode om duplicatie te verwijderen

Unittesting - voorbeeld live demo van voorbeeld: tdd bouwen van een truncate – functie in Ruby

TDD – functionele tests Extreme Programming - “acceptance tests” geautomatiseerde functionele tests op basis van bijv. use cases of “stories” defineer tests aan begin van elke iteratie specificatie van functionaliteit en acceptatiecriteria wie is verantwoordelijk voor tests? Binnen de agile wereld is dit gebied de afgelopen tijd sterk in ontwikkeling Brian marick: exampler boek (maar staat in de ijskast) expliciete acceptatiecriteria die van te voren bekend is: ontwikkelaars weten wat er verwacht wordt en wanneer het af is verantwoordelijkheden: inhoud van test: “klant” infrastructuur: programmeur

TDD – functionele tests recente ontwikkelingen open source frameworks: Selenium, Watir, FIT eigenschappen voorkomen regressie herhaalbaar & snel voortgang direct zichtbaar extra onderhoudsinspanning acceptance testing was een van de moeilijke XP practices; recentelijk wordt er veel gedaan, gediscussieerd en ontwikkeld op dat gebied, met als resultaat betere theorieën en modellen èn betere tooling/frameworks bij Watir kun je de kracht van de onderliggende taal (Ruby) gebruiken om onderhoudbare tests te schrijven. Wat je in de praktijk ziet is dat je naar een domein-specifieke taal voor je applicatie toewerkt. voorwaarde voor slagen van dergelijke aanpak is m.i. dat de tests voldoende eenvoudig zijn om te schrijven en dat de onderhoudsinspanning beperkt blijft.

Functionele tests - voorbeeld

Agile testtechnieken Testtechnieken Waterval Documentatie Specificatiefase Uitsluitend de tester Wat is het “probleem” met testtechnieken? Dilemma: Niet per definitie ongeschikt Niet per definitie “out-of-the-box” geschikt Te veel traditionele ballast

Agile testtechnieken Eenvoud Snel toepasbaar Snelle feedback Voor en door teamleden “1-page-reference card” Eigenschappen van testtechnieken in een agile context Eenvoud: het minimale uitvoeren ipv het meest volledige

Agile testtechnieken Equivalentieklassen / Grenswaardenanalyse Exploratory Testing / Pair Testing Heuristic Evaluation Beslissingsanalyse

Agile testtechnieken Equivalentieklassen Identificeer attributen Identificeer klassen Identificeer testgevallen Unittest / Integratietest / Acceptatietest

Agile testtechnieken Exploratory testing Gelimiteerde scope Gelimiteerde tijd Duidelijk doel Aanpak Probleemgericht Referenties / verslag

Agile testtechnieken Pair testing Tester + ... Hogere dekkingsgraad Minder kans op fouten Complexe problematiek Versnipperde kennis Kan met ontwerper, bouwer, klant, directeur... Gescheiden taken (uitvoering + aantekeningen) Wanneer niet: Afhankelijk van teststrategie, bijv. als het geautomatiseerd moet worden Communicatieve problemen Als er reeds testgevallen zijn die hetzelfde afdekken Voorwaarden voor PT: Vrijwillige samenwerking Geschikte ruimte / werkplek Do Not Disturb!

Agile testtechnieken Heuristic Evaluation Usability test 10 grondregels Systematische inspectie Algemene bruikbaarheidsprincipes

Agile testtechnieken Visibility of system status Recognition rather than recall Flexibility and efficiency of use User control and freedom Consistency and standards Help and documentation Error prevention Help users recognise, diagnose, and recover form errors Match between system and the real world Aesthetic and minimalist design

Agile testtechnieken Beslissingsanalyse Bepaal de beslissingssituaties Ken acties toe aan beslissingssituaties Controleer op volledigheid / doe aanpassingen 17 pagina's in Tmap – dat laat je niet aan een niet-tester lezen. Het gaat hier om de kern. No Waste! Andere technieken: Eenvoud Snelle feedback Teamleden 1 page

Discussie en afsluiting ...vragen...? Stel vragen (en beantwoord vragen) - wat ga je direct toepassen? - wat gaat in jouw omgeving nooit werken? - is er iets dat je graag zou willen doen, maar waarvoor je nog obstakels ziet? welke obstakels? - waar zou je meer van willen weten?

Bronnen www.agilemanifesto.org www.xpnl.org www.testing.com www.testinglessons.com

Bedankt! Anko Tijman anko.tijman@ordina.nl www.ordina.nl Marc Evers marc@piecemealgrowth.nl www.piecemealgrowth.nl