SlideShare a Scribd company logo
The Testing Strategy


   Domenico Musto

     2012 October
Who am I?




25/10/12     www.agiletour.com
About me




25/10/12    www.agiletour.com
Not about me




25/10/12      www.agiletour.com
What do I do?
                        C#
           .NET                       Team leading
                        Web                 REST
    Ruby
  Automation Testing                                 Agile

            @mimmozzo                  domenico.musto@gmail.com
25/10/12                www.agiletour.com
Today we talk about..
• Differences between types of tests
• Tests and developers
• Tests and QA




25/10/12           www.agiletour.com
..we don't talk about..
• Testing frameworks
• Libraries




25/10/12           www.agiletour.com
The Agile Testing Quadrant




25/10/12         www.agiletour.com
Technology facing




25/10/12        www.agiletour.com
Types of tests
•   Unit
•   Functional
•   Load
•   Soak




25/10/12             www.agiletour.com
Unit tests
•   They test units of code in isolation
•   Interaction between components
•   Describe the behaviour
•   Drive the design
•   Fast execution




25/10/12              www.agiletour.com
Be careful
• Test just public interfaces
• Do not abuse of mocking




25/10/12            www.agiletour.com
Adding a new class is not the trigger for a new test.
The trigger is the implementation of a new requirement.




25/10/12              www.agiletour.com
Functional tests
• They test the interaction with components
  outside the context of our application
• They assure integration
• They might be slow




25/10/12            www.agiletour.com
public class When_getting_an_object_from_the_db
{
    static int _objectId;
    static DbWrapper _sut;
    static object _object;

    Establish that_there_is_an_object = ()=>
    {
        _objectId = 100;
        ManuallyAddAnObjectInTheDb(_objectId);
    }
    Because we_get_the_object = ()=> _object = _sut.Get(_objectId);
    It should_get_the_object = ()=> _object.ShouldNotBeNull();
}


25/10/12                         www.agiletour.com
public class When_storing_an_object_in_the_db
{
    static int _objectId;
    static DbWrapper _sut;
    static object _object;

    Establish we_have_an_object_to_save = ()=>
    {
        _objectId = 100;
    }
    Because we_save_the_object = ()=> _object = _sut.Save(_objectId);
    It should_store_the_object = ()=> _sut.Get(_objectId).ShouldNotBeNull();
}



25/10/12                         www.agiletour.com
Be careful
• Do not mix tests
• Use context builders for data fixture




25/10/12            www.agiletour.com
Load tests
•   Feedback on performance
•   Feedback on volume limit
•   Complicated to write
•   Slow execution




25/10/12           www.agiletour.com
Soak tests
• Discover technologic issues
• Slow execution




25/10/12          www.agiletour.com
Business facing




25/10/12       www.agiletour.com
Types of tests
• End to end
• Integration
• Exploratory




25/10/12            www.agiletour.com
End to end tests
•   They test the whole scope of a feature
•   They are acceptance tests
•   Understandable from non-techincal persons
•   Slow execution




25/10/12            www.agiletour.com
They are not (only) interface tests.




25/10/12               www.agiletour.com
Integration tests
      when the end to end aren't brave enough
• They test pieces of the application
• They test the integration
• Slow execution




25/10/12             www.agiletour.com
Exploratory tests
• Manual
• Look for feature limit




25/10/12            www.agiletour.com
Let's implement a feature




25/10/12          www.agiletour.com
The actors of the development process

• Developers
• QA
• Customer




25/10/12                 www.agiletour.com
The story

   As a user of huddle I would like to add comments to
     tasks to collaborate better with my colleagues




25/10/12               www.agiletour.com
25/10/12   www.agiletour.com
25/10/12   www.agiletour.com
25/10/12   www.agiletour.com
25/10/12   www.agiletour.com
25/10/12   www.agiletour.com
df




25/10/12   www.agiletour.com
The feature is ready




25/10/12        www.agiletour.com
25/10/12   www.agiletour.com
What about the tests ?!?!?!




25/10/12            www.agiletour.com
25/10/12   www.agiletour.com
When do I need to do end to end tests ?




25/10/12                  www.agiletour.com
Test plan




25/10/12    www.agiletour.com
25/10/12   www.agiletour.com
25/10/12   www.agiletour.com
Test plan
•   Acceptance tests
•   Functional tests
•   Integration tests
•   Unit tests




25/10/12                www.agiletour.com
25/10/12   www.agiletour.com
Trade-off




25/10/12    www.agiletour.com
Quality attributes
•   Availability
•   Modifiability
•   Performance
•   Security

• Testability
• Usability


25/10/12            www.agiletour.com
The test pyramid




25/10/12        www.agiletour.com
QA Team




25/10/12    www.agiletour.com
QA Team




25/10/12    www.agiletour.com
QAs are part of the dev team




25/10/12          www.agiletour.com
The reputation of the tests, of the build server and of
             the development environment




25/10/12                www.agiletour.com
The deployment




25/10/12       www.agiletour.com
25/10/12   www.agiletour.com
Thanks. Q&A



           @mimmozzo                 domenico.musto@gmail.com



25/10/12               www.agiletour.com

More Related Content

What's hot

Quality comes free with open source testing tools
Quality comes free with open source testing toolsQuality comes free with open source testing tools
Quality comes free with open source testing tools
Steven Mak
 
A Taste of TDD: The basics of TDD, why it is hard and how to do it better
A Taste of TDD: The basics of TDD, why it is hard and how to do it betterA Taste of TDD: The basics of TDD, why it is hard and how to do it better
A Taste of TDD: The basics of TDD, why it is hard and how to do it better
John McCaffrey
 
QA Fest 2017. Влада Бенюх.Организация End-to-End тестирования в cross-integra...
QA Fest 2017. Влада Бенюх.Организация End-to-End тестирования в cross-integra...QA Fest 2017. Влада Бенюх.Организация End-to-End тестирования в cross-integra...
QA Fest 2017. Влада Бенюх.Организация End-to-End тестирования в cross-integra...
QAFest
 
Hardening
HardeningHardening
Hardening
Diego Pacheco
 
C++ Testing Techniques Tips and Tricks - C++ London
C++ Testing Techniques Tips and Tricks - C++ LondonC++ Testing Techniques Tips and Tricks - C++ London
C++ Testing Techniques Tips and Tricks - C++ London
Clare Macrae
 
Protractor: Tips & Tricks
Protractor: Tips & TricksProtractor: Tips & Tricks
Protractor: Tips & Tricks
Sergey Bolshchikov
 

What's hot (6)

Quality comes free with open source testing tools
Quality comes free with open source testing toolsQuality comes free with open source testing tools
Quality comes free with open source testing tools
 
A Taste of TDD: The basics of TDD, why it is hard and how to do it better
A Taste of TDD: The basics of TDD, why it is hard and how to do it betterA Taste of TDD: The basics of TDD, why it is hard and how to do it better
A Taste of TDD: The basics of TDD, why it is hard and how to do it better
 
QA Fest 2017. Влада Бенюх.Организация End-to-End тестирования в cross-integra...
QA Fest 2017. Влада Бенюх.Организация End-to-End тестирования в cross-integra...QA Fest 2017. Влада Бенюх.Организация End-to-End тестирования в cross-integra...
QA Fest 2017. Влада Бенюх.Организация End-to-End тестирования в cross-integra...
 
Hardening
HardeningHardening
Hardening
 
C++ Testing Techniques Tips and Tricks - C++ London
C++ Testing Techniques Tips and Tricks - C++ LondonC++ Testing Techniques Tips and Tricks - C++ London
C++ Testing Techniques Tips and Tricks - C++ London
 
Protractor: Tips & Tricks
Protractor: Tips & TricksProtractor: Tips & Tricks
Protractor: Tips & Tricks
 

Similar to The Testing Strategy

Unit Testing - Calgary .NET User Group - Nov 26 2014 - Depth Consulting
Unit Testing -  Calgary .NET User Group - Nov 26 2014 - Depth ConsultingUnit Testing -  Calgary .NET User Group - Nov 26 2014 - Depth Consulting
Unit Testing - Calgary .NET User Group - Nov 26 2014 - Depth Consulting
Dave White
 
QA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael HallQA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael Hall
Synerzip
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Mike McGarr
 
Agile Testing 2020
Agile Testing 2020Agile Testing 2020
Agile Testing 2020
arzu TR
 
Improving the Design of Existing Software
Improving the Design of Existing SoftwareImproving the Design of Existing Software
Improving the Design of Existing Software
Steven Smith
 
QA Role in Agile Teams
QA Role in Agile Teams QA Role in Agile Teams
QA Role in Agile Teams
Synerzip
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
Mike Douglas
 
Testing the Untestable
Testing the UntestableTesting the Untestable
Testing the Untestable
Mark Baker
 
Continuous Delivery & Testing Madrid AfterTest
Continuous Delivery & Testing Madrid AfterTestContinuous Delivery & Testing Madrid AfterTest
Continuous Delivery & Testing Madrid AfterTest
Peter Marshall
 
Test Automation Frameworks: Assumptions, Concepts & Tools
Test Automation Frameworks: Assumptions, Concepts & ToolsTest Automation Frameworks: Assumptions, Concepts & Tools
Test Automation Frameworks: Assumptions, Concepts & Tools
Amit Rawat
 
CNUG TDD June 2014
CNUG TDD June 2014CNUG TDD June 2014
CNUG TDD June 2014
Mayank Srivastava
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
Siva Arunachalam
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDD
Dhaval Dalal
 
Testing and Software Writer a year later
Testing and Software Writer a year laterTesting and Software Writer a year later
Testing and Software Writer a year later
Simon Bagreev
 
From legacy to DDD (slides for the screencast)
From legacy to DDD (slides for the screencast)From legacy to DDD (slides for the screencast)
From legacy to DDD (slides for the screencast)
Andrzej Krzywda
 
Testing strategies in microservices
Testing strategies in microservicesTesting strategies in microservices
Testing strategies in microservices
GeekNightHyderabad
 
The Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaThe Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego Molina
Sauce Labs
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
Fabricio Epaminondas
 
Agile testing MyBTEC
Agile testing MyBTECAgile testing MyBTEC
Agile testing MyBTEC
Irina Popovich
 
AgileTesting_Ver1.0
AgileTesting_Ver1.0AgileTesting_Ver1.0
AgileTesting_Ver1.0
Subramanya Mudukutore
 

Similar to The Testing Strategy (20)

Unit Testing - Calgary .NET User Group - Nov 26 2014 - Depth Consulting
Unit Testing -  Calgary .NET User Group - Nov 26 2014 - Depth ConsultingUnit Testing -  Calgary .NET User Group - Nov 26 2014 - Depth Consulting
Unit Testing - Calgary .NET User Group - Nov 26 2014 - Depth Consulting
 
QA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael HallQA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael Hall
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Agile Testing 2020
Agile Testing 2020Agile Testing 2020
Agile Testing 2020
 
Improving the Design of Existing Software
Improving the Design of Existing SoftwareImproving the Design of Existing Software
Improving the Design of Existing Software
 
QA Role in Agile Teams
QA Role in Agile Teams QA Role in Agile Teams
QA Role in Agile Teams
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Testing the Untestable
Testing the UntestableTesting the Untestable
Testing the Untestable
 
Continuous Delivery & Testing Madrid AfterTest
Continuous Delivery & Testing Madrid AfterTestContinuous Delivery & Testing Madrid AfterTest
Continuous Delivery & Testing Madrid AfterTest
 
Test Automation Frameworks: Assumptions, Concepts & Tools
Test Automation Frameworks: Assumptions, Concepts & ToolsTest Automation Frameworks: Assumptions, Concepts & Tools
Test Automation Frameworks: Assumptions, Concepts & Tools
 
CNUG TDD June 2014
CNUG TDD June 2014CNUG TDD June 2014
CNUG TDD June 2014
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDD
 
Testing and Software Writer a year later
Testing and Software Writer a year laterTesting and Software Writer a year later
Testing and Software Writer a year later
 
From legacy to DDD (slides for the screencast)
From legacy to DDD (slides for the screencast)From legacy to DDD (slides for the screencast)
From legacy to DDD (slides for the screencast)
 
Testing strategies in microservices
Testing strategies in microservicesTesting strategies in microservices
Testing strategies in microservices
 
The Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaThe Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego Molina
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
 
Agile testing MyBTEC
Agile testing MyBTECAgile testing MyBTEC
Agile testing MyBTEC
 
AgileTesting_Ver1.0
AgileTesting_Ver1.0AgileTesting_Ver1.0
AgileTesting_Ver1.0
 

More from mimmozzo_

Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
mimmozzo_
 
Coding and architecting for agility
Coding and architecting for agilityCoding and architecting for agility
Coding and architecting for agility
mimmozzo_
 
Don't just write code, change your business
Don't just write code, change your businessDon't just write code, change your business
Don't just write code, change your business
mimmozzo_
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
mimmozzo_
 
Continuous delivery made
Continuous delivery madeContinuous delivery made
Continuous delivery made
mimmozzo_
 
Sustainable agile testing
Sustainable agile testingSustainable agile testing
Sustainable agile testing
mimmozzo_
 
Continuous delivery made possible
Continuous delivery made possibleContinuous delivery made possible
Continuous delivery made possible
mimmozzo_
 
Event driven architecture in practice
Event driven architecture in practiceEvent driven architecture in practice
Event driven architecture in practice
mimmozzo_
 
Unit Tests VS End To End Tests
Unit Tests VS End To End TestsUnit Tests VS End To End Tests
Unit Tests VS End To End Tests
mimmozzo_
 

More from mimmozzo_ (9)

Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
 
Coding and architecting for agility
Coding and architecting for agilityCoding and architecting for agility
Coding and architecting for agility
 
Don't just write code, change your business
Don't just write code, change your businessDon't just write code, change your business
Don't just write code, change your business
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
 
Continuous delivery made
Continuous delivery madeContinuous delivery made
Continuous delivery made
 
Sustainable agile testing
Sustainable agile testingSustainable agile testing
Sustainable agile testing
 
Continuous delivery made possible
Continuous delivery made possibleContinuous delivery made possible
Continuous delivery made possible
 
Event driven architecture in practice
Event driven architecture in practiceEvent driven architecture in practice
Event driven architecture in practice
 
Unit Tests VS End To End Tests
Unit Tests VS End To End TestsUnit Tests VS End To End Tests
Unit Tests VS End To End Tests
 

Recently uploaded

Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 

Recently uploaded (20)

Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 

The Testing Strategy

  • 1. The Testing Strategy Domenico Musto 2012 October
  • 2.
  • 3. Who am I? 25/10/12 www.agiletour.com
  • 4. About me 25/10/12 www.agiletour.com
  • 5. Not about me 25/10/12 www.agiletour.com
  • 6. What do I do? C# .NET Team leading Web REST Ruby Automation Testing Agile @mimmozzo domenico.musto@gmail.com 25/10/12 www.agiletour.com
  • 7. Today we talk about.. • Differences between types of tests • Tests and developers • Tests and QA 25/10/12 www.agiletour.com
  • 8. ..we don't talk about.. • Testing frameworks • Libraries 25/10/12 www.agiletour.com
  • 9. The Agile Testing Quadrant 25/10/12 www.agiletour.com
  • 10. Technology facing 25/10/12 www.agiletour.com
  • 11. Types of tests • Unit • Functional • Load • Soak 25/10/12 www.agiletour.com
  • 12. Unit tests • They test units of code in isolation • Interaction between components • Describe the behaviour • Drive the design • Fast execution 25/10/12 www.agiletour.com
  • 13. Be careful • Test just public interfaces • Do not abuse of mocking 25/10/12 www.agiletour.com
  • 14. Adding a new class is not the trigger for a new test. The trigger is the implementation of a new requirement. 25/10/12 www.agiletour.com
  • 15. Functional tests • They test the interaction with components outside the context of our application • They assure integration • They might be slow 25/10/12 www.agiletour.com
  • 16. public class When_getting_an_object_from_the_db { static int _objectId; static DbWrapper _sut; static object _object; Establish that_there_is_an_object = ()=> { _objectId = 100; ManuallyAddAnObjectInTheDb(_objectId); } Because we_get_the_object = ()=> _object = _sut.Get(_objectId); It should_get_the_object = ()=> _object.ShouldNotBeNull(); } 25/10/12 www.agiletour.com
  • 17. public class When_storing_an_object_in_the_db { static int _objectId; static DbWrapper _sut; static object _object; Establish we_have_an_object_to_save = ()=> { _objectId = 100; } Because we_save_the_object = ()=> _object = _sut.Save(_objectId); It should_store_the_object = ()=> _sut.Get(_objectId).ShouldNotBeNull(); } 25/10/12 www.agiletour.com
  • 18. Be careful • Do not mix tests • Use context builders for data fixture 25/10/12 www.agiletour.com
  • 19. Load tests • Feedback on performance • Feedback on volume limit • Complicated to write • Slow execution 25/10/12 www.agiletour.com
  • 20. Soak tests • Discover technologic issues • Slow execution 25/10/12 www.agiletour.com
  • 21. Business facing 25/10/12 www.agiletour.com
  • 22. Types of tests • End to end • Integration • Exploratory 25/10/12 www.agiletour.com
  • 23. End to end tests • They test the whole scope of a feature • They are acceptance tests • Understandable from non-techincal persons • Slow execution 25/10/12 www.agiletour.com
  • 24. They are not (only) interface tests. 25/10/12 www.agiletour.com
  • 25. Integration tests when the end to end aren't brave enough • They test pieces of the application • They test the integration • Slow execution 25/10/12 www.agiletour.com
  • 26. Exploratory tests • Manual • Look for feature limit 25/10/12 www.agiletour.com
  • 27. Let's implement a feature 25/10/12 www.agiletour.com
  • 28. The actors of the development process • Developers • QA • Customer 25/10/12 www.agiletour.com
  • 29. The story As a user of huddle I would like to add comments to tasks to collaborate better with my colleagues 25/10/12 www.agiletour.com
  • 30. 25/10/12 www.agiletour.com
  • 31. 25/10/12 www.agiletour.com
  • 32. 25/10/12 www.agiletour.com
  • 33. 25/10/12 www.agiletour.com
  • 34. 25/10/12 www.agiletour.com
  • 35.
  • 36.
  • 37. df 25/10/12 www.agiletour.com
  • 38. The feature is ready 25/10/12 www.agiletour.com
  • 39. 25/10/12 www.agiletour.com
  • 40. What about the tests ?!?!?! 25/10/12 www.agiletour.com
  • 41. 25/10/12 www.agiletour.com
  • 42. When do I need to do end to end tests ? 25/10/12 www.agiletour.com
  • 43. Test plan 25/10/12 www.agiletour.com
  • 44. 25/10/12 www.agiletour.com
  • 45. 25/10/12 www.agiletour.com
  • 46. Test plan • Acceptance tests • Functional tests • Integration tests • Unit tests 25/10/12 www.agiletour.com
  • 47. 25/10/12 www.agiletour.com
  • 48. Trade-off 25/10/12 www.agiletour.com
  • 49. Quality attributes • Availability • Modifiability • Performance • Security • Testability • Usability 25/10/12 www.agiletour.com
  • 50. The test pyramid 25/10/12 www.agiletour.com
  • 51. QA Team 25/10/12 www.agiletour.com
  • 52. QA Team 25/10/12 www.agiletour.com
  • 53. QAs are part of the dev team 25/10/12 www.agiletour.com
  • 54. The reputation of the tests, of the build server and of the development environment 25/10/12 www.agiletour.com
  • 55. The deployment 25/10/12 www.agiletour.com
  • 56. 25/10/12 www.agiletour.com
  • 57. Thanks. Q&A @mimmozzo domenico.musto@gmail.com 25/10/12 www.agiletour.com