SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
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 

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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...
 

Destacado

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
 

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

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

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

Último

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 

Último (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
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
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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
 

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 