SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
How to live happily ever after with integration tests
Copyright (c) 2014 Maciej Hryniszak
Disclaimer
Dear viewer,
Please be advised that opinions expressed in this presentation and on
the following slides as well as comments made during the discussion
aftet the presentation are solely those of the presenter and not
necessarily those of Lumesse. Lumesse does not guarantee the
accuracy or reliability of the information provided herein.
Thank you!
 Overview
 The three challenges
 Fluent interface
 Page objects
 Reusable scenarios
 Reusable special functionality
 Clean resources
Agenda
Overview
 Different types of tests
 Manual tests
 Unit tests
 Performance tests
 Acceptance tests
 Integration vs Unit tests
 Test code is important – it saves you
 Let’s get serious...
 Writing integration tests is hard
 Reading integration tests is even harder
 Maintaining integration tests is a nightmare
The three challenges
In software engineering, a fluent interface (as first coined by Eric Evans and Martin Fowler) is
an implementation of an object oriented API that aims to provide for more readable code.
A fluent interface is normally implemented by using method cascading (concretely method
chaining) to relay the instruction context of a subsequent call (but a fluent interface entails
more than just method chaining ). Generally, the context is
 defined through the return value of a called method
 self-referential, where the new context is equivalent to the last context
 terminated through the return of a void context.
Fluent interface
Page Object is a Design Pattern which has become popular in test automation
for enhancing test maintenance and reducing code duplication. A page object
is an object-oriented class that serves as an interface to a page of your AUT.
The tests then use the methods of this page object class whenever they need
to interact with that page of the UI. The benefit is that if the UI changes for the
page, the tests themselves don’t need to change, only the code within the
page object needs to change. Subsequently all changes to support that new UI
are located in one place.
Page objects
Code reuse, also called software reuse, is the use of existing
software, or software knowledge, to build new software,
following the reusability principles.
Reusable scenarios
In computer science and software engineering, reusability is
the likelihood that a segment of source code can be used again
to add new functionalities with slight or no modification
Reusable special functionality
 Clean database with automatic migrations and
injection of test data
 Initialization of other resources (files, folders..)
Clean resources
Thank you!
http://padcom13.blogspot.com
Hope you didn’t feel like falling asleep 

Weitere ähnliche Inhalte

Was ist angesagt?

When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPPaula Čučuk
 
Testing JavaScript Applications
Testing JavaScript ApplicationsTesting JavaScript Applications
Testing JavaScript ApplicationsMuhammad Samu
 
Gauge from an end user's perspective-fathima harris
Gauge from an end user's perspective-fathima harrisGauge from an end user's perspective-fathima harris
Gauge from an end user's perspective-fathima harrisVodqaBLR
 
Test Driven Development in AEM/CQ5
Test Driven Development in AEM/CQ5Test Driven Development in AEM/CQ5
Test Driven Development in AEM/CQ5rtpaem
 
Why Automation is Required in Software Testing - OSSCamp 2014
Why Automation is Required in Software Testing - OSSCamp 2014Why Automation is Required in Software Testing - OSSCamp 2014
Why Automation is Required in Software Testing - OSSCamp 2014OSSCube
 
Introduction to UI Automation Framework
Introduction to UI Automation FrameworkIntroduction to UI Automation Framework
Introduction to UI Automation FrameworkPriya Rajagopal
 
Challenges faced in UI automation
Challenges faced in UI automationChallenges faced in UI automation
Challenges faced in UI automationSrinivas Kantipudi
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingThoughtworks
 
Test Automation Techniques for Windows Applications
Test Automation Techniques for Windows ApplicationsTest Automation Techniques for Windows Applications
Test Automation Techniques for Windows ApplicationsTabăra de Testare
 
Fail to Rise - Automation & DevOps Stories
Fail to Rise - Automation & DevOps StoriesFail to Rise - Automation & DevOps Stories
Fail to Rise - Automation & DevOps StoriesSoumya Mukherjee
 
Browser Vendors are Reshaping Testing - Are You Ready?
Browser Vendors are Reshaping Testing - Are You Ready?Browser Vendors are Reshaping Testing - Are You Ready?
Browser Vendors are Reshaping Testing - Are You Ready?SmartBear
 
Test Design: Scaling UI Automation from the Ground Up
Test Design: Scaling UI Automation from the Ground UpTest Design: Scaling UI Automation from the Ground Up
Test Design: Scaling UI Automation from the Ground UpSmartBear
 
How to Make Your UI Tests Stable, Scalable, and Maintainable
How to Make Your UI Tests Stable, Scalable, and MaintainableHow to Make Your UI Tests Stable, Scalable, and Maintainable
How to Make Your UI Tests Stable, Scalable, and MaintainableSmartBear
 
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...VibrantGroup
 

Was ist angesagt? (19)

When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHP
 
Testing JavaScript Applications
Testing JavaScript ApplicationsTesting JavaScript Applications
Testing JavaScript Applications
 
JavaScript Unit Testing
JavaScript Unit TestingJavaScript Unit Testing
JavaScript Unit Testing
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Gauge from an end user's perspective-fathima harris
Gauge from an end user's perspective-fathima harrisGauge from an end user's perspective-fathima harris
Gauge from an end user's perspective-fathima harris
 
Test automation process
Test automation processTest automation process
Test automation process
 
Test Driven Development in AEM/CQ5
Test Driven Development in AEM/CQ5Test Driven Development in AEM/CQ5
Test Driven Development in AEM/CQ5
 
Why Automation is Required in Software Testing - OSSCamp 2014
Why Automation is Required in Software Testing - OSSCamp 2014Why Automation is Required in Software Testing - OSSCamp 2014
Why Automation is Required in Software Testing - OSSCamp 2014
 
Introduction to UI Automation Framework
Introduction to UI Automation FrameworkIntroduction to UI Automation Framework
Introduction to UI Automation Framework
 
Automation
Automation Automation
Automation
 
Challenges faced in UI automation
Challenges faced in UI automationChallenges faced in UI automation
Challenges faced in UI automation
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with Testing
 
Test Automation Techniques for Windows Applications
Test Automation Techniques for Windows ApplicationsTest Automation Techniques for Windows Applications
Test Automation Techniques for Windows Applications
 
Fail to Rise - Automation & DevOps Stories
Fail to Rise - Automation & DevOps StoriesFail to Rise - Automation & DevOps Stories
Fail to Rise - Automation & DevOps Stories
 
Browser Vendors are Reshaping Testing - Are You Ready?
Browser Vendors are Reshaping Testing - Are You Ready?Browser Vendors are Reshaping Testing - Are You Ready?
Browser Vendors are Reshaping Testing - Are You Ready?
 
E2 e test with testcafe
E2 e test with testcafeE2 e test with testcafe
E2 e test with testcafe
 
Test Design: Scaling UI Automation from the Ground Up
Test Design: Scaling UI Automation from the Ground UpTest Design: Scaling UI Automation from the Ground Up
Test Design: Scaling UI Automation from the Ground Up
 
How to Make Your UI Tests Stable, Scalable, and Maintainable
How to Make Your UI Tests Stable, Scalable, and MaintainableHow to Make Your UI Tests Stable, Scalable, and Maintainable
How to Make Your UI Tests Stable, Scalable, and Maintainable
 
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
 

Andere mochten auch

DevOps meetup - Ansible and Docker for your VPS
DevOps meetup - Ansible and Docker for your VPSDevOps meetup - Ansible and Docker for your VPS
DevOps meetup - Ansible and Docker for your VPSŁukasz Proszek
 
Mindtree IMS Offerings
Mindtree IMS OfferingsMindtree IMS Offerings
Mindtree IMS OfferingsKoushik Ramani
 
Southeast Asia Technology Investment Landscape
Southeast Asia Technology Investment LandscapeSoutheast Asia Technology Investment Landscape
Southeast Asia Technology Investment LandscapeWarren Leow
 
Application Deployment Using Ansible
Application Deployment Using AnsibleApplication Deployment Using Ansible
Application Deployment Using AnsibleCliffano Subagio
 
Presentation on Talent Development
Presentation on Talent DevelopmentPresentation on Talent Development
Presentation on Talent DevelopmentTim Weyland
 
Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?SecuRing
 
e-conomy SEA by Google and Temasek
e-conomy SEA by Google and Temaseke-conomy SEA by Google and Temasek
e-conomy SEA by Google and TemasekeconomySEA
 
Great Talks Start with Great Proposals: An IA Summit Virtual Webinar
Great Talks Start with Great Proposals: An IA Summit Virtual WebinarGreat Talks Start with Great Proposals: An IA Summit Virtual Webinar
Great Talks Start with Great Proposals: An IA Summit Virtual WebinarRuss U
 
Designing a Culture of Design
Designing a Culture of DesignDesigning a Culture of Design
Designing a Culture of DesignChris Avore
 
Mobile Trends 2012 - MDAYS by Torsten Schollmayer, SapientNitro
Mobile Trends 2012 - MDAYS by Torsten Schollmayer, SapientNitroMobile Trends 2012 - MDAYS by Torsten Schollmayer, SapientNitro
Mobile Trends 2012 - MDAYS by Torsten Schollmayer, SapientNitroTorsten Schollmayer
 
Entrepreneurshit. The Truth About Building Starutps
Entrepreneurshit. The Truth About Building StarutpsEntrepreneurshit. The Truth About Building Starutps
Entrepreneurshit. The Truth About Building StarutpsMark Suster
 
Subscribed 2015: CEO's Keynote
Subscribed 2015: CEO's KeynoteSubscribed 2015: CEO's Keynote
Subscribed 2015: CEO's KeynoteZuora, Inc.
 
Does Living Near An NFL Stadium Boost Your Home Value?
Does Living Near An NFL Stadium Boost Your Home Value?Does Living Near An NFL Stadium Boost Your Home Value?
Does Living Near An NFL Stadium Boost Your Home Value?Trulia
 
Just a Room Full of Stuff? Why Libraries are Great / Katie Birkwood
Just a Room Full of Stuff? Why Libraries are Great / Katie BirkwoodJust a Room Full of Stuff? Why Libraries are Great / Katie Birkwood
Just a Room Full of Stuff? Why Libraries are Great / Katie BirkwoodKatie Birkwood
 
Bcg Consultants Love Life
Bcg  Consultants Love LifeBcg  Consultants Love Life
Bcg Consultants Love Lifenitinagarwalin
 
College Disrupted - Ryan Craig
College Disrupted - Ryan CraigCollege Disrupted - Ryan Craig
College Disrupted - Ryan CraigLinkedIn
 

Andere mochten auch (19)

Selenium for-ops
Selenium for-opsSelenium for-ops
Selenium for-ops
 
DevOps meetup - Ansible and Docker for your VPS
DevOps meetup - Ansible and Docker for your VPSDevOps meetup - Ansible and Docker for your VPS
DevOps meetup - Ansible and Docker for your VPS
 
Mindtree IMS Offerings
Mindtree IMS OfferingsMindtree IMS Offerings
Mindtree IMS Offerings
 
Southeast Asia Technology Investment Landscape
Southeast Asia Technology Investment LandscapeSoutheast Asia Technology Investment Landscape
Southeast Asia Technology Investment Landscape
 
Application Deployment Using Ansible
Application Deployment Using AnsibleApplication Deployment Using Ansible
Application Deployment Using Ansible
 
Presentation on Talent Development
Presentation on Talent DevelopmentPresentation on Talent Development
Presentation on Talent Development
 
Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?
 
e-conomy SEA by Google and Temasek
e-conomy SEA by Google and Temaseke-conomy SEA by Google and Temasek
e-conomy SEA by Google and Temasek
 
Quantum computing
Quantum computingQuantum computing
Quantum computing
 
Great Talks Start with Great Proposals: An IA Summit Virtual Webinar
Great Talks Start with Great Proposals: An IA Summit Virtual WebinarGreat Talks Start with Great Proposals: An IA Summit Virtual Webinar
Great Talks Start with Great Proposals: An IA Summit Virtual Webinar
 
Designing a Culture of Design
Designing a Culture of DesignDesigning a Culture of Design
Designing a Culture of Design
 
Mobile Trends 2012 - MDAYS by Torsten Schollmayer, SapientNitro
Mobile Trends 2012 - MDAYS by Torsten Schollmayer, SapientNitroMobile Trends 2012 - MDAYS by Torsten Schollmayer, SapientNitro
Mobile Trends 2012 - MDAYS by Torsten Schollmayer, SapientNitro
 
Entrepreneurshit. The Truth About Building Starutps
Entrepreneurshit. The Truth About Building StarutpsEntrepreneurshit. The Truth About Building Starutps
Entrepreneurshit. The Truth About Building Starutps
 
Subscribed 2015: CEO's Keynote
Subscribed 2015: CEO's KeynoteSubscribed 2015: CEO's Keynote
Subscribed 2015: CEO's Keynote
 
Does Living Near An NFL Stadium Boost Your Home Value?
Does Living Near An NFL Stadium Boost Your Home Value?Does Living Near An NFL Stadium Boost Your Home Value?
Does Living Near An NFL Stadium Boost Your Home Value?
 
Docker.io
Docker.ioDocker.io
Docker.io
 
Just a Room Full of Stuff? Why Libraries are Great / Katie Birkwood
Just a Room Full of Stuff? Why Libraries are Great / Katie BirkwoodJust a Room Full of Stuff? Why Libraries are Great / Katie Birkwood
Just a Room Full of Stuff? Why Libraries are Great / Katie Birkwood
 
Bcg Consultants Love Life
Bcg  Consultants Love LifeBcg  Consultants Love Life
Bcg Consultants Love Life
 
College Disrupted - Ryan Craig
College Disrupted - Ryan CraigCollege Disrupted - Ryan Craig
College Disrupted - Ryan Craig
 

Ähnlich wie Fluent integration-tests

Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing EssayDani Cox
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages ijseajournal
 
Design Issue(Reuse) in Software Engineering SE14
Design Issue(Reuse) in Software Engineering SE14Design Issue(Reuse) in Software Engineering SE14
Design Issue(Reuse) in Software Engineering SE14koolkampus
 
Model-Based Approaches to Reengineering Web Pages
Model-Based Approaches to Reengineering Web PagesModel-Based Approaches to Reengineering Web Pages
Model-Based Approaches to Reengineering Web PagesJean Vanderdonckt
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presentedVijayan Reddy
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework DesignsSauce Labs
 
Quality Attributes of Web Software
Quality Attributes of Web Software Quality Attributes of Web Software
Quality Attributes of Web Software hasnainqayyum1
 
Why functional programming in C# & F#
Why functional programming in C# & F#Why functional programming in C# & F#
Why functional programming in C# & F#Riccardo Terrell
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Luis Valencia
 
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Raffi Khatchadourian
 
Best Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsBest Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsKevin Whinnery
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.pptRvishnupriya2
 
Fluent Interfaces
Fluent InterfacesFluent Interfaces
Fluent InterfacesIDES Editor
 
Automated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS SitesAutomated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS Sitesjoelabrahamsson
 

Ähnlich wie Fluent integration-tests (20)

Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing Essay
 
Aq4301224227
Aq4301224227Aq4301224227
Aq4301224227
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
 
Ch19
Ch19Ch19
Ch19
 
Ch15 - Software Reuse
Ch15 - Software ReuseCh15 - Software Reuse
Ch15 - Software Reuse
 
Design Issue(Reuse) in Software Engineering SE14
Design Issue(Reuse) in Software Engineering SE14Design Issue(Reuse) in Software Engineering SE14
Design Issue(Reuse) in Software Engineering SE14
 
Model-Based Approaches to Reengineering Web Pages
Model-Based Approaches to Reengineering Web PagesModel-Based Approaches to Reengineering Web Pages
Model-Based Approaches to Reengineering Web Pages
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presented
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
Design pattern
Design patternDesign pattern
Design pattern
 
Quality Attributes of Web Software
Quality Attributes of Web Software Quality Attributes of Web Software
Quality Attributes of Web Software
 
Why functional programming in C# & F#
Why functional programming in C# & F#Why functional programming in C# & F#
Why functional programming in C# & F#
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
 
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
 
Dtacs
DtacsDtacs
Dtacs
 
Best Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsBest Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native Applications
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.ppt
 
Fluent Interfaces
Fluent InterfacesFluent Interfaces
Fluent Interfaces
 
Automated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS SitesAutomated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS Sites
 

Kürzlich hochgeladen

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Kürzlich hochgeladen (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Fluent integration-tests

  • 1. How to live happily ever after with integration tests Copyright (c) 2014 Maciej Hryniszak
  • 2.
  • 3. Disclaimer Dear viewer, Please be advised that opinions expressed in this presentation and on the following slides as well as comments made during the discussion aftet the presentation are solely those of the presenter and not necessarily those of Lumesse. Lumesse does not guarantee the accuracy or reliability of the information provided herein. Thank you!
  • 4.  Overview  The three challenges  Fluent interface  Page objects  Reusable scenarios  Reusable special functionality  Clean resources Agenda
  • 5. Overview  Different types of tests  Manual tests  Unit tests  Performance tests  Acceptance tests  Integration vs Unit tests  Test code is important – it saves you  Let’s get serious...
  • 6.  Writing integration tests is hard  Reading integration tests is even harder  Maintaining integration tests is a nightmare The three challenges
  • 7. In software engineering, a fluent interface (as first coined by Eric Evans and Martin Fowler) is an implementation of an object oriented API that aims to provide for more readable code. A fluent interface is normally implemented by using method cascading (concretely method chaining) to relay the instruction context of a subsequent call (but a fluent interface entails more than just method chaining ). Generally, the context is  defined through the return value of a called method  self-referential, where the new context is equivalent to the last context  terminated through the return of a void context. Fluent interface
  • 8. Page Object is a Design Pattern which has become popular in test automation for enhancing test maintenance and reducing code duplication. A page object is an object-oriented class that serves as an interface to a page of your AUT. The tests then use the methods of this page object class whenever they need to interact with that page of the UI. The benefit is that if the UI changes for the page, the tests themselves don’t need to change, only the code within the page object needs to change. Subsequently all changes to support that new UI are located in one place. Page objects
  • 9. Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software, following the reusability principles. Reusable scenarios
  • 10. In computer science and software engineering, reusability is the likelihood that a segment of source code can be used again to add new functionalities with slight or no modification Reusable special functionality
  • 11.  Clean database with automatic migrations and injection of test data  Initialization of other resources (files, folders..) Clean resources
  • 12.
  • 14. Hope you didn’t feel like falling asleep 