testen binnen dev ops dtc 2014
DESCRIPTION
DevOps is een term die momenteel sterk in opkomst is. Maar is het een hype of heeft het ook een meerwaarde? DevOps is in basis niets meer dan een samenvoeging van ontwikkeling (Dev) en beheer (Ops) binnen één Agile team. Achterliggende gedachte is dat een team ook direct de pijn voelt wanneer zaken niet goed ontwikkeld en/of getest zijn. Maar welke rol speelt Quality Assurance nu precies binnen DevOps en hoe kan deze methodiek in de praktijk het beste vorm gegeven worden? Binnen deze sessie worden deelnemers meegenomen in de praktijk van DevOps en komen thema’s als Continuous Delivery/Continuous Integration, Test Driven Development en testautomatisering aan de orde. Voordelen, nadelen en uitdagingen worden benoemd en het wordt duidelijk hoe belangrijk testen binnen DevOps is.TRANSCRIPT
DevOpsTesten als ‘Linking pin’ tussen Dev en Ops
Dutch Testing Conference, 9 april 2014
1
DevOpsWat is het?
3Wat is DevOps?
Development Quality Assurance
Technical Operations
DevOps
4DevOps: De werkwijze
Een nauwe(re) samenwerking tussen ontwikkelaars, testers en beheer
Ontwikkeling en beheer is een gezamenlijke inspanning
Kort cyclische ontwikkeling: Continuous Delivery / Continuous Integration
Zo snel mogelijk van Ontwikkelen naar Productie
Geen muren: niet binnen teams, niet tussen teams en management
Veel releases, veel afstemming
Rollen binnen DevOpsDev, Ops en QA
6Development
Zoveel mogelijk kleine aanpassingen
Snel naar productie− Geautomatiseerd deployen
− Gebruik van centrale build&deploy server met generieke handelswijze
180
7Operations
Betrokken bij ontwikkeling en test
Betrekt rest van het team bij Operations
STOP
8Quality Assurance
Snel testen!− Testen begint zo vroeg mogelijk, veel samenspraak met ontwikkelaars
− Lean testen: No risk, no test!
− Geautomatiseerd testen
− Automatische smoketesten op alle test omgevingen én productie!
− Automatische testen bij Deployment (build&deploy server)
9Quality Assurance
Snel accepteren− Acceptatietesten in nauwe samenspraak met PO
− Geen muren tussen business (PO) en IT
− Acceptatietesten zoveel mogelijk geautomatiseerd
− Performancetesten geautomatiseerd
10Quality Assurance
Linking pin tussen Development en Ops
DevOpsQA
180
STOP
11Test Driven Development
Test Driven Development (TDD):− Eerst testen, dan bouwen!
− Testen is een team activiteit
− 100% code coverage
Acceptance Test Driven Development (ATDD):− Acceptatie op basis van testgevallen
− ≈ 100% functionele dekking
12Test Driven Development
Behaviour Driven Development (BDD):− Gedrag als basis voor ontwerp, bouw en test
− Unit testen naar business value (“Gegeven…”)
− Acceptatie testen als Userstories (“Als [rol] wil ik dat…, zodat [voordeel] ” )
− Acceptatie criteria als scenario’s (“Gegeven dat … Wanneer…., dan….)
Feature: US001. As a User I want to be able to create new appointments within an online agenda
Scenario: TC01. By giving a begin date/time and end date/time a user is able to save an appointment in the agenda
Given that user is logged in on the online application
And user is on the agenda page
When user gives a begin date/time and end date-time
Then an appointment is saved in the agenda.
13(A)TDD/BDD
(A)TDD of BDD maakt het mogelijk het team te verbinden− Samen verantwoordelijk voor test
− Test als basis voor het gehele traject
DevOpsQA
180
STOP
DevOps: De PraktijkVoordelen, nadelen, leerpunten
15DevOps: de praktijk
Resultaat− Snel van ontwerp naar productie
− Minder fouten doordat een team direct de pijn ervaart…
− Maar, Ops als onderdeel van team is veelal lastig plannen!
− Productie-like (test)omgevingen blijken lastig!
− Geen controle (muren) is een cultuur omslag…
16Voordelen
Efficiënt samenwerken (Agile)− Geen muren
− Geen rollen
Snel van ontwerp naar productie− Veel releases, snel resultaat
− Kleine releases: impact van eventuele fouten klein
− Gehele proces geautomatiseerd: voorspelbaar!
Resultaat− Snel nieuwe functionaliteit op productie
− Weinig risico’s
17Nadelen/uitdagingen
Planning− Zeer dynamische omgeving: De wereld verandert snel!
− Operations is lastig plannen…
Veel afstemming noodzakelijk− Agile (Grooming, Planning, Stand-ups, Demo)
− Coördinatie omgevingen (release coördinator)
− Coördinatie werkzaamheden teams
− Impact fouten bij development/deployment kan snel groot worden
18Leerpunten / aandachtspunten
Van begin af aan goed plannen! (SCRUM poker)
Afstemmen / coördineren niet onderschatten! Tijd voor inplannen.
Vooraf goed nadenken over rollen/autorisaties
Omgevingsbeheer (omgeving coördinator)
Team is verantwoordelijk! Geen controles/muren…
Tot slot: De tester als Linking Pin
19
Development Quality Assurance
Technical Operations
DevOps
20
www.ordina.nl