SlideShare a Scribd company logo
Testing, testing everywhere! 
Toni Robres Turón 
@twiindan
{name: Toni Robres} 
{role: QA}
Testing Testing everywhere
Sometimes diversity is not good
Sometimes diversity is not good
Confrontation
Which characteristics 
should have the 
perfect testing tool?
Testing Testing everywhere
Testing Testing everywhere
Testing Testing everywhere
Testing Testing everywhere
Testing Testing everywhere
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
Testing Testing everywhere
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
Testing Testing everywhere
Testing Testing everywhere
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?
Ad

More Related Content

What's hot (20)

AWS Lambda Function with Kotlin
AWS Lambda Function with KotlinAWS Lambda Function with Kotlin
AWS Lambda Function with Kotlin
Troy Miles
 
Api crash
Api crashApi crash
Api crash
Hoang Nguyen
 
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 Scale
brettwise
 
.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
 
Ansible API
Ansible APIAnsible API
Ansible API
tylerturk
 
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
 
RavenDB 4.0
RavenDB 4.0RavenDB 4.0
RavenDB 4.0
Oren Eini
 
C# 8 and .NET Core 3
C# 8 and .NET Core 3C# 8 and .NET Core 3
C# 8 and .NET Core 3
Christian Nagel
 
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 site
Hoang Nguyen
 
Beyond The Rails Way
Beyond The Rails WayBeyond The Rails Way
Beyond The Rails Way
Andrzej Krzywda
 
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
Christian 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
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
Milan Vukoje
 
Navigate around the edge with PowerShell
Navigate around the edge with PowerShellNavigate around the edge with PowerShell
Navigate around the edge with PowerShell
Jaap Brasser
 
Automate it with Azure Functions
Automate it with Azure FunctionsAutomate it with Azure Functions
Automate it with Azure Functions
Jaap Brasser
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
Lior Tal
 
AWS Lambda Function with Kotlin
AWS Lambda Function with KotlinAWS Lambda Function with Kotlin
AWS Lambda Function with Kotlin
Troy 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 Scale
brettwise
 
.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 site
Hoang 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 Advanced
Christian 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 PowerShell
Jaap Brasser
 
Automate it with Azure Functions
Automate it with Azure FunctionsAutomate it with Azure Functions
Automate it with Azure Functions
Jaap Brasser
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
Lior Tal
 

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
rdekleijn
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyone
Tft Us
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
Mihai-Cristian Fratila
 
SOA Testing
SOA TestingSOA Testing
SOA Testing
Roopesh Kohad
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
QA or the Highway
 
Node.js
Node.jsNode.js
Node.js
Matt Simonis
 
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
BizTalk360
 
Debugging the Web with Fiddler
Debugging the Web with FiddlerDebugging the Web with Fiddler
Debugging the Web with Fiddler
Ido 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 Designs
Test 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 Cucumber
SmartBear
 
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 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
ifnu bima
 
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
SARCCOM
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotcha
phegaro
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShell
Geoff Varosky
 
Streamlined Geek Talk
Streamlined Geek TalkStreamlined Geek Talk
Streamlined Geek Talk
Sarah Allen
 
Test_Automation using Selenium.ppt
Test_Automation using Selenium.pptTest_Automation using Selenium.ppt
Test_Automation using Selenium.ppt
SamKhan531862
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
rdekleijn
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyone
Tft Us
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
QA 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 perspective
BizTalk360
 
Debugging the Web with Fiddler
Debugging the Web with FiddlerDebugging the Web with Fiddler
Debugging the Web with Fiddler
Ido 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 Designs
Test 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 Cucumber
SmartBear
 
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 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
ifnu bima
 
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
SARCCOM
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotcha
phegaro
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShell
Geoff Varosky
 
Streamlined Geek Talk
Streamlined Geek TalkStreamlined Geek Talk
Streamlined Geek Talk
Sarah Allen
 
Test_Automation using Selenium.ppt
Test_Automation using Selenium.pptTest_Automation using Selenium.ppt
Test_Automation using Selenium.ppt
SamKhan531862
 
Ad

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
Antonio Robres Turon
 
¡El mejor lenguaje para automatizar pruebas!
¡El mejor lenguaje para automatizar pruebas!¡El mejor lenguaje para automatizar pruebas!
¡El mejor lenguaje para automatizar pruebas!
Antonio Robres Turon
 
[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
Antonio Robres Turon
 
BDD en practica (seminario)
BDD en practica (seminario)BDD en practica (seminario)
BDD en practica (seminario)
Antonio Robres Turon
 
El pequeño se hace mayor
El pequeño se hace mayor El pequeño se hace mayor
El pequeño se hace mayor
Antonio Robres Turon
 
Hello bdd
Hello bddHello bdd
Hello bdd
Antonio Robres Turon
 
Testing Proud
Testing ProudTesting Proud
Testing Proud
Antonio Robres Turon
 
Existe el tester perfecto
Existe el tester perfectoExiste el tester perfecto
Existe el tester perfecto
Antonio Robres Turon
 
Existe el tester perfecto
Existe el tester perfectoExiste el tester perfecto
Existe el tester perfecto
Antonio Robres Turon
 
Ad

Recently uploaded (20)

Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
S3 + AWS Athena how to integrate s3 aws plus athena
S3 + AWS Athena how to integrate s3 aws plus athenaS3 + AWS Athena how to integrate s3 aws plus athena
S3 + AWS Athena how to integrate s3 aws plus athena
aianand98
 
SamFw Tool v4.9 Samsung Frp Tool Free Download
SamFw Tool v4.9 Samsung Frp Tool Free DownloadSamFw Tool v4.9 Samsung Frp Tool Free Download
SamFw Tool v4.9 Samsung Frp Tool Free Download
Iobit Uninstaller Pro Crack
 
Best HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRMBest HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRM
accordHRM
 
IObit Uninstaller Pro Crack {2025} Download Free
IObit Uninstaller Pro Crack {2025} Download FreeIObit Uninstaller Pro Crack {2025} Download Free
IObit Uninstaller Pro Crack {2025} Download Free
Iobit Uninstaller Pro Crack
 
Programs as Values - Write code and don't get lost
Programs as Values - Write code and don't get lostPrograms as Values - Write code and don't get lost
Programs as Values - Write code and don't get lost
Pierangelo Cecchetto
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
Multi-Agent Era will Define the Future of Software
Multi-Agent Era will Define the Future of SoftwareMulti-Agent Era will Define the Future of Software
Multi-Agent Era will Define the Future of Software
Ivo Andreev
 
How to Create a Crypto Wallet Like Trust.pptx
How to Create a Crypto Wallet Like Trust.pptxHow to Create a Crypto Wallet Like Trust.pptx
How to Create a Crypto Wallet Like Trust.pptx
riyageorge2024
 
How I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetryHow I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetry
Cees Bos
 
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb ClarkDeploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Peter Caitens
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
File Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full VersionFile Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full Version
raheemk1122g
 
Quasar Framework Introduction for C++ develpoers
Quasar Framework Introduction for C++ develpoersQuasar Framework Introduction for C++ develpoers
Quasar Framework Introduction for C++ develpoers
sadadkhah
 
cram_advancedword2007version2025final.ppt
cram_advancedword2007version2025final.pptcram_advancedword2007version2025final.ppt
cram_advancedword2007version2025final.ppt
ahmedsaadtax2025
 
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by AjathMobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Ajath Infotech Technologies LLC
 
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business StageA Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
SynapseIndia
 
NYC ACE 08-May-2025-Combined Presentation.pdf
NYC ACE 08-May-2025-Combined Presentation.pdfNYC ACE 08-May-2025-Combined Presentation.pdf
NYC ACE 08-May-2025-Combined Presentation.pdf
AUGNYC
 
wAIred_LearnWithOutAI_JCON_14052025.pptx
wAIred_LearnWithOutAI_JCON_14052025.pptxwAIred_LearnWithOutAI_JCON_14052025.pptx
wAIred_LearnWithOutAI_JCON_14052025.pptx
SimonedeGijt
 
Download 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-ActivatedDownload 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-Activated
Web Designer
 
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
S3 + AWS Athena how to integrate s3 aws plus athena
S3 + AWS Athena how to integrate s3 aws plus athenaS3 + AWS Athena how to integrate s3 aws plus athena
S3 + AWS Athena how to integrate s3 aws plus athena
aianand98
 
Best HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRMBest HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRM
accordHRM
 
IObit Uninstaller Pro Crack {2025} Download Free
IObit Uninstaller Pro Crack {2025} Download FreeIObit Uninstaller Pro Crack {2025} Download Free
IObit Uninstaller Pro Crack {2025} Download Free
Iobit Uninstaller Pro Crack
 
Programs as Values - Write code and don't get lost
Programs as Values - Write code and don't get lostPrograms as Values - Write code and don't get lost
Programs as Values - Write code and don't get lost
Pierangelo Cecchetto
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
Multi-Agent Era will Define the Future of Software
Multi-Agent Era will Define the Future of SoftwareMulti-Agent Era will Define the Future of Software
Multi-Agent Era will Define the Future of Software
Ivo Andreev
 
How to Create a Crypto Wallet Like Trust.pptx
How to Create a Crypto Wallet Like Trust.pptxHow to Create a Crypto Wallet Like Trust.pptx
How to Create a Crypto Wallet Like Trust.pptx
riyageorge2024
 
How I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetryHow I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetry
Cees Bos
 
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb ClarkDeploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Peter Caitens
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
File Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full VersionFile Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full Version
raheemk1122g
 
Quasar Framework Introduction for C++ develpoers
Quasar Framework Introduction for C++ develpoersQuasar Framework Introduction for C++ develpoers
Quasar Framework Introduction for C++ develpoers
sadadkhah
 
cram_advancedword2007version2025final.ppt
cram_advancedword2007version2025final.pptcram_advancedword2007version2025final.ppt
cram_advancedword2007version2025final.ppt
ahmedsaadtax2025
 
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by AjathMobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Ajath Infotech Technologies LLC
 
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business StageA Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
SynapseIndia
 
NYC ACE 08-May-2025-Combined Presentation.pdf
NYC ACE 08-May-2025-Combined Presentation.pdfNYC ACE 08-May-2025-Combined Presentation.pdf
NYC ACE 08-May-2025-Combined Presentation.pdf
AUGNYC
 
wAIred_LearnWithOutAI_JCON_14052025.pptx
wAIred_LearnWithOutAI_JCON_14052025.pptxwAIred_LearnWithOutAI_JCON_14052025.pptx
wAIred_LearnWithOutAI_JCON_14052025.pptx
SimonedeGijt
 
Download 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-ActivatedDownload 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-Activated
Web Designer
 

Testing Testing everywhere

  • 1. Testing, testing everywhere! Toni Robres Turón @twiindan
  • 2. {name: Toni Robres} {role: QA}
  • 7. Which characteristics should have the perfect testing tool?
  • 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
  • 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
  • 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

  • #4: 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
  • #5: You can choose an incorrect tool to testing Sometimes choose an ineficient tool
  • #8: Fleixibility
  • #15: Organized (fixtures, suites, packages...) Tools (asserts, raises, timers...) Tags DOCTEST for documentation Hooks (before, after) Parallel testing Results in Xunit format XML
  • #24: Remote WebDriver
  • #27: Language Neutral Pattern for representing a web page in an Object Oriented manner
  • #35: 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)
  翻译: