SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
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
 

Was ist angesagt? (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
 

Ähnlich wie The Testing Strategy

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
 
Agile testing MyBTEC
Agile testing MyBTECAgile testing MyBTEC
Agile testing MyBTEC
Irina Popovich
 

Ähnlich wie 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
 

Mehr von mimmozzo_

Event driven architecture in practice
Event driven architecture in practiceEvent driven architecture in practice
Event driven architecture in practice
mimmozzo_
 

Mehr von 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
 

KĂźrzlich hochgeladen

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
 

KĂźrzlich hochgeladen (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

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