SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Reversed Tests Pyramid

Wiktor Żołnowski
@streser
http://www.agileszkolenia.pl
http://www.codespritners.com
Agile Coach

Troublemaker

Who am I?
Passionate
Can you imagine perfect software?
End to End Tests
Functional/Integration Tests
Unit Tests
It would be perfect to work with perfect
software every day...
But!
Reality...
Is...
Different!
Legacy Code
How did we get to this point?
It's all because of the money...
Technical Debt
Sometimes Technical Debt could be
considered as something good...
Unfortunately the temptation of
easy money is huge...
People live in an illusion of continuous,
fast, low cost software development...
Forgetting about the Quality...
Success in Software Development is something that is
not continuous...
Success is a state that you can achieve but also loose
very quickly if you can't respond to changes
fast enough...
So, is it possible to deal with legacy code?
Reversed Tests Pyramid
End-to-End Tests
Functional/Integration Tests

Unit Tests
- What?!
You can't do unit testing when there are
no units in your software...
You can't do integration tests when
there is nothing to integrate...
You need to refactor your code so it
would be testable...
Now refactor...

High level tests give you courage to refactor your code...
●
But.. There are a few reasons why you shouldn't
reverse tests pyramid

End-To-End tests are too long...
End-to-end tests are difficult (costly) to maintain...
If we need end-to-end tests we are probably doing something
wrong with our architecture...
So it's all about reversing back our
tests pyramid.
Step by step we are introducing
a new architecture...
Remember that creating reversed tests
pyramid and reversing it back will take
some time...
Remember - WHY are we doing this?
Keep your technical debt as low as possible and try to
pay it back every time you can. For example use your
slack time for that!
“Leave the world better then you found it”
Beware of refactoring just for refactoring!

Few final thoughts...
Few final thoughts...
●

●

●

●

●

Beware of refactoring just for refactoring!
Resist temptation to re-write from scratch – history is against you,
such projects usually fail.
Remember to always remove your (duplicated) tests!
Software quality in many cases could be understood as ability to
introduce changes into software!
Keep your technical debt as low as possible and try to pay it back
every time you can. For example use your slack time for that!

Resist temptation to re-write from scratch – history is
against you, such projects usually fail.
Few final thoughts...
●

●

●

●

Beware of refactoring just for refactoring!
Resist temptation to re-write from scratch – history is against you,
such projects usually fail.
Remember to always remove your (duplicated) tests!
Software quality always remove be understood as ability to
Remember to in many cases could your (duplicated) tests!
introduce changes into software!

●

Keep your technical debt as low as possible and try to pay it back
every time you can. For example use your slack time for that!
False positive or false negative safety
net is even worst than
lack of a safety net...
●

Software quality in many cases could be understood as
ability to introduce changes into software!
Wiktor Żołnowski
www.codesprinters.com

Questions?
@streser
http://medium.com/@streser
http://blog.testowka.pl
http://www.agileszkolenia.pl
http://codesprinters.com

Weitere ähnliche Inhalte

Was ist angesagt?

Perth codedojo 5-anagram-algorithm
Perth codedojo 5-anagram-algorithmPerth codedojo 5-anagram-algorithm
Perth codedojo 5-anagram-algorithm
Will Webster
 
Coding dojo 22_05_2013
Coding dojo 22_05_2013Coding dojo 22_05_2013
Coding dojo 22_05_2013
Rodrigo Vieira
 

Was ist angesagt? (20)

top developer mistakes
top developer mistakes top developer mistakes
top developer mistakes
 
Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!
 
AgileTD Scandia: Mob Testing
AgileTD Scandia: Mob TestingAgileTD Scandia: Mob Testing
AgileTD Scandia: Mob Testing
 
Why Java Is Great - Unbiased Perspective!
Why Java Is Great - Unbiased Perspective!Why Java Is Great - Unbiased Perspective!
Why Java Is Great - Unbiased Perspective!
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 
Perth codedojo 5-anagram-algorithm
Perth codedojo 5-anagram-algorithmPerth codedojo 5-anagram-algorithm
Perth codedojo 5-anagram-algorithm
 
Things senior developers should know
Things senior developers should knowThings senior developers should know
Things senior developers should know
 
Dev presentation
Dev presentationDev presentation
Dev presentation
 
Mob testing
Mob testingMob testing
Mob testing
 
Why do you say BDD if it is Cucumber?
Why do you say BDD if it is Cucumber?Why do you say BDD if it is Cucumber?
Why do you say BDD if it is Cucumber?
 
How have we developed product without bugs
How have we developed product without bugsHow have we developed product without bugs
How have we developed product without bugs
 
EuroSTAR Webinar - Mob testing
EuroSTAR Webinar - Mob testingEuroSTAR Webinar - Mob testing
EuroSTAR Webinar - Mob testing
 
Behavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning RORBehavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning ROR
 
Coding dojo 22_05_2013
Coding dojo 22_05_2013Coding dojo 22_05_2013
Coding dojo 22_05_2013
 
Effort estimation
Effort estimationEffort estimation
Effort estimation
 
DevoxxUK: Learning programming through osmosis
DevoxxUK: Learning programming through osmosisDevoxxUK: Learning programming through osmosis
DevoxxUK: Learning programming through osmosis
 
Aspect Oriented Programming (AOP) - A case study in Android
Aspect Oriented Programming (AOP) - A case study in AndroidAspect Oriented Programming (AOP) - A case study in Android
Aspect Oriented Programming (AOP) - A case study in Android
 
This presentation was generated by GPT-3
This presentation was generated by GPT-3This presentation was generated by GPT-3
This presentation was generated by GPT-3
 
Prototype that first
Prototype that first Prototype that first
Prototype that first
 
How to write bad code using C#
How to write bad code using C#How to write bad code using C#
How to write bad code using C#
 

Andere mochten auch

Bdd and Agile Requirements Boiling Frogs 2016
Bdd and Agile Requirements Boiling Frogs 2016Bdd and Agile Requirements Boiling Frogs 2016
Bdd and Agile Requirements Boiling Frogs 2016
Wiktor Żołnowski
 
Bogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowania
Bogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowaniaBogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowania
Bogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowania
Geek Girls Carrots Poznan
 
Scrum and Kanban are not enough - Agile Slovenia 2013
Scrum and Kanban are not enough - Agile Slovenia 2013Scrum and Kanban are not enough - Agile Slovenia 2013
Scrum and Kanban are not enough - Agile Slovenia 2013
Wiktor Żołnowski
 

Andere mochten auch (20)

Continuous Delivery - kolejny krok na drodze do Agile - Quality Excites 2014
Continuous Delivery - kolejny krok na drodze do Agile - Quality Excites 2014Continuous Delivery - kolejny krok na drodze do Agile - Quality Excites 2014
Continuous Delivery - kolejny krok na drodze do Agile - Quality Excites 2014
 
A little bird told me... about a good page in your user guide
A little bird told me... about a good page in your user guideA little bird told me... about a good page in your user guide
A little bird told me... about a good page in your user guide
 
Stickies on the wall will not help you if you are building crappy software
Stickies on the wall will not help you if you are building crappy softwareStickies on the wall will not help you if you are building crappy software
Stickies on the wall will not help you if you are building crappy software
 
Frameworki agilowe w obszarze testow - Monika Braun
Frameworki agilowe w obszarze testow - Monika BraunFrameworki agilowe w obszarze testow - Monika Braun
Frameworki agilowe w obszarze testow - Monika Braun
 
Abe 2012
Abe 2012Abe 2012
Abe 2012
 
Xp days ukraine 2012
Xp days ukraine 2012Xp days ukraine 2012
Xp days ukraine 2012
 
Monika Braun - Agile Test Team
Monika Braun - Agile Test TeamMonika Braun - Agile Test Team
Monika Braun - Agile Test Team
 
Bdd and Agile Requirements Boiling Frogs 2016
Bdd and Agile Requirements Boiling Frogs 2016Bdd and Agile Requirements Boiling Frogs 2016
Bdd and Agile Requirements Boiling Frogs 2016
 
Bogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowania
Bogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowaniaBogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowania
Bogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowania
 
selenium grid & docker
selenium grid & dockerselenium grid & docker
selenium grid & docker
 
Monika Braun - "Tester i frameworki agilowe - rola testera w różnych metodyka...
Monika Braun - "Tester i frameworki agilowe - rola testera w różnych metodyka...Monika Braun - "Tester i frameworki agilowe - rola testera w różnych metodyka...
Monika Braun - "Tester i frameworki agilowe - rola testera w różnych metodyka...
 
Scrum and Kanban are not enough - Agile Slovenia 2013
Scrum and Kanban are not enough - Agile Slovenia 2013Scrum and Kanban are not enough - Agile Slovenia 2013
Scrum and Kanban are not enough - Agile Slovenia 2013
 
Artur Górski - How many defects are left
Artur Górski - How many defects are leftArtur Górski - How many defects are left
Artur Górski - How many defects are left
 
Let's tests! Prezentacja Moniki Braun w trakcie warsztatów "Let's go to IT"
Let's tests! Prezentacja Moniki Braun w trakcie warsztatów "Let's go to IT"Let's tests! Prezentacja Moniki Braun w trakcie warsztatów "Let's go to IT"
Let's tests! Prezentacja Moniki Braun w trakcie warsztatów "Let's go to IT"
 
BDD and Agile Requirements (v 2.1)
BDD and Agile Requirements (v 2.1) BDD and Agile Requirements (v 2.1)
BDD and Agile Requirements (v 2.1)
 
Agileee 2012
Agileee 2012Agileee 2012
Agileee 2012
 
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web ServicesKraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
 
Interoperability Testing
Interoperability TestingInteroperability Testing
Interoperability Testing
 
Bdd and Agile Requirements
Bdd and Agile RequirementsBdd and Agile Requirements
Bdd and Agile Requirements
 
People are awesome - ALE 2014
People are awesome - ALE 2014People are awesome - ALE 2014
People are awesome - ALE 2014
 

Ähnlich wie Sqa days2013

Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
John Choi
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
michaelag1971
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
ZeroTurnaround
 

Ähnlich wie Sqa days2013 (20)

Reversed Tests Pyramid - Agile Prague 2014
Reversed Tests Pyramid - Agile Prague 2014Reversed Tests Pyramid - Agile Prague 2014
Reversed Tests Pyramid - Agile Prague 2014
 
AgilePT'10 - Evolving Software: Five powerful metaphors to explain change
AgilePT'10 - Evolving Software: Five powerful metaphors to explain changeAgilePT'10 - Evolving Software: Five powerful metaphors to explain change
AgilePT'10 - Evolving Software: Five powerful metaphors to explain change
 
Dear compiler please don't be my nanny v2
Dear compiler  please don't be my nanny v2Dear compiler  please don't be my nanny v2
Dear compiler please don't be my nanny v2
 
Agile Development: Key to smart software development
Agile Development: Key to smart software developmentAgile Development: Key to smart software development
Agile Development: Key to smart software development
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patterns
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
 
Investing in a good software factory and automating the build process
Investing in a good software factory and automating the build processInvesting in a good software factory and automating the build process
Investing in a good software factory and automating the build process
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in php
 
Agile Software Development for Non-Developers
Agile Software Development for Non-DevelopersAgile Software Development for Non-Developers
Agile Software Development for Non-Developers
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
 
Software and all that comes with it
Software and all that comes with itSoftware and all that comes with it
Software and all that comes with it
 
CPP01 - Introduction to C++
CPP01 - Introduction to C++CPP01 - Introduction to C++
CPP01 - Introduction to C++
 
Software as a craft (February, 2018)
Software as a craft (February, 2018)Software as a craft (February, 2018)
Software as a craft (February, 2018)
 
Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum
 
Functional Prototyping For Mobile Apps
Functional Prototyping For Mobile AppsFunctional Prototyping For Mobile Apps
Functional Prototyping For Mobile Apps
 
Learning to code in 2020
Learning to code in 2020Learning to code in 2020
Learning to code in 2020
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Sqa days2013