SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Nagy Gáspár
coach • trainer • bdd addict • creator of specflow
@gasparnagy • gaspar@specsolutions.eu
A tesztelés szerepe folyamatos kihelyezést
használó projektekben
Microsoft, DevTools Event • 2017. 06. 12.
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Témák
• Mi is az a folyamatos kihelyezés?
• Mit jelent a minőség?
• Hogyan lehet a minőség biztosítását támogatni Visual Studio 2017 környezettel?
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A te csapatod kihelyez
folyamatosan?
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Folyamatos integráció
(Continuous Integration, CI)
Folyamatos szállítás
(Continuous Delivery, CD)
Folyamatos kihelyezés
(Continuous Deployment, CD)
„éles”
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Folyamatos integráció
(Continuous Integration, CI)
Biztosítja hogy a független feljesztések jól működő egységet alkossanak
• Fájl-szintű konfliktusok feloldása
• Fordíthatóság, kódépítés (build)
• Unit tesztek
• ...
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Folyamatos szállítás
(Continuous Delivery, CD)
Biztosítja hogy az alkalmazás folyamatosan potenciálisan telepíthető/kihelyezhető
állapotban legyen (a kihelyezés manuális folyamat/döntés)
• CI +
• Telepíthetőség (Deployment)
• Automatizált elfogadási tesztek
(Acceptance Tests)
• ...
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Folyamatos kihelyezés
(Continuous Deployment, CD)
Biztosítja hogy az alkalmazás folyamatosan aktuális legyen
• CD +
• Teljesen* automatizált ellenőrzés
• Automatizált nem-funkcionális tesztek
• ...
• Megfelelő környezet (pl. SaaS)
• Magabiztosság
„éles”
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Lehet mindent automatizálni?
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Teljesen* automatizált ellenőrzés a CD-ben
• Nem feltétlenül az a cél, hogy mindent automatizáljunk
• Vannak területek, ahol ez nehezen lehetséges, pl. Usability
• A cél az hogy az automatizált tesztek elég magabiztosságot biztosítsanak a
kihelyezéshez
• A manuális tesztelés folyamatosan dolgozik, és a felmerülő hibákat gyorsan lehet
javítani és a javított változatot kihelyezni
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A folyamatos kihelyezés egy stratégia
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Mit jelent a minőség?
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A minőség a Maslow-piramis alapján (Adzic)
Forrás: https://gojko.net/2012/05/08/redefining-software-quality/
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Minőségi kritériumok egy felosztása
Funkcionális
• Megfelelően
működik
• Megfelelőek az
elvárások
• Dokumentáltak
az elvárások
Használhatósági
• Biztonságos
• Gyors
• Kényelmes
• Szép
Stratégiai
• Architektúra
• Kód minőség
• Integrálhatóság
• Flexibilitás
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A SpecFlow, nyílt forráskódú eszközzel
BDD = Behavior Driven Development (Viselkedés-alapú
szoftverfejlesztés)
Demo: BDD-stílusú funkcionális
tesztek
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Funkcionális tesztelés Visual Studio 2017
környezetben
• Funkcionális tesztelésnél a tesztek leírása, érthetősége kiemelt jelentőségű
• A tesztek jelentik a specifikációt („Executable Specification”)
• A funkcionális tesztek legtöbbször komplex integrációs tesztek
• A tesztek megvalósításához „unit” teszt rendszereket használhatunk, amelyek az
adapter infrastruktúrán keresztül beépülnek a Visual Studio-ba és a TFS/VSTS-be
• Az adapter infrastruktúra lehetőséget ad a teszt definíciók tágabb értelmezésére,
lásd SpecFlow
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A Visual Studio 2017 (Enterprise) Web Load & Performance Testing
infrastruktúra használatával
Demo: Webes teljesítmény
tesztek
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Webes teljesítmény tesztek
• Automatizált teljesítmény tesztekkel biztosítani lehet a megfelelő sebességet
• A folyamatosan futtatott teljesítmény tesztek segítenek idejében kiszűrni az olyan
módosításokat, amelyek rontják a teljesítményt
• A teljesítmény tesztek nem funkcionális tesztek: kevés, megfelelő fókuszú
teljesítmény teszt tud leginkább hatékony lenni
• Kis fifikával a funkcionális tesztjeinkből is nyerhetünk ki teljesítmény adatokat:
mérjük és naplózzuk az „act” („when”) időket!
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Kód lefedettség (Code Coverage)
Kód metrikák (Code Metrics)
Kód analizáció (Code Analysis)
Folyamatos tesztfuttatás (Live Testing)
Demo: Stratégiai minőség
biztosításának eszközei VS2017-ben
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Kód lefedettség (Code Coverage)
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Kód metrikák (Code Metrics)
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Kód analizáció (Code Analysis)
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Folyamatos tesztfuttatás (Live Testing)
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Stratégiai minőség biztosításának eszközei
• A stratégiai minőséget sokféle módon lehet (és kell) biztosítani
• A legfontosabb a megfelelő csapat-kultúra kialakítása és a szakmai támogatás
• A Visual Studio eszközei ehhez adhatnak támogatást – különösen ha
automatizáltan beépülnek az integrációs folyamatba
• Kód lefedettség (Code Coverage) – felderíthetőek a „fehér foltok”, program vagy teszt hibák
• Kód metrikák (Code Metrics) – visszajelzést haphatunk a kód általános állapotáról, hot-
spotjairól
• Kód analizáció (Code Analysis) – általános, és csapat-szintű konvenciók, szabályok betartását
ellenőrizhetjük
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A Unit teszt vajon mi?
Copyright © Gaspar NagyCopyright © Gaspar Nagy
bddaddict.com
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Forrás: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Scenario
Srv-UI
Funkcionális
Használhatósági
Stratégiai
Edge
case
Argument
check
Ext call
timeout
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A unit teszt nem cél, hanem eszköz
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Funkcionális
Használhatósági
Stratégiai
Scenario
Srv-UI
Edge
case
Argument
check
Ext call
timeout
Forrás: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Scenario
Srv-UI
Funkcionális
Használhatósági
Stratégiai
Edge
case
Argument
check
Ext call
timeout
Forrás: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Útravaló
• A folyamatos kihelyezés egy stratégia, amelynek segítségével a teljes feljelsztési
folyamat stabilabbá és hosszú távon is fentarthatóvá tehető
• A folyamatos kihelyezés egyik alappillére a minőség automatizált biztosítása
• A minőségbiztosítás a fejlesztési kultúra kialakításánál kezdődik, de a fejlesztői és
alkalmazás-életciklus kezelő rendszerek hatékonyan tudják ezt támogatni
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Tesztelés támogatása Visual Studio 2017
segítségével
Funkcionális
• Unit teszt
rendszerek
• Teszt adapter
infrastruktúra
• Integrált specifikus
tesztrendszerek,
mint pl. SpecFlow
Használhatósági
• Web Load &
Performance
Testing
• TFS/VSTS Scripted
Tests
• TFS/VSTS
Exploratory
Testing
Stratégiai
• Code Coverage
• Code Metrics
• Code Analysis
• Live Tesing
Nagy Gáspár
coach • trainer • bdd addict • creator of specflow
@gasparnagy • gaspar@specsolutions.eu
Kérdések?
Copyright © Gaspar NagyCopyright © Gaspar Nagy

Contenu connexe

Similaire à A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, DevTools Event, 2017.06.12.)

XXI. századi szoftverfejlesztés
XXI. századi szoftverfejlesztésXXI. századi szoftverfejlesztés
XXI. századi szoftverfejlesztésGyörgy Balássy
 
Közösségben fejlődni versenyelőny - Az Oriana partnerség előnyei
Közösségben fejlődni versenyelőny - Az Oriana partnerség előnyeiKözösségben fejlődni versenyelőny - Az Oriana partnerség előnyei
Közösségben fejlődni versenyelőny - Az Oriana partnerség előnyeiOriana
 
Ügyfélközpontú gondolkodás, csapatközpontú átalakulás
Ügyfélközpontú gondolkodás, csapatközpontú átalakulásÜgyfélközpontú gondolkodás, csapatközpontú átalakulás
Ügyfélközpontú gondolkodás, csapatközpontú átalakulásAutSoft Ltd
 
Virtuális Platformváltás validált környezetben
Virtuális Platformváltás validált környezetbenVirtuális Platformváltás validált környezetben
Virtuális Platformváltás validált környezetbengazdagf
 
AGILIS / SCRUM fejlesztés
AGILIS / SCRUM fejlesztésAGILIS / SCRUM fejlesztés
AGILIS / SCRUM fejlesztésOpen Academy
 
Elmű émász tm projekt_koncepció_ ambrus attila_140410
Elmű émász tm projekt_koncepció_ ambrus attila_140410Elmű émász tm projekt_koncepció_ ambrus attila_140410
Elmű émász tm projekt_koncepció_ ambrus attila_140410Tibor Gyulay
 
Dr. Kollár Csaba: Az informatika(i biztonság) mutatószámai
Dr. Kollár Csaba: Az informatika(i biztonság) mutatószámai Dr. Kollár Csaba: Az informatika(i biztonság) mutatószámai
Dr. Kollár Csaba: Az informatika(i biztonság) mutatószámai Csaba KOLLAR (Dr. PhD.)
 
T systems - agile workshop 1. session
T systems - agile workshop 1. sessionT systems - agile workshop 1. session
T systems - agile workshop 1. sessionPéter Lukács
 
Béla, mi élesedett tulajdonképpen? A request to release koncepció mire is ad ...
Béla, mi élesedett tulajdonképpen? A request to release koncepció mire is ad ...Béla, mi élesedett tulajdonképpen? A request to release koncepció mire is ad ...
Béla, mi élesedett tulajdonképpen? A request to release koncepció mire is ad ...META-INF Kft.
 
A sokszínű design thinking csapat előnyei
A sokszínű design thinking csapat előnyeiA sokszínű design thinking csapat előnyei
A sokszínű design thinking csapat előnyeidanieljuhasz
 
Élményarchitektúra J.J. Garrett nyomán
Élményarchitektúra J.J. Garrett nyománÉlményarchitektúra J.J. Garrett nyomán
Élményarchitektúra J.J. Garrett nyománMihály Minkó
 
[Hungarian] Sysgenic Introduction - Sapientia University
[Hungarian] Sysgenic Introduction - Sapientia University[Hungarian] Sysgenic Introduction - Sapientia University
[Hungarian] Sysgenic Introduction - Sapientia UniversityZoltan Iszlai
 
BME - Szakdolgozat (2014)
BME - Szakdolgozat (2014)BME - Szakdolgozat (2014)
BME - Szakdolgozat (2014)Csaba Szabó
 
Fejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanFejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanPal Vojacsek
 
Oriana Flyer HUN
Oriana Flyer HUNOriana Flyer HUN
Oriana Flyer HUNOriana
 

Similaire à A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, DevTools Event, 2017.06.12.) (20)

XXI. századi szoftverfejlesztés
XXI. századi szoftverfejlesztésXXI. századi szoftverfejlesztés
XXI. századi szoftverfejlesztés
 
Közösségben fejlődni versenyelőny - Az Oriana partnerség előnyei
Közösségben fejlődni versenyelőny - Az Oriana partnerség előnyeiKözösségben fejlődni versenyelőny - Az Oriana partnerség előnyei
Közösségben fejlődni versenyelőny - Az Oriana partnerség előnyei
 
Frontend fejlesztő
Frontend fejlesztőFrontend fejlesztő
Frontend fejlesztő
 
Egyedi cégre szabott üzleti szoftver
Egyedi cégre szabott üzleti szoftverEgyedi cégre szabott üzleti szoftver
Egyedi cégre szabott üzleti szoftver
 
Budapest.rb 201010
Budapest.rb 201010Budapest.rb 201010
Budapest.rb 201010
 
CMMI
CMMICMMI
CMMI
 
Ügyfélközpontú gondolkodás, csapatközpontú átalakulás
Ügyfélközpontú gondolkodás, csapatközpontú átalakulásÜgyfélközpontú gondolkodás, csapatközpontú átalakulás
Ügyfélközpontú gondolkodás, csapatközpontú átalakulás
 
Webkonf 2013
Webkonf 2013Webkonf 2013
Webkonf 2013
 
Virtuális Platformváltás validált környezetben
Virtuális Platformváltás validált környezetbenVirtuális Platformváltás validált környezetben
Virtuális Platformváltás validált környezetben
 
AGILIS / SCRUM fejlesztés
AGILIS / SCRUM fejlesztésAGILIS / SCRUM fejlesztés
AGILIS / SCRUM fejlesztés
 
Elmű émász tm projekt_koncepció_ ambrus attila_140410
Elmű émász tm projekt_koncepció_ ambrus attila_140410Elmű émász tm projekt_koncepció_ ambrus attila_140410
Elmű émász tm projekt_koncepció_ ambrus attila_140410
 
Dr. Kollár Csaba: Az informatika(i biztonság) mutatószámai
Dr. Kollár Csaba: Az informatika(i biztonság) mutatószámai Dr. Kollár Csaba: Az informatika(i biztonság) mutatószámai
Dr. Kollár Csaba: Az informatika(i biztonság) mutatószámai
 
T systems - agile workshop 1. session
T systems - agile workshop 1. sessionT systems - agile workshop 1. session
T systems - agile workshop 1. session
 
Béla, mi élesedett tulajdonképpen? A request to release koncepció mire is ad ...
Béla, mi élesedett tulajdonképpen? A request to release koncepció mire is ad ...Béla, mi élesedett tulajdonképpen? A request to release koncepció mire is ad ...
Béla, mi élesedett tulajdonképpen? A request to release koncepció mire is ad ...
 
A sokszínű design thinking csapat előnyei
A sokszínű design thinking csapat előnyeiA sokszínű design thinking csapat előnyei
A sokszínű design thinking csapat előnyei
 
Élményarchitektúra J.J. Garrett nyomán
Élményarchitektúra J.J. Garrett nyománÉlményarchitektúra J.J. Garrett nyomán
Élményarchitektúra J.J. Garrett nyomán
 
[Hungarian] Sysgenic Introduction - Sapientia University
[Hungarian] Sysgenic Introduction - Sapientia University[Hungarian] Sysgenic Introduction - Sapientia University
[Hungarian] Sysgenic Introduction - Sapientia University
 
BME - Szakdolgozat (2014)
BME - Szakdolgozat (2014)BME - Szakdolgozat (2014)
BME - Szakdolgozat (2014)
 
Fejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanFejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorban
 
Oriana Flyer HUN
Oriana Flyer HUNOriana Flyer HUN
Oriana Flyer HUN
 

Plus de Gáspár Nagy

BDD Scenarios in a Testing Strategy
BDD Scenarios in a Testing StrategyBDD Scenarios in a Testing Strategy
BDD Scenarios in a Testing StrategyGáspár Nagy
 
Ramp up your testing solution, ExpoQA 2023
Ramp up your testing solution, ExpoQA 2023Ramp up your testing solution, ExpoQA 2023
Ramp up your testing solution, ExpoQA 2023Gáspár Nagy
 
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)Gáspár Nagy
 
Fighting against technical debt (CukenFest 2020)
Fighting against technical debt (CukenFest 2020)Fighting against technical debt (CukenFest 2020)
Fighting against technical debt (CukenFest 2020)Gáspár Nagy
 
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...Gáspár Nagy
 
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)Gáspár Nagy
 
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)Gáspár Nagy
 
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)Gáspár Nagy
 
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)Gáspár Nagy
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...Gáspár Nagy
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Gáspár Nagy
 
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)Gáspár Nagy
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...Gáspár Nagy
 
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...Gáspár Nagy
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Gáspár Nagy
 
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...Gáspár Nagy
 
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)Gáspár Nagy
 
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Gáspár Nagy
 

Plus de Gáspár Nagy (18)

BDD Scenarios in a Testing Strategy
BDD Scenarios in a Testing StrategyBDD Scenarios in a Testing Strategy
BDD Scenarios in a Testing Strategy
 
Ramp up your testing solution, ExpoQA 2023
Ramp up your testing solution, ExpoQA 2023Ramp up your testing solution, ExpoQA 2023
Ramp up your testing solution, ExpoQA 2023
 
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
 
Fighting against technical debt (CukenFest 2020)
Fighting against technical debt (CukenFest 2020)Fighting against technical debt (CukenFest 2020)
Fighting against technical debt (CukenFest 2020)
 
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
 
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
 
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
 
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
 
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
 
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
 
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
 
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
 
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
 
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
 

A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, DevTools Event, 2017.06.12.)

  • 1. Nagy Gáspár coach • trainer • bdd addict • creator of specflow @gasparnagy • gaspar@specsolutions.eu A tesztelés szerepe folyamatos kihelyezést használó projektekben Microsoft, DevTools Event • 2017. 06. 12.
  • 2. Copyright © Gaspar NagyCopyright © Gaspar Nagy Témák • Mi is az a folyamatos kihelyezés? • Mit jelent a minőség? • Hogyan lehet a minőség biztosítását támogatni Visual Studio 2017 környezettel?
  • 3. Copyright © Gaspar NagyCopyright © Gaspar Nagy A te csapatod kihelyez folyamatosan?
  • 4. Copyright © Gaspar NagyCopyright © Gaspar Nagy Folyamatos integráció (Continuous Integration, CI) Folyamatos szállítás (Continuous Delivery, CD) Folyamatos kihelyezés (Continuous Deployment, CD) „éles”
  • 5. Copyright © Gaspar NagyCopyright © Gaspar Nagy Folyamatos integráció (Continuous Integration, CI) Biztosítja hogy a független feljesztések jól működő egységet alkossanak • Fájl-szintű konfliktusok feloldása • Fordíthatóság, kódépítés (build) • Unit tesztek • ...
  • 6. Copyright © Gaspar NagyCopyright © Gaspar Nagy Folyamatos szállítás (Continuous Delivery, CD) Biztosítja hogy az alkalmazás folyamatosan potenciálisan telepíthető/kihelyezhető állapotban legyen (a kihelyezés manuális folyamat/döntés) • CI + • Telepíthetőség (Deployment) • Automatizált elfogadási tesztek (Acceptance Tests) • ...
  • 7. Copyright © Gaspar NagyCopyright © Gaspar Nagy Folyamatos kihelyezés (Continuous Deployment, CD) Biztosítja hogy az alkalmazás folyamatosan aktuális legyen • CD + • Teljesen* automatizált ellenőrzés • Automatizált nem-funkcionális tesztek • ... • Megfelelő környezet (pl. SaaS) • Magabiztosság „éles”
  • 8. Copyright © Gaspar NagyCopyright © Gaspar Nagy Lehet mindent automatizálni?
  • 9. Copyright © Gaspar NagyCopyright © Gaspar Nagy Teljesen* automatizált ellenőrzés a CD-ben • Nem feltétlenül az a cél, hogy mindent automatizáljunk • Vannak területek, ahol ez nehezen lehetséges, pl. Usability • A cél az hogy az automatizált tesztek elég magabiztosságot biztosítsanak a kihelyezéshez • A manuális tesztelés folyamatosan dolgozik, és a felmerülő hibákat gyorsan lehet javítani és a javított változatot kihelyezni
  • 10. Copyright © Gaspar NagyCopyright © Gaspar Nagy A folyamatos kihelyezés egy stratégia
  • 11. Copyright © Gaspar NagyCopyright © Gaspar Nagy Mit jelent a minőség?
  • 12. Copyright © Gaspar NagyCopyright © Gaspar Nagy A minőség a Maslow-piramis alapján (Adzic) Forrás: https://gojko.net/2012/05/08/redefining-software-quality/
  • 13. Copyright © Gaspar NagyCopyright © Gaspar Nagy Minőségi kritériumok egy felosztása Funkcionális • Megfelelően működik • Megfelelőek az elvárások • Dokumentáltak az elvárások Használhatósági • Biztonságos • Gyors • Kényelmes • Szép Stratégiai • Architektúra • Kód minőség • Integrálhatóság • Flexibilitás
  • 14. Copyright © Gaspar NagyCopyright © Gaspar Nagy A SpecFlow, nyílt forráskódú eszközzel BDD = Behavior Driven Development (Viselkedés-alapú szoftverfejlesztés) Demo: BDD-stílusú funkcionális tesztek
  • 15. Copyright © Gaspar NagyCopyright © Gaspar Nagy Funkcionális tesztelés Visual Studio 2017 környezetben • Funkcionális tesztelésnél a tesztek leírása, érthetősége kiemelt jelentőségű • A tesztek jelentik a specifikációt („Executable Specification”) • A funkcionális tesztek legtöbbször komplex integrációs tesztek • A tesztek megvalósításához „unit” teszt rendszereket használhatunk, amelyek az adapter infrastruktúrán keresztül beépülnek a Visual Studio-ba és a TFS/VSTS-be • Az adapter infrastruktúra lehetőséget ad a teszt definíciók tágabb értelmezésére, lásd SpecFlow
  • 16. Copyright © Gaspar NagyCopyright © Gaspar Nagy A Visual Studio 2017 (Enterprise) Web Load & Performance Testing infrastruktúra használatával Demo: Webes teljesítmény tesztek
  • 17. Copyright © Gaspar NagyCopyright © Gaspar Nagy
  • 18. Copyright © Gaspar NagyCopyright © Gaspar Nagy Webes teljesítmény tesztek • Automatizált teljesítmény tesztekkel biztosítani lehet a megfelelő sebességet • A folyamatosan futtatott teljesítmény tesztek segítenek idejében kiszűrni az olyan módosításokat, amelyek rontják a teljesítményt • A teljesítmény tesztek nem funkcionális tesztek: kevés, megfelelő fókuszú teljesítmény teszt tud leginkább hatékony lenni • Kis fifikával a funkcionális tesztjeinkből is nyerhetünk ki teljesítmény adatokat: mérjük és naplózzuk az „act” („when”) időket!
  • 19. Copyright © Gaspar NagyCopyright © Gaspar Nagy Kód lefedettség (Code Coverage) Kód metrikák (Code Metrics) Kód analizáció (Code Analysis) Folyamatos tesztfuttatás (Live Testing) Demo: Stratégiai minőség biztosításának eszközei VS2017-ben
  • 20. Copyright © Gaspar NagyCopyright © Gaspar Nagy Kód lefedettség (Code Coverage)
  • 21. Copyright © Gaspar NagyCopyright © Gaspar Nagy Kód metrikák (Code Metrics)
  • 22. Copyright © Gaspar NagyCopyright © Gaspar Nagy Kód analizáció (Code Analysis)
  • 23. Copyright © Gaspar NagyCopyright © Gaspar Nagy Folyamatos tesztfuttatás (Live Testing)
  • 24. Copyright © Gaspar NagyCopyright © Gaspar Nagy Stratégiai minőség biztosításának eszközei • A stratégiai minőséget sokféle módon lehet (és kell) biztosítani • A legfontosabb a megfelelő csapat-kultúra kialakítása és a szakmai támogatás • A Visual Studio eszközei ehhez adhatnak támogatást – különösen ha automatizáltan beépülnek az integrációs folyamatba • Kód lefedettség (Code Coverage) – felderíthetőek a „fehér foltok”, program vagy teszt hibák • Kód metrikák (Code Metrics) – visszajelzést haphatunk a kód általános állapotáról, hot- spotjairól • Kód analizáció (Code Analysis) – általános, és csapat-szintű konvenciók, szabályok betartását ellenőrizhetjük
  • 25. Copyright © Gaspar NagyCopyright © Gaspar Nagy A Unit teszt vajon mi?
  • 26. Copyright © Gaspar NagyCopyright © Gaspar Nagy bddaddict.com
  • 27. Copyright © Gaspar NagyCopyright © Gaspar Nagy Forrás: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/ Scenario Srv-UI Funkcionális Használhatósági Stratégiai Edge case Argument check Ext call timeout
  • 28. Copyright © Gaspar NagyCopyright © Gaspar Nagy A unit teszt nem cél, hanem eszköz
  • 29. Copyright © Gaspar NagyCopyright © Gaspar Nagy Funkcionális Használhatósági Stratégiai Scenario Srv-UI Edge case Argument check Ext call timeout Forrás: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
  • 30. Copyright © Gaspar NagyCopyright © Gaspar Nagy Scenario Srv-UI Funkcionális Használhatósági Stratégiai Edge case Argument check Ext call timeout Forrás: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
  • 31. Copyright © Gaspar NagyCopyright © Gaspar Nagy Útravaló • A folyamatos kihelyezés egy stratégia, amelynek segítségével a teljes feljelsztési folyamat stabilabbá és hosszú távon is fentarthatóvá tehető • A folyamatos kihelyezés egyik alappillére a minőség automatizált biztosítása • A minőségbiztosítás a fejlesztési kultúra kialakításánál kezdődik, de a fejlesztői és alkalmazás-életciklus kezelő rendszerek hatékonyan tudják ezt támogatni
  • 32. Copyright © Gaspar NagyCopyright © Gaspar Nagy Tesztelés támogatása Visual Studio 2017 segítségével Funkcionális • Unit teszt rendszerek • Teszt adapter infrastruktúra • Integrált specifikus tesztrendszerek, mint pl. SpecFlow Használhatósági • Web Load & Performance Testing • TFS/VSTS Scripted Tests • TFS/VSTS Exploratory Testing Stratégiai • Code Coverage • Code Metrics • Code Analysis • Live Tesing
  • 33. Nagy Gáspár coach • trainer • bdd addict • creator of specflow @gasparnagy • gaspar@specsolutions.eu Kérdések?
  • 34. Copyright © Gaspar NagyCopyright © Gaspar Nagy