Continuous Delivery är Continuous Testing

Continuous Delivery (CD) eller Continuous Deployment öppnar upp nya möjligheter för kvalitetssäkring. Möjligheter som tidigare saknats.

CD innebär i praktiken att varje incheckning eller push till master skapar en kedja av händelser där hela produkten byggs, paketeras, enhetstestas, integrationstestas, installeras på testmiljö och systemtestas. Genom en enkel knapptryckning eller helt automatiskt installeras produkten i produktionsmiljön. Går något fel på vägen stannar kedjan. Felen rättas – gör om, gör rätt!

Med användning av CD minskas riskerna för att göra stora fel enormt genom att vi gör många små saker ofta, flera gånger om dagen.

I mer traditionella projekt klumpas ibland tusentals kodförändringar ihop till en färdig produkt innan systemet testas. Många samtidiga förändringar skapar såklart en uppsjö av potentiella felkällor. Felen upptäcks sent och risken för dålig stämning och minskad motivation hos alla i teamet är överhängande. En panikkänsla inför release infinner sig.

Genom att införa CD förändras möjligheterna radikalt. Alla tvingas till automatisering och därmed att bygga bort långsamma och krångliga manuella handhavanden såsom installationer och test av redan implementerad funktionalitet.

Den gamla “legacykoden” säkras och istället för att hitta och laga fel finns mer tid till att implementera ny bra kod som kan kvalitetssäkras på flera olika sätt, till exempel genom TDD, BDD och utforskande tester. Känslan att varje kodföränding genomgår alla tester i kedjan skapar en stor trygghet i teamet och fokus kan hela tiden ligga på att skapa mer värde åt användarna istället för att rätta gamla fel. Frustration har omvandlats till motivation!

Därför kan vi lika gärna kalla Continuous Delivery för Continuous Testing. Det är precis vad vi gör, vi testar allt – hela tiden!