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?

More Related Content

PPTX
One to rule them all
PPTX
GIB2021 - Testing with Postman
PDF
RubyConf Taiwan 2016 - Large scale Rails applications
PDF
Craft Beer & Clojure
PDF
Testing course content converted
PDF
Swagger: Restful documentation that won't put you to sleep
PDF
Performance and Abstractions
PDF
RubyConf China 2015 - Rails off assets pipeline
One to rule them all
GIB2021 - Testing with Postman
RubyConf Taiwan 2016 - Large scale Rails applications
Craft Beer & Clojure
Testing course content converted
Swagger: Restful documentation that won't put you to sleep
Performance and Abstractions
RubyConf China 2015 - Rails off assets pipeline

What's hot (20)

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

Similar to Testing Testing everywhere (20)

PPTX
¡El mejor lenguaje para automatizar pruebas!
PPTX
AUTOMATION TESTING tools extensive application
PDF
Browser-level testing
PPT
Selenium Concepts
PPTX
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
PDF
Selenium Automation Testing - A Complete Guide
ODP
2014 11 20 Drupal 7 -> 8 test migratie
PDF
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
PPTX
Selenium.pptx
KEY
Selenium at STPCon - Dallas 2011
PDF
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
ODP
Behat Workshop at WeLovePHP
DOCX
Testing and Automation
PPTX
MyHeritage - End 2 End testing Infra
PDF
Selenium Automation Testing - A Complete Guide.pdf
PPTX
Selenium
PDF
Selenium Automation Testing - A Complete Guide.pdf
PPT
QSpiders - Automation using Selenium
PDF
Selenium Testing The Complete Step-by-Step Tutorial.pdf
PPTX
Helpful Automation Techniques - Selenium Camp 2014
¡El mejor lenguaje para automatizar pruebas!
AUTOMATION TESTING tools extensive application
Browser-level testing
Selenium Concepts
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
Selenium Automation Testing - A Complete Guide
2014 11 20 Drupal 7 -> 8 test migratie
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
Selenium.pptx
Selenium at STPCon - Dallas 2011
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
Behat Workshop at WeLovePHP
Testing and Automation
MyHeritage - End 2 End testing Infra
Selenium Automation Testing - A Complete Guide.pdf
Selenium
Selenium Automation Testing - A Complete Guide.pdf
QSpiders - Automation using Selenium
Selenium Testing The Complete Step-by-Step Tutorial.pdf
Helpful Automation Techniques - Selenium Camp 2014
Ad

More from Antonio Robres Turon (8)

PPTX
Mockito para tus pruebas unitarias
PPTX
[Tefcon] are you ready for the war
PPTX
BDD en practica (seminario)
PPTX
El pequeño se hace mayor
PPT
PPTX
Testing Proud
PPSX
Existe el tester perfecto
PPSX
Existe el tester perfecto
Mockito para tus pruebas unitarias
[Tefcon] are you ready for the war
BDD en practica (seminario)
El pequeño se hace mayor
Testing Proud
Existe el tester perfecto
Existe el tester perfecto

Recently uploaded (20)

PDF
AI in Product Development-omnex systems
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
medical staffing services at VALiNTRY
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
AI in Product Development-omnex systems
How to Migrate SBCGlobal Email to Yahoo Easily
ISO 45001 Occupational Health and Safety Management System
Design an Analysis of Algorithms II-SECS-1021-03
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PTS Company Brochure 2025 (1).pdf.......
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Design an Analysis of Algorithms I-SECS-1021-03
Wondershare Filmora 15 Crack With Activation Key [2025
Online Work Permit System for Fast Permit Processing
Navsoft: AI-Powered Business Solutions & Custom Software Development
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Which alternative to Crystal Reports is best for small or large businesses.pdf
medical staffing services at VALiNTRY
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Upgrade and Innovation Strategies for SAP ERP Customers
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Operating system designcfffgfgggggggvggggggggg
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...

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)