SlideShare a Scribd company logo
1 of 51
Testing, testing everywhere! 
Toni Robres Turón 
@twiindan
{name: Toni Robres} 
{role: QA}
Sometimes diversity is not good
Sometimes diversity is not good
Confrontation
Which characteristics 
should have the 
perfect testing tool?
Testing Activities 
Unit Testing 
Acceptance Testing 
Web Testing 
Performance Testing 
Test Definition
Unit Testing 
• Nose 
– Extended framework for python unit testing 
– Easy to write and run tests 
– Provides coverage 
– Provides profiler 
– Test can be organized 
– Include tools for testing
EXECUTE THE TESTS
Coverage
API REST Testing 
• Request: HTTP For humans 
– Library to perform API REST requests 
– Easy to use 
– Basic and Oauth Authentication 
– Cookies support 
– Multipart Files Upload 
– Session objects 
– Verify SSL Certificates 
– Proxies 
– Can be integrated with nose and lettuce
Basic usage
Usage 
• Query Parameters defined as Python Dict: 
• Custom headers defined as Python Dict
Usage 
Basic authentication 
Content body defined as Python Dict
Usage 
• Upload a file: 
• Cookies 
• Cookies
Web Testing 
• Selenium 
– Most extended library to test Web GUI 
– Suport Firefox, Chrome and Internet Explorer 
– Can be integrated with nose and lettuce 
– Integrated with CI 
– Grid support 
– Cookies support
Selenium 
• How it works? 
– Locate the Elements 
• By id, CSS, XPATH, name, Class... 
– Select Elements 
• Assert properties 
– Interact 
• Send keys 
• Click
Basic Example
Page Object Pattern 
• Language Neutral Pattern for representing a 
web page in an Object Oriented manner 
• Necessary for survive in Selenium 
– Increase maintanability 
– Increase readability 
– Abstract web page logical from tests
Web Testing 
• What happen with selenium IDE?
Perfomance Testing 
• MultiMechanize 
– Runs concurrent Python scripts to generate load 
against service 
– Reporting as Jmeter compatible 
– Easy configuration 
– Can reuse Custom Request library 
– Multithreading and multiprocessing 
– Distributed
Config File
Script File
Example script File
Multi Mechanize Stats 
• test summary 
• transaction timers 
• custom timers (from instrumented client code) 
• time-series/interval data 
• counts 
• rate/throughput 
• response times 
• average, min, max, stdev 
• percentiles (80th, 90th, 95th)
Graphs
Graphs
Graphs
Summarizing 
• I can do tests in all Levels: 
– Web 
– API 
– Performance 
• What happen with test Definition and test 
Execution stats?
Jira / TestLink / IBM
BDD 
• Using examples to create a shared 
understanding and surface uncertainly to 
deliver software that matters. 
• Define the software behaviour: 
– Given (Preconditions) 
– When (actions) 
– Then (Post conditions)
Lettuce 
• BDD Tool for Python 
• Easy to integrate with tests developed with 
Request and Webdriver 
• Data driven 
• Using decorators to execute functions that 
describes the software behaviour
Feature Example 
Scenario Outline: Retrieve the geolocation with city name given 
Given a <city> name 
When I request the geoencoding of the city 
Then I obtain the <city> name with the <country_code> 
Examples: 
| city | country_code | 
| Barcelona | ES | 
| Paris | FR | 
| San+Francisco | US |
Coding example
Test Runner and report
Web	Usuarios	 
SMS	 
Web	Soporte	 
Backend	 
BBDD
Que probar y con que?
Que probar y con que? 
• Unit testing  all components 
• Component test: 
– Backend  Requests 
– Webs  Webdriver mocking the backend 
– Mobile  Appium mocking the backend 
• Integration: 
– Webs and backend 
– Mobile and backend 
– Backend with SMS plattform 
• E2E
Bonus Track 
• What happen if my component has different 
interface than API REST? 
– All the components always have an input 
– For example 
• Rabbit  Pika, Kombu 
• MongoDB  Pymongo 
• Redis  Python Redis client 
• MySQL  sqlite, sqlalchemy
Overview 
• Using Python for all testing activities 
– Easy to integrate 
– Can reuse common libraries 
– Only needs learn one tool 
– Collaboration between development and testing 
– Community
Result
Questions?

More Related Content

What's hot

AWS Lambda Function with Kotlin
AWS Lambda Function with KotlinAWS Lambda Function with Kotlin
AWS Lambda Function with KotlinTroy Miles
 
Selenium webdriver version 4 features by vikas thange xpanxion automation te...
Selenium webdriver version 4 features  by vikas thange xpanxion automation te...Selenium webdriver version 4 features  by vikas thange xpanxion automation te...
Selenium webdriver version 4 features by vikas thange xpanxion automation te...Vikas Thange
 
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA....NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...Christian Nagel
 
Web Planning an Effective Integration with a 3rd party API to Scale
Web Planning an Effective Integration with a 3rd party API to ScaleWeb Planning an Effective Integration with a 3rd party API to Scale
Web Planning an Effective Integration with a 3rd party API to Scalebrettwise
 
.NET Core 3.0 - What's new?
.NET Core 3.0 - What's new?.NET Core 3.0 - What's new?
.NET Core 3.0 - What's new?Christian Nagel
 
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...apidays
 
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...Joe Levy
 
EmberCLI Rails: An Integration Love Story.
EmberCLI Rails: An Integration Love Story.EmberCLI Rails: An Integration Love Story.
EmberCLI Rails: An Integration Love Story.Jonathan Jackson
 
Rest api to integrate with your site
Rest api to integrate with your siteRest api to integrate with your site
Rest api to integrate with your siteHoang Nguyen
 
Entity Framework Core 1.x/2.x Advanced
Entity Framework Core 1.x/2.x AdvancedEntity Framework Core 1.x/2.x Advanced
Entity Framework Core 1.x/2.x AdvancedChristian Nagel
 
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens  SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens Sencha
 
Navigate around the edge with PowerShell
Navigate around the edge with PowerShellNavigate around the edge with PowerShell
Navigate around the edge with PowerShellJaap Brasser
 
Automate it with Azure Functions
Automate it with Azure FunctionsAutomate it with Azure Functions
Automate it with Azure FunctionsJaap Brasser
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationLior Tal
 

What's hot (20)

AWS Lambda Function with Kotlin
AWS Lambda Function with KotlinAWS Lambda Function with Kotlin
AWS Lambda Function with Kotlin
 
Api crash
Api crashApi crash
Api crash
 
Selenium webdriver version 4 features by vikas thange xpanxion automation te...
Selenium webdriver version 4 features  by vikas thange xpanxion automation te...Selenium webdriver version 4 features  by vikas thange xpanxion automation te...
Selenium webdriver version 4 features by vikas thange xpanxion automation te...
 
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA....NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
 
Web Planning an Effective Integration with a 3rd party API to Scale
Web Planning an Effective Integration with a 3rd party API to ScaleWeb Planning an Effective Integration with a 3rd party API to Scale
Web Planning an Effective Integration with a 3rd party API to Scale
 
.NET Core 3.0 - What's new?
.NET Core 3.0 - What's new?.NET Core 3.0 - What's new?
.NET Core 3.0 - What's new?
 
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
 
Ansible API
Ansible APIAnsible API
Ansible API
 
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
 
RavenDB 4.0
RavenDB 4.0RavenDB 4.0
RavenDB 4.0
 
C# 8 and .NET Core 3
C# 8 and .NET Core 3C# 8 and .NET Core 3
C# 8 and .NET Core 3
 
EmberCLI Rails: An Integration Love Story.
EmberCLI Rails: An Integration Love Story.EmberCLI Rails: An Integration Love Story.
EmberCLI Rails: An Integration Love Story.
 
Rest api to integrate with your site
Rest api to integrate with your siteRest api to integrate with your site
Rest api to integrate with your site
 
Beyond The Rails Way
Beyond The Rails WayBeyond The Rails Way
Beyond The Rails Way
 
Entity Framework Core 1.x/2.x Advanced
Entity Framework Core 1.x/2.x AdvancedEntity Framework Core 1.x/2.x Advanced
Entity Framework Core 1.x/2.x Advanced
 
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens  SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
 
Navigate around the edge with PowerShell
Navigate around the edge with PowerShellNavigate around the edge with PowerShell
Navigate around the edge with PowerShell
 
Automate it with Azure Functions
Automate it with Azure FunctionsAutomate it with Azure Functions
Automate it with Azure Functions
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 

Similar to Testing Testing everywhere

Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testingrdekleijn
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyoneTft Us
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA or the Highway
 
An Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveAn Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveBizTalk360
 
Debugging the Web with Fiddler
Debugging the Web with FiddlerDebugging the Web with Fiddler
Debugging the Web with FiddlerIdo Flatow
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...Daryl Walleck
 
A tale in automation (Puppet to Ansible)
A tale in automation (Puppet to Ansible)A tale in automation (Puppet to Ansible)
A tale in automation (Puppet to Ansible)neptunerx
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework DesignsTest Automaton
 
API Testing with Open Source Code and Cucumber
API Testing with Open Source Code and CucumberAPI Testing with Open Source Code and Cucumber
API Testing with Open Source Code and CucumberSmartBear
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 
Real-world software design practices when developing ASP.NET web systems by B...
Real-world software design practices when developing ASP.NET web systems by B...Real-world software design practices when developing ASP.NET web systems by B...
Real-world software design practices when developing ASP.NET web systems by B...Bojan Veljanovski
 
Architecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureArchitecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureSARCCOM
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Cultureifnu bima
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotchaphegaro
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellGeoff Varosky
 
Streamlined Geek Talk
Streamlined Geek TalkStreamlined Geek Talk
Streamlined Geek TalkSarah Allen
 

Similar to Testing Testing everywhere (20)

Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyone
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
SOA Testing
SOA TestingSOA Testing
SOA Testing
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Node.js
Node.jsNode.js
Node.js
 
An Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveAn Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspective
 
Debugging the Web with Fiddler
Debugging the Web with FiddlerDebugging the Web with Fiddler
Debugging the Web with Fiddler
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
 
A tale in automation (Puppet to Ansible)
A tale in automation (Puppet to Ansible)A tale in automation (Puppet to Ansible)
A tale in automation (Puppet to Ansible)
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
API Testing with Open Source Code and Cucumber
API Testing with Open Source Code and CucumberAPI Testing with Open Source Code and Cucumber
API Testing with Open Source Code and Cucumber
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
Real-world software design practices when developing ASP.NET web systems by B...
Real-world software design practices when developing ASP.NET web systems by B...Real-world software design practices when developing ASP.NET web systems by B...
Real-world software design practices when developing ASP.NET web systems by B...
 
Architecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureArchitecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering Culture
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Culture
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotcha
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShell
 
Streamlined Geek Talk
Streamlined Geek TalkStreamlined Geek Talk
Streamlined Geek Talk
 

More from Antonio Robres Turon

More from Antonio Robres Turon (9)

Mockito para tus pruebas unitarias
Mockito para tus pruebas unitariasMockito para tus pruebas unitarias
Mockito para tus pruebas unitarias
 
¡El mejor lenguaje para automatizar pruebas!
¡El mejor lenguaje para automatizar pruebas!¡El mejor lenguaje para automatizar pruebas!
¡El mejor lenguaje para automatizar pruebas!
 
[Tefcon] are you ready for the war
[Tefcon] are you ready for the war[Tefcon] are you ready for the war
[Tefcon] are you ready for the war
 
BDD en practica (seminario)
BDD en practica (seminario)BDD en practica (seminario)
BDD en practica (seminario)
 
El pequeño se hace mayor
El pequeño se hace mayor El pequeño se hace mayor
El pequeño se hace mayor
 
Hello bdd
Hello bddHello bdd
Hello bdd
 
Testing Proud
Testing ProudTesting Proud
Testing Proud
 
Existe el tester perfecto
Existe el tester perfectoExiste el tester perfecto
Existe el tester perfecto
 
Existe el tester perfecto
Existe el tester perfectoExiste el tester perfecto
Existe el tester perfecto
 

Recently uploaded

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 

Recently uploaded (20)

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 

Testing Testing everywhere

  • 1. Testing, testing everywhere! Toni Robres Turón @twiindan
  • 2. {name: Toni Robres} {role: QA}
  • 3.
  • 7. Which characteristics should have the perfect testing tool?
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Testing Activities Unit Testing Acceptance Testing Web Testing Performance Testing Test Definition
  • 14. Unit Testing • Nose – Extended framework for python unit testing – Easy to write and run tests – Provides coverage – Provides profiler – Test can be organized – Include tools for testing
  • 15.
  • 18. API REST Testing • Request: HTTP For humans – Library to perform API REST requests – Easy to use – Basic and Oauth Authentication – Cookies support – Multipart Files Upload – Session objects – Verify SSL Certificates – Proxies – Can be integrated with nose and lettuce
  • 20. Usage • Query Parameters defined as Python Dict: • Custom headers defined as Python Dict
  • 21. Usage Basic authentication Content body defined as Python Dict
  • 22. Usage • Upload a file: • Cookies • Cookies
  • 23. Web Testing • Selenium – Most extended library to test Web GUI – Suport Firefox, Chrome and Internet Explorer – Can be integrated with nose and lettuce – Integrated with CI – Grid support – Cookies support
  • 24. Selenium • How it works? – Locate the Elements • By id, CSS, XPATH, name, Class... – Select Elements • Assert properties – Interact • Send keys • Click
  • 26. Page Object Pattern • Language Neutral Pattern for representing a web page in an Object Oriented manner • Necessary for survive in Selenium – Increase maintanability – Increase readability – Abstract web page logical from tests
  • 27.
  • 28.
  • 29. Web Testing • What happen with selenium IDE?
  • 30. Perfomance Testing • MultiMechanize – Runs concurrent Python scripts to generate load against service – Reporting as Jmeter compatible – Easy configuration – Can reuse Custom Request library – Multithreading and multiprocessing – Distributed
  • 34. Multi Mechanize Stats • test summary • transaction timers • custom timers (from instrumented client code) • time-series/interval data • counts • rate/throughput • response times • average, min, max, stdev • percentiles (80th, 90th, 95th)
  • 38. Summarizing • I can do tests in all Levels: – Web – API – Performance • What happen with test Definition and test Execution stats?
  • 40. BDD • Using examples to create a shared understanding and surface uncertainly to deliver software that matters. • Define the software behaviour: – Given (Preconditions) – When (actions) – Then (Post conditions)
  • 41. Lettuce • BDD Tool for Python • Easy to integrate with tests developed with Request and Webdriver • Data driven • Using decorators to execute functions that describes the software behaviour
  • 42. Feature Example Scenario Outline: Retrieve the geolocation with city name given Given a <city> name When I request the geoencoding of the city Then I obtain the <city> name with the <country_code> Examples: | city | country_code | | Barcelona | ES | | Paris | FR | | San+Francisco | US |
  • 44. Test Runner and report
  • 46. Que probar y con que?
  • 47. Que probar y con que? • Unit testing  all components • Component test: – Backend  Requests – Webs  Webdriver mocking the backend – Mobile  Appium mocking the backend • Integration: – Webs and backend – Mobile and backend – Backend with SMS plattform • E2E
  • 48. Bonus Track • What happen if my component has different interface than API REST? – All the components always have an input – For example • Rabbit  Pika, Kombu • MongoDB  Pymongo • Redis  Python Redis client • MySQL  sqlite, sqlalchemy
  • 49. Overview • Using Python for all testing activities – Easy to integrate – Can reuse common libraries – Only needs learn one tool – Collaboration between development and testing – Community

Editor's Notes

  1. Three tools for the frontend testers under UI Seven for the backend testers in their APIs Nine for the Performance testers doomed to kill systems One for the dark load of software enginering One tool to rule them all, One tool never found by testers
  2. You can choose an incorrect tool to testing Sometimes choose an ineficient tool
  3. Fleixibility
  4. Organized (fixtures, suites, packages...) Tools (asserts, raises, timers...) Tags DOCTEST for documentation Hooks (before, after) Parallel testing Results in Xunit format XML
  5. Remote WebDriver
  6. Language Neutral Pattern for representing a web page in an Object Oriented manner
  7. vtest summary transaction timers custom timers (from instrumented client code) time-series/interval data counts rate/throughput response times average, min, max, stdev percentiles (80th, 90th, 95th)