SlideShare a Scribd company logo
Süllyedünk!
Ütközés a tesztelési
jégheggyel
Teszt & Tea
2018. szeptember 11.
Nagy Gáspár
coach • trainer • bdd addict • creator of specflow
“The BDD Books: Discovery” • http://bddbooks.com
@gasparnagy • gaspar@specsolutions.eu
Paramount Pictures/AP
Copyright © Gaspar NagyCopyright © Gaspar Nagy
bdd addict
given.when.then
CAUTION!
on the stage
Nagy Gáspár
coach, trainer and bdd addict
creator of SpecFlow
gaspar@specsolutions.eu
https://specsolutions.eu
@gasparnagy
BigStockPhoto #88880780
A TESZT AUTOMATIZÁLÁSI PIRAMIS
BigStockPhoto #88880780
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Apiramis
MikeCohn,2009
Test Automation Pyramid: Mike Cohn – Succeeding with Agile (idézetek az előadó fordításában)
Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
“Bár az automatizált unit tesztelés
csodálatos, az alkalmazás tesztelési
igényeinek csak egy részét képes lefedni.”
“[…] végeredményben minden más tesztelés
a felhasználói felületen keresztül történik,
ami költségesen futtatható, költségesen
elkészíthető és törékeny teszteket
eredményez.”
“a service-szintű tesztelés tölti ki a lyukat a
unit és a felhasználói felület tesztelés
között ”
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Apiramis
MikeCohn,2009
Test Automation Pyramid: Mike Cohn – Succeeding with Agile
Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Copyright © Gaspar NagyCopyright © Gaspar Nagy
De mi van, ha az én UI tesztjeim nem költségesen
futtathatók, költségesen elkészíthetők és törékenyek…
De mi van, ha az én unit tesztjeimet nem csak a
fejlesztők használják?
És amúgy mi a helyzet a piramison kívüli teszteléssel?
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Egy egész piramis-karnevál
van!
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A tesztelési fagyi
tölcsér
A tesztelési
homokóra
A tesztelési
gyémánt
Copyright © Gaspar NagyCopyright © Gaspar Nagy
happy
path
Egykonkrétfunkció
automatizálttesztjei
Test Automation Pyramid: Mike Cohn – Succeeding with Agile
Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Icecream Photo by Unknown Author is licensed under CC BY-SA
spec
esetTesztelési lyukspec
eset
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Megfelelően jó minőséget akarunk
gyors visszajelzéseken keresztül
és ésszerű költségekkel!
Copyright © Gaspar NagyCopyright © Gaspar Nagy
OK, de…
Mi a megfelelően jó minőség?
MINŐSÉG
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Mi a minőség?
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Source: http://istqbexamcertification.com/what-is-software-quality/
Mi a szoftver minőség – ISTQB
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A szoftver minőséget nem könnyű definiálni…
…de azért mérjük
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A szoftver minőség mérése
• Hibák száma – ellentmondásos: vagy jó a termék vagy rossz a QA
• Tesztek száma – a tesztek megfelelő mennyiségét nehéz meghatározni;
túlteszteléshez vezethet
• Test coverage (pl. programsorok lefedése) – csak gyengén korrelál a minőséggel;
programozók szeretnek (ki)játszani
• Kód metrikák – fontos, de nem elégséges a minőséghez
• Felhasználók által jelzett hibák száma – jó lehetne, csak túl késő
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A minőség a magabiztosságról szól
Talán a legjobb módja a minőség mérésének, ha rendszeresen
megkérdezed a csapatot, hogy érzik…
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Source: https://skillsmatter.com/skillscasts/10695-how-to-fail-with-bdd
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Milyen tesztekre van szükségünk?
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Milyentesztekrevan
szükségünk?
Test Automation Pyramid: Mike Cohn – Succeeding with Agile
Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
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
Működési
• Biztonságos
• Gyors
• Kényelmes
• Szép
Fenntarthatósági
• Architektúra
• Kód minőség
• Integrálhatóság
• Flexibilitás
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Happy
path
Különbözőtípusú
tesztekapiramisban
Test Automation Pyramid: Mike Cohn – Succeeding with Agile
Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Service-UI
connection
Funkcionális
Működési
Fenntarthatósági
Smoke
test
Timeout
handling Edge
case
Method
Argument
check
DB
durab.
Data
variation
Specific
Scenario
Test Plugin
Specific
Scenario
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A unit teszt nem cél, hanem eszköz
Copyright © Gaspar NagyCopyright © Gaspar Nagy
OK, de…
Melyik teszt legyen “BDD*-s”?
Forgatókönyv: A régi PIN kód hibás
Amennyiben az ügyfél régi PIN kódja 1234
És az ügyfél 1111-et adott meg mint régi PIN kód
Ha az ügyfél kéri a PIN kód megváltoztatást
Akkor a PIN kód változtatást el kell utasítani
*BDD (Viselkedés-alapú szoftverfejlesztés): olvasható tesztek
Given-When-Then stílusban (és még sok minden más)
Photo by Eric Welch on Unsplash
A TESZTELÉSI JÉGHEGY
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Funkcionális
Működési
Fenntarthatósági
Funkcionálisteszteka
piramisban
• Source: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Happy
path
Srv-UI
Edge
case
Argument
check
Ext call
timeout
Func1
Func2
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Srv-UI
Funkcionális
Működési
Fenntarthatósági
Edge
case
Argument
check
Ext call
timeout
Source: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Happy
Path
Func1
Func2
Tesztelésijéghegy!
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Srv-UI
Funkcionális
Működési
Fenntarthatósági
Edge
case
Argument
check
Ext call
timeout
Source: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
Happy
Path
Func1
Func2
Többvízszintisvan!
Copyright © Gaspar NagyCopyright © Gaspar Nagy
a UI tesztelése != UI teszt
az integráció tesztelése != integrációs teszt
egy unit tesztelése != unit teszt
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Atesztautomatizálási
prizmaTM Exploratory
Code
Analysis
(security)
Mob
Funkcionális
Működési
Fenntarthatósági
Copyright © Gaspar NagyCopyright © Gaspar Nagy
“Maybe pyramid is not a goal, but a use…”
/Mark Winteringham, @2bittester/
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Photo by Maarten van den Heuvel on Unsplash
TESZTELÉSI STRATÉGIÁK
Copyright © Gaspar NagyCopyright © Gaspar Nagy
A kontextus-függő tesztelési iskola
• A kontextus-függő tesztelési iskola hét alapelve
1. Bármilyen módszer értéke a kontextustól függ.
2. Egy adott kontextusban vannak jó módszerek, de nincsenek általános legjobb módszerek.
3. Az együtt dolgozó emberek képviselik a legnagyobb értéket bármilyen projektben.
4. Projekt részletek változnak ahogy az idő halad, sokszor előreláthatatlan irányokba.
5. A termék egy megoldás. Ha a problémát nem oldja meg a termék nem lesz sikeres.
6. A jó szoftver tesztelés egy kihívásokkal teli intellektuális folyamat
7. A termék hatékony teszteléséhez mindig a megfelelő lépéseket tesszük a megfelelő időben.
Ezeket az egész projekt alatt gyakorolt szakértelem és elemzés segítségével tudjuk
fejleszteni.
Forrás: http://context-driven-testing.com/, előadó fordítása
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#1 – Tesztelési serpenyő (Testing Pan, service-
szintű tesztelés)
• A funkcionális tesztek service/unit szinten
működnek
• „Népszerű választás” az enterprise
appokhoz
• UI manuálisan vagy UI-szintű unit
tesztekkel ellenőrizhető
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#2 – Tesztelési fogkefe (Testing Toothbrush,
service-szintű variációk)
• A funkcionális tesztek UI szinten
működnek, kivéve azok amelyek adat-
variációt igényelnek (pl. keresés,
kalkulációk)
• UI/workflow-igényes alkalmazásoknál
lehet hasznos
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#3 – Tesztelési fésű (Testing Comb,
mintavételezés)
• Minden feature egy-egy esetét (pl. happy
path) UI szinten automatizáljuk, a többit
service/unit szinten
• Komplex, magas rizikófaktorú üzleti logikával
rendelkező alkalmazásoknál lehet hasznos
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#4 – Lehajtható piramis (Foldable Pyramid,
többszinten működtethető tesztek)
• A funkcionális tesztek UI és service szinten is
futtathatók
• Zöldmezős, modern UI-al rendelkező appoknál
lehet hasznos
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#5 – Összecsukható piramis (Collapsible
Pyramid, felgyorsított end-to-end tesztek)
• A lassú külső függőségek/komponensek stubokra
cserélhetők a gyors visszajelzés érdekében
• Hasznos, ha külső függőségek könnyen
stubolhatók
Source: https://xp2018.sched.com/event/E0hs/sub-second-full-stack-acceptance-tests (Aslak Hellesøy)
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#6 – Kézműves fagylalt (Artisan ice-cream, UI
elvárások)
• Az elvárásokat csak a UI szinten lehet kifejezni, gyakran
illusztratív példákkal vagy jóváhagyási tesztekkel
(approval testing)
• Hasznos, ha az elvárások vizuálisak
Source: https://www.slideshare.net/gojkoadzic/painless-visual-testing (Gojko Adzic)
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#7 – Szmogos piramis-város (Smoggy Pyramid
Town, unit tesztek domain tudással)
• A kód csak programozói (uint) tesztekkel vannak
tesztelve (TDD), de a csapat alapos domain
tudással rendelkezik, és be van vonva az üzleti
döntésekbe
• Kis termékfejlesztési csapatoknál lehet hasznos, pl.
startup
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#8 – Piramis eső (Pyramid Rain, végfelhasználói
visszajelzések & DevOps)
• A tesztelési lyukakat intenzív monitorozással és
szupergyors CD rendszerrel kompenzáljuk, gyakran
kanári vagy A/B teszteléssel kombinálják
• Nem-kritikus alkalmazásoknál működhet, amik nagy és
elkötelezett felhasználó-bázissal rendelkeznek
Copyright © Gaspar NagyCopyright © Gaspar Nagy
#9 – Piramisok piramisa (Pyramids of Pyramids,
kihelyezett komponensek)
• A rendszer komponenseit független könyvtárakba,
service-ekbe helyezzük ki amelyek mind saját
tesztelési stratégiával rendelkeznek. Pl.
microservice architektúra. Rendszerszinten „csak” a
komponensek integrálhatóságát kell tesztelni.
• Komplex rendszereknél jöhet jól, amikor a
tesztelendő kombinációk száma túl magas vagy a
tesztek túl sok komponenst érintenek
Copyright © Gaspar NagyCopyright © Gaspar Nagy
Tesztelésistratégiák
Találd meg a saját stratégiád…
…a te saját piramisod!
Nagy Gáspár
coach • trainer • bdd addict • creator of specflow
“The BDD Books: Discovery” • http://bddbooks.com
@gasparnagy • gaspar@specsolutions.eu
Köszönöm!
Copyright © Gaspar NagyCopyright © Gaspar Nagy

More Related Content

Similar to Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018.09.11)

Távoli UX kutatás (ClickTale, Verify)
Távoli UX kutatás (ClickTale, Verify)Távoli UX kutatás (ClickTale, Verify)
Távoli UX kutatás (ClickTale, Verify)
Csaba Varga
 
Budapest.rb 2011/01 - Rails Deployment
Budapest.rb 2011/01 - Rails DeploymentBudapest.rb 2011/01 - Rails Deployment
Budapest.rb 2011/01 - Rails Deployment
Digital Natives
 
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.
 
T systems - agile workshop 1. session
T systems - agile workshop 1. sessionT systems - agile workshop 1. session
T systems - agile workshop 1. session
Péter Lukács
 
Forráskódtárak gráfalapú statikus analízise
Forráskódtárak gráfalapú statikus analíziseForráskódtárak gráfalapú statikus analízise
Forráskódtárak gráfalapú statikus analízise
Dániel Stein
 
A mérnökké válás folyamata
A mérnökké válás folyamataA mérnökké válás folyamata
A mérnökké válás folyamata
waxey.gordon
 
Gonosz IkertestvéRek
Gonosz IkertestvéRekGonosz IkertestvéRek
Gonosz IkertestvéRek
C4M7SX
 
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptxIII. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
Szabolcs Gulyás
 
A produktivitás téveszméje - az agilis a császár új ruhája
A produktivitás téveszméje  - az agilis a császár új ruhájaA produktivitás téveszméje  - az agilis a császár új ruhája
A produktivitás téveszméje - az agilis a császár új ruhája
Andras Bujna
 
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
gazdagf
 
Objektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatbanObjektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatban
Antal Orcsik
 
JavaScript forráskódtárak gráfalapú statikus analízise
JavaScript forráskódtárak gráfalapú statikus analíziseJavaScript forráskódtárak gráfalapú statikus analízise
JavaScript forráskódtárak gráfalapú statikus analízise
Dániel Stein
 
II. Elmélet - ERP rendszerek árazása.pptx
II. Elmélet - ERP rendszerek árazása.pptxII. Elmélet - ERP rendszerek árazása.pptx
II. Elmélet - ERP rendszerek árazása.pptx
Szabolcs Gulyás
 
Hogyan segítenek a felhasználók mobil appot fejleszteni? A crowdtestingről rö...
Hogyan segítenek a felhasználók mobil appot fejleszteni? A crowdtestingről rö...Hogyan segítenek a felhasználók mobil appot fejleszteni? A crowdtestingről rö...
Hogyan segítenek a felhasználók mobil appot fejleszteni? A crowdtestingről rö...
Balázs Fónagy
 

Similar to Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018.09.11) (14)

Távoli UX kutatás (ClickTale, Verify)
Távoli UX kutatás (ClickTale, Verify)Távoli UX kutatás (ClickTale, Verify)
Távoli UX kutatás (ClickTale, Verify)
 
Budapest.rb 2011/01 - Rails Deployment
Budapest.rb 2011/01 - Rails DeploymentBudapest.rb 2011/01 - Rails Deployment
Budapest.rb 2011/01 - Rails Deployment
 
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 ...
 
T systems - agile workshop 1. session
T systems - agile workshop 1. sessionT systems - agile workshop 1. session
T systems - agile workshop 1. session
 
Forráskódtárak gráfalapú statikus analízise
Forráskódtárak gráfalapú statikus analíziseForráskódtárak gráfalapú statikus analízise
Forráskódtárak gráfalapú statikus analízise
 
A mérnökké válás folyamata
A mérnökké válás folyamataA mérnökké válás folyamata
A mérnökké válás folyamata
 
Gonosz IkertestvéRek
Gonosz IkertestvéRekGonosz IkertestvéRek
Gonosz IkertestvéRek
 
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptxIII. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
 
A produktivitás téveszméje - az agilis a császár új ruhája
A produktivitás téveszméje  - az agilis a császár új ruhájaA produktivitás téveszméje  - az agilis a császár új ruhája
A produktivitás téveszméje - az agilis a császár új ruhája
 
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
 
Objektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatbanObjektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatban
 
JavaScript forráskódtárak gráfalapú statikus analízise
JavaScript forráskódtárak gráfalapú statikus analíziseJavaScript forráskódtárak gráfalapú statikus analízise
JavaScript forráskódtárak gráfalapú statikus analízise
 
II. Elmélet - ERP rendszerek árazása.pptx
II. Elmélet - ERP rendszerek árazása.pptxII. Elmélet - ERP rendszerek árazása.pptx
II. Elmélet - ERP rendszerek árazása.pptx
 
Hogyan segítenek a felhasználók mobil appot fejleszteni? A crowdtestingről rö...
Hogyan segítenek a felhasználók mobil appot fejleszteni? A crowdtestingről rö...Hogyan segítenek a felhasználók mobil appot fejleszteni? A crowdtestingről rö...
Hogyan segítenek a felhasználók mobil appot fejleszteni? A crowdtestingről rö...
 

More from Gáspár Nagy

Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
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 Strategy
Gá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 2023
Gá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
 

More from Gáspár Nagy (19)

Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
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)
 

Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018.09.11)

  • 1. Süllyedünk! Ütközés a tesztelési jégheggyel Teszt & Tea 2018. szeptember 11. Nagy Gáspár coach • trainer • bdd addict • creator of specflow “The BDD Books: Discovery” • http://bddbooks.com @gasparnagy • gaspar@specsolutions.eu
  • 3. Copyright © Gaspar NagyCopyright © Gaspar Nagy bdd addict given.when.then CAUTION! on the stage Nagy Gáspár coach, trainer and bdd addict creator of SpecFlow gaspar@specsolutions.eu https://specsolutions.eu @gasparnagy
  • 4. BigStockPhoto #88880780 A TESZT AUTOMATIZÁLÁSI PIRAMIS
  • 6. Copyright © Gaspar NagyCopyright © Gaspar Nagy Apiramis MikeCohn,2009 Test Automation Pyramid: Mike Cohn – Succeeding with Agile (idézetek az előadó fordításában) Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/ “Bár az automatizált unit tesztelés csodálatos, az alkalmazás tesztelési igényeinek csak egy részét képes lefedni.” “[…] végeredményben minden más tesztelés a felhasználói felületen keresztül történik, ami költségesen futtatható, költségesen elkészíthető és törékeny teszteket eredményez.” “a service-szintű tesztelés tölti ki a lyukat a unit és a felhasználói felület tesztelés között ”
  • 7. Copyright © Gaspar NagyCopyright © Gaspar Nagy Apiramis MikeCohn,2009 Test Automation Pyramid: Mike Cohn – Succeeding with Agile Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
  • 8. Copyright © Gaspar NagyCopyright © Gaspar Nagy De mi van, ha az én UI tesztjeim nem költségesen futtathatók, költségesen elkészíthetők és törékenyek… De mi van, ha az én unit tesztjeimet nem csak a fejlesztők használják? És amúgy mi a helyzet a piramison kívüli teszteléssel?
  • 9. Copyright © Gaspar NagyCopyright © Gaspar Nagy Egy egész piramis-karnevál van!
  • 10. Copyright © Gaspar NagyCopyright © Gaspar Nagy A tesztelési fagyi tölcsér A tesztelési homokóra A tesztelési gyémánt
  • 11. Copyright © Gaspar NagyCopyright © Gaspar Nagy happy path Egykonkrétfunkció automatizálttesztjei Test Automation Pyramid: Mike Cohn – Succeeding with Agile Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/ Icecream Photo by Unknown Author is licensed under CC BY-SA spec esetTesztelési lyukspec eset
  • 12. Copyright © Gaspar NagyCopyright © Gaspar Nagy Megfelelően jó minőséget akarunk gyors visszajelzéseken keresztül és ésszerű költségekkel!
  • 13. Copyright © Gaspar NagyCopyright © Gaspar Nagy OK, de… Mi a megfelelően jó minőség?
  • 15. Copyright © Gaspar NagyCopyright © Gaspar Nagy Mi a minőség?
  • 16. Copyright © Gaspar NagyCopyright © Gaspar Nagy Source: http://istqbexamcertification.com/what-is-software-quality/ Mi a szoftver minőség – ISTQB
  • 17. Copyright © Gaspar NagyCopyright © Gaspar Nagy A szoftver minőséget nem könnyű definiálni… …de azért mérjük
  • 18. Copyright © Gaspar NagyCopyright © Gaspar Nagy A szoftver minőség mérése • Hibák száma – ellentmondásos: vagy jó a termék vagy rossz a QA • Tesztek száma – a tesztek megfelelő mennyiségét nehéz meghatározni; túlteszteléshez vezethet • Test coverage (pl. programsorok lefedése) – csak gyengén korrelál a minőséggel; programozók szeretnek (ki)játszani • Kód metrikák – fontos, de nem elégséges a minőséghez • Felhasználók által jelzett hibák száma – jó lehetne, csak túl késő
  • 19. Copyright © Gaspar NagyCopyright © Gaspar Nagy A minőség a magabiztosságról szól Talán a legjobb módja a minőség mérésének, ha rendszeresen megkérdezed a csapatot, hogy érzik…
  • 20. Copyright © Gaspar NagyCopyright © Gaspar Nagy Source: https://skillsmatter.com/skillscasts/10695-how-to-fail-with-bdd
  • 21. Copyright © Gaspar NagyCopyright © Gaspar Nagy Milyen tesztekre van szükségünk?
  • 22. Copyright © Gaspar NagyCopyright © Gaspar Nagy Milyentesztekrevan szükségünk? Test Automation Pyramid: Mike Cohn – Succeeding with Agile Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/
  • 23. 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 Működési • Biztonságos • Gyors • Kényelmes • Szép Fenntarthatósági • Architektúra • Kód minőség • Integrálhatóság • Flexibilitás
  • 24. Copyright © Gaspar NagyCopyright © Gaspar Nagy Happy path Különbözőtípusú tesztekapiramisban Test Automation Pyramid: Mike Cohn – Succeeding with Agile Pic: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/ Service-UI connection Funkcionális Működési Fenntarthatósági Smoke test Timeout handling Edge case Method Argument check DB durab. Data variation Specific Scenario Test Plugin Specific Scenario
  • 25. Copyright © Gaspar NagyCopyright © Gaspar Nagy A unit teszt nem cél, hanem eszköz
  • 26. Copyright © Gaspar NagyCopyright © Gaspar Nagy OK, de… Melyik teszt legyen “BDD*-s”? Forgatókönyv: A régi PIN kód hibás Amennyiben az ügyfél régi PIN kódja 1234 És az ügyfél 1111-et adott meg mint régi PIN kód Ha az ügyfél kéri a PIN kód megváltoztatást Akkor a PIN kód változtatást el kell utasítani *BDD (Viselkedés-alapú szoftverfejlesztés): olvasható tesztek Given-When-Then stílusban (és még sok minden más)
  • 27. Photo by Eric Welch on Unsplash A TESZTELÉSI JÉGHEGY
  • 28. Copyright © Gaspar NagyCopyright © Gaspar Nagy Funkcionális Működési Fenntarthatósági Funkcionálisteszteka piramisban • Source: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/ Happy path Srv-UI Edge case Argument check Ext call timeout Func1 Func2
  • 29. Copyright © Gaspar NagyCopyright © Gaspar Nagy Srv-UI Funkcionális Működési Fenntarthatósági Edge case Argument check Ext call timeout Source: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/ Happy Path Func1 Func2 Tesztelésijéghegy!
  • 30. Copyright © Gaspar NagyCopyright © Gaspar Nagy Srv-UI Funkcionális Működési Fenntarthatósági Edge case Argument check Ext call timeout Source: http://gasparnagy.com/2017/02/balancing-scenarios-and-unit-tests-case-study-with-specflow/ Happy Path Func1 Func2 Többvízszintisvan!
  • 31. Copyright © Gaspar NagyCopyright © Gaspar Nagy a UI tesztelése != UI teszt az integráció tesztelése != integrációs teszt egy unit tesztelése != unit teszt
  • 32. Copyright © Gaspar NagyCopyright © Gaspar Nagy Atesztautomatizálási prizmaTM Exploratory Code Analysis (security) Mob Funkcionális Működési Fenntarthatósági
  • 33. Copyright © Gaspar NagyCopyright © Gaspar Nagy “Maybe pyramid is not a goal, but a use…” /Mark Winteringham, @2bittester/
  • 34. Copyright © Gaspar NagyCopyright © Gaspar Nagy
  • 35. Photo by Maarten van den Heuvel on Unsplash TESZTELÉSI STRATÉGIÁK
  • 36. Copyright © Gaspar NagyCopyright © Gaspar Nagy A kontextus-függő tesztelési iskola • A kontextus-függő tesztelési iskola hét alapelve 1. Bármilyen módszer értéke a kontextustól függ. 2. Egy adott kontextusban vannak jó módszerek, de nincsenek általános legjobb módszerek. 3. Az együtt dolgozó emberek képviselik a legnagyobb értéket bármilyen projektben. 4. Projekt részletek változnak ahogy az idő halad, sokszor előreláthatatlan irányokba. 5. A termék egy megoldás. Ha a problémát nem oldja meg a termék nem lesz sikeres. 6. A jó szoftver tesztelés egy kihívásokkal teli intellektuális folyamat 7. A termék hatékony teszteléséhez mindig a megfelelő lépéseket tesszük a megfelelő időben. Ezeket az egész projekt alatt gyakorolt szakértelem és elemzés segítségével tudjuk fejleszteni. Forrás: http://context-driven-testing.com/, előadó fordítása
  • 37. Copyright © Gaspar NagyCopyright © Gaspar Nagy #1 – Tesztelési serpenyő (Testing Pan, service- szintű tesztelés) • A funkcionális tesztek service/unit szinten működnek • „Népszerű választás” az enterprise appokhoz • UI manuálisan vagy UI-szintű unit tesztekkel ellenőrizhető
  • 38. Copyright © Gaspar NagyCopyright © Gaspar Nagy #2 – Tesztelési fogkefe (Testing Toothbrush, service-szintű variációk) • A funkcionális tesztek UI szinten működnek, kivéve azok amelyek adat- variációt igényelnek (pl. keresés, kalkulációk) • UI/workflow-igényes alkalmazásoknál lehet hasznos
  • 39. Copyright © Gaspar NagyCopyright © Gaspar Nagy #3 – Tesztelési fésű (Testing Comb, mintavételezés) • Minden feature egy-egy esetét (pl. happy path) UI szinten automatizáljuk, a többit service/unit szinten • Komplex, magas rizikófaktorú üzleti logikával rendelkező alkalmazásoknál lehet hasznos
  • 40. Copyright © Gaspar NagyCopyright © Gaspar Nagy #4 – Lehajtható piramis (Foldable Pyramid, többszinten működtethető tesztek) • A funkcionális tesztek UI és service szinten is futtathatók • Zöldmezős, modern UI-al rendelkező appoknál lehet hasznos
  • 41. Copyright © Gaspar NagyCopyright © Gaspar Nagy #5 – Összecsukható piramis (Collapsible Pyramid, felgyorsított end-to-end tesztek) • A lassú külső függőségek/komponensek stubokra cserélhetők a gyors visszajelzés érdekében • Hasznos, ha külső függőségek könnyen stubolhatók Source: https://xp2018.sched.com/event/E0hs/sub-second-full-stack-acceptance-tests (Aslak Hellesøy)
  • 42. Copyright © Gaspar NagyCopyright © Gaspar Nagy #6 – Kézműves fagylalt (Artisan ice-cream, UI elvárások) • Az elvárásokat csak a UI szinten lehet kifejezni, gyakran illusztratív példákkal vagy jóváhagyási tesztekkel (approval testing) • Hasznos, ha az elvárások vizuálisak Source: https://www.slideshare.net/gojkoadzic/painless-visual-testing (Gojko Adzic)
  • 43. Copyright © Gaspar NagyCopyright © Gaspar Nagy #7 – Szmogos piramis-város (Smoggy Pyramid Town, unit tesztek domain tudással) • A kód csak programozói (uint) tesztekkel vannak tesztelve (TDD), de a csapat alapos domain tudással rendelkezik, és be van vonva az üzleti döntésekbe • Kis termékfejlesztési csapatoknál lehet hasznos, pl. startup
  • 44. Copyright © Gaspar NagyCopyright © Gaspar Nagy #8 – Piramis eső (Pyramid Rain, végfelhasználói visszajelzések & DevOps) • A tesztelési lyukakat intenzív monitorozással és szupergyors CD rendszerrel kompenzáljuk, gyakran kanári vagy A/B teszteléssel kombinálják • Nem-kritikus alkalmazásoknál működhet, amik nagy és elkötelezett felhasználó-bázissal rendelkeznek
  • 45. Copyright © Gaspar NagyCopyright © Gaspar Nagy #9 – Piramisok piramisa (Pyramids of Pyramids, kihelyezett komponensek) • A rendszer komponenseit független könyvtárakba, service-ekbe helyezzük ki amelyek mind saját tesztelési stratégiával rendelkeznek. Pl. microservice architektúra. Rendszerszinten „csak” a komponensek integrálhatóságát kell tesztelni. • Komplex rendszereknél jöhet jól, amikor a tesztelendő kombinációk száma túl magas vagy a tesztek túl sok komponenst érintenek
  • 46. Copyright © Gaspar NagyCopyright © Gaspar Nagy Tesztelésistratégiák
  • 47. Találd meg a saját stratégiád… …a te saját piramisod! Nagy Gáspár coach • trainer • bdd addict • creator of specflow “The BDD Books: Discovery” • http://bddbooks.com @gasparnagy • gaspar@specsolutions.eu Köszönöm!
  • 48. Copyright © Gaspar NagyCopyright © Gaspar Nagy