SlideShare a Scribd company logo
1 of 35
SOA Testing 
Roopesh Kohad 
Shirish Kawatkar
Roopesh Kohad 
• QA Manager/Test Architect with Synerzip 
• 13+ years of experience working in Product 
development teams leading the Test 
Engineering efforts 
• Email: roopesh.kohad@gmail.com 
• LinkedIn: 
http://in.linkedin.com/in/roopeshkohad
Shirish Kawatkar 
• QA Lead with Synerzip 
• 9+ years of experience in software testing in 
Microsoft & Open technologies 
• Email: shirish@synerzip.com 
• LinkedIn: 
http://in.linkedin.com/in/shirishkawatkar
Agenda 
• SOA 
– Introduction 
– Web Services 
– Testing Aspects 
• SOAP web services 
– Introduction 
– Testing 
• RESTful web services 
– Introduction 
– Testing 
• SoapUI 
– Features 
– Demo
Agenda Contd… 
• Automation 
– Custom clients in Open & Microsoft 
Technologies 
– To automate – Issue Tracking System, TCM, CI 
etc. 
• Demos 
– Create a test case using SoapUI & Integration 
test 
– Create a test case using WCFClient 
– Write a simple client in C# using Visual Studio 
– Write a simple client in Java using Eclipse
What is SOA? 
• Service Oriented Architecture (SOA) is a 
software design pattern or philosophy 
• Distinct and loosely coupled software pieces 
(called services) encapsulating business logic 
providing application functionality 
• Client (Service Requester)  Server (Service 
Provider) model 
• Independent of any vendor, product or 
technology 
• Reference - 
http://en.wikipedia.org/wiki/Service-oriented_ 
architecture
SOA Elements
SOA Principles 
• Loose coupling 
• Contract 
• Abstraction 
• Autonomy 
• Reusability 
• Statelessness 
• Discoverability 
• Composability 
• Etc..
What is a Service? 
• Services are unassociated, loosely coupled 
units of functionality that are 
– self-contained 
– Self-describing 
• Well defined interface/contract using 
standard protocols 
• Independent of any technology or vendor
What is a Web service? 
• Service which communicates over the 
internet or www 
• Has API with web methods / operations 
• Uses web standards like, 
– XML/JSON for defining 
• Interface/Contract 
• Message architecture & format 
– HTTP(s) protocol for communication
SOA Examples 
• Examples, 
– Websites like Portals or Mashups 
– Payment Gateways 
– Mobile application clients 
• Composed of, 
– in-house (different department) 
– third-party (different vendor) 
– public services (government etc.)
SOA Testing Challenges 
• No User Interface 
• Heterogeneous 
– Variety of service types, implementation & 
technologies 
• Third-party service so no control 
• Isolation of defects 
– Whose responsibility? Provider? Requester? Both? 
• How do you know vendor has tested the 
service thoroughly? 
• If we are a provider, how do we show that it is 
worthy of acceptance?
SOA Testing Aspects 
• Everything has to be tested 
– End-to-End 
– Service-by-Service 
– Interface-by-Interface 
– Process orchestration 
• End-to-End 
– User-Interface testing 
• Service Testing 
– Functional 
• Contract/API 
– Non-functional 
• Security 
• Performance
SOA Testing Aspects 
• Practices & Techniques 
– Continuous Integration & Deployment 
– Service virtualization / Mocking 
• Test Management 
– Framework 
– Regression 
– Reporting
Web Service Types 
• SOAP / WSDL 
– Simple Object Access Protocol 
– Web Services Description Language 
• REST / WADL 
– Representational State Transfer 
– Web Application Description Language 
• Others 
– XML/JSON-RPC
SOAP 
• Simple Object Access Protocol 
• Interface  Endpoint(s), Operation(s) 
• Message format  XML 
• Transport  HTTP or others 
• WSDL – Web Services Description 
Language 
– Machine readable 
– Automatic code generation (Proxy)
SOAP Example 
• IP2Geo 
– Service 
• http://ws.cdyne.com/ip2geo/ip2geo.asmx 
– Request-Response 
• http://ws.cdyne.com/ip2geo/ip2geo.asmx? 
op=ResolveIP 
– WSDL 
• http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl
SOAP Testing 
• Testing a SOAP API means manipulating a 
request XML and interpreting a response 
XML
SOAP Testing Tools 
• IDE Tools 
– Eclipse Web Service Explorer 
– WCFTestClient from Visual Studio 
• Web-based 
– http://wsdlbrowser.com 
– http://www.soapclient.com/soaptest.html 
• Browser Apps 
– Firefox - SOAPClient 
– Chrome – wizdler
SOAP Testing Tools 
• Custom 
– Eclipse/Java – Web service client / soap-ws, 
Junit 
– VS/.NET – Service/Web Reference, Nunit 
– Perl – SOAP:Lite, PerlUnit 
– Language – {SOAP Library / Proxy code}, 
{xUnit} 
• Specialized 
– SoapUI (http://www.soapui.org) 
– SoaTest (http://www.parasoft.com/soatest)
Q&A?
REST 
• Representational State Transfer 
• Architectural style 
• It is NOT a protocol like SOAP. Protocol is HTTP. 
• HTTP operations 
– GET, POST, PUT, DELETE, TRACE, HEAD, OPTIONS 
• Endpoint  Resource 
• Operations on resource 
– Create  POST 
– Retrieve  GET 
– Update  PUT 
– Delete  DELETE
REST constraints 
• Use HTTP methods explicitly 
• Be stateless or Idempotent 
• Expose directory structure-like URIs 
• Transfer XML, JavaScript Object Notation 
(JSON), or both 
• Etc.
REST API Examples 
• Twitter: https://dev.twitter.com/rest/public 
• Flickr: http://www.flickr.com/services/api 
• Google - 
https://developers.google.com/maps/docum 
entation/timezone/ 
– Example – Current Time Zone 
• Amazon S3 - 
http://docs.aws.amazon.com/AmazonS3/late 
st/API/APIRest.html 
• http://www.thomas-bayer.com/sqlrest/
REST API 
• Endpoint – Root of API 
• List of Resources in a hierarchical manner 
– /api/customers/ 
– /api/customers/1 
– /api/customers/1/zipcode 
• For each resource 
– List of HTTP methods: GET, POST, PUT, DELETE 
– For each method 
• List of Headers 
• Request JSON/XML for POST/PUT 
• Response JSON/XML
REST Misc 
• Sample WADL 
• REST APIs are generally not open and 
require some kind of authentication 
– Basic HTTP authentication 
– API Key (linked to an account, eg. Google) 
– OAuth 
• Further 
– XML/JSON processing for verification 
– Regular expressions
REST Testing 
• Testing a REST API means manipulating 
the request URI and interpreting the answer
REST Testing Tools 
• Desktop tools 
– https://github.com/wiztools/rest-client 
• Command Line tools 
– cURL 
• Online Tools 
– http://apikitchen.com/ 
– http://hackst.com/ 
– https://apigee.com/console 
• Browser apps 
– Firefox – REST Client 
– Chrome – Advaned Rest Client
REST Testing Tools 
• Custom 
– Perl – REST::Client, PerlUnit 
– Java – Apache HttpClient, JUnit 
– Language – {Http library, REST client library}, 
{xUnit}
Q&A?
SoapUI 
• Types of Testing 
– Functional 
– Data-driven 
– Load 
– Integration 
– Security 
• Test Management 
– Test Cases/Suite 
– Reporting 
• Miscellaneous 
– Mocking 
– Authentication
SoapUI Demo 
• SOAP Service 
– Create Project 
– Create Test suite 
– Assertions 
– Mocking
SoapUI Demo 
• REST service 
– Create Project 
– Create Test suite 
– Assertions 
– Authentication 
– Integration 
– Data-driven 
– Load 
– Reporting
Q&A?
Thank You

More Related Content

What's hot

Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For AgileNaresh Jain
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API TestingBruno Pedro
 
Soa testing soap ui (2)
Soa testing   soap ui (2)Soa testing   soap ui (2)
Soa testing soap ui (2)Knoldus Inc.
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API TestingTechWell
 
API Automation Testing Using RestAssured+Cucumber
API Automation Testing Using RestAssured+CucumberAPI Automation Testing Using RestAssured+Cucumber
API Automation Testing Using RestAssured+CucumberKnoldus Inc.
 
2015-StarWest presentation on REST-assured
2015-StarWest presentation on REST-assured2015-StarWest presentation on REST-assured
2015-StarWest presentation on REST-assuredEing Ong
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation StrategyMartin Ruddy
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.Andrey Oleynik
 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation ArchitectureErdem YILDIRIM
 
Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessLee Barnes
 
Test Automation
Test AutomationTest Automation
Test Automationrockoder
 
Postman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioPostman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioHYS Enterprise
 
API Test Automation
API Test Automation API Test Automation
API Test Automation SQALab
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing ProcessQASource
 
Rest API Testing
Rest API TestingRest API Testing
Rest API Testingupadhyay_25
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST APIIvan Katunou
 

What's hot (20)

Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 
Soa testing soap ui (2)
Soa testing   soap ui (2)Soa testing   soap ui (2)
Soa testing soap ui (2)
 
Soap ui
Soap uiSoap ui
Soap ui
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API Testing
 
API Automation Testing Using RestAssured+Cucumber
API Automation Testing Using RestAssured+CucumberAPI Automation Testing Using RestAssured+Cucumber
API Automation Testing Using RestAssured+Cucumber
 
2015-StarWest presentation on REST-assured
2015-StarWest presentation on REST-assured2015-StarWest presentation on REST-assured
2015-StarWest presentation on REST-assured
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation Strategy
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.
 
API Testing for everyone.pptx
API Testing for everyone.pptxAPI Testing for everyone.pptx
API Testing for everyone.pptx
 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture
 
Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for Success
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Postman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioPostman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenario
 
API Test Automation
API Test Automation API Test Automation
API Test Automation
 
Api testing
Api testingApi testing
Api testing
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing Process
 
Rest API Testing
Rest API TestingRest API Testing
Rest API Testing
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 

Similar to SOA Testing

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
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testingrdekleijn
 
Aws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API GatewayAws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API Gatewayaws-marketing-il
 
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayAWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayVadim Zendejas
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- MadridVinay Kumar
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API RecommendationsJeelani Shaik
 
APIs and Services: One Platform or Two?
APIs and Services: One Platform or Two?APIs and Services: One Platform or Two?
APIs and Services: One Platform or Two?Akana
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayAmazon Web Services
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical ApproachMadhaiyan Muthu
 
An introduction to the API for OnTime for IBM
An introduction to the API for OnTime for IBMAn introduction to the API for OnTime for IBM
An introduction to the API for OnTime for IBMontimesuite
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayAmazon Web Services
 
Do not automate GUI testing
Do not automate GUI testingDo not automate GUI testing
Do not automate GUI testingAtila Inovecký
 
Api fundamentals
Api fundamentalsApi fundamentals
Api fundamentalsAgileDenver
 
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
 
Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017JoEllen Carter
 

Similar to SOA Testing (20)

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...
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
 
Testing Testing everywhere
Testing Testing everywhereTesting Testing everywhere
Testing Testing everywhere
 
REST APIs
REST APIsREST APIs
REST APIs
 
Aws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API GatewayAws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API Gateway
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
One to rule them all
One to rule them allOne to rule them all
One to rule them all
 
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayAWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- Madrid
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API Recommendations
 
APIs and Services: One Platform or Two?
APIs and Services: One Platform or Two?APIs and Services: One Platform or Two?
APIs and Services: One Platform or Two?
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API Gateway
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical Approach
 
An introduction to the API for OnTime for IBM
An introduction to the API for OnTime for IBMAn introduction to the API for OnTime for IBM
An introduction to the API for OnTime for IBM
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API Gateway
 
Do not automate GUI testing
Do not automate GUI testingDo not automate GUI testing
Do not automate GUI testing
 
Operating your Production API
Operating your Production APIOperating your Production API
Operating your Production API
 
Api fundamentals
Api fundamentalsApi fundamentals
Api fundamentals
 
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
 
Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

SOA Testing

  • 1. SOA Testing Roopesh Kohad Shirish Kawatkar
  • 2. Roopesh Kohad • QA Manager/Test Architect with Synerzip • 13+ years of experience working in Product development teams leading the Test Engineering efforts • Email: roopesh.kohad@gmail.com • LinkedIn: http://in.linkedin.com/in/roopeshkohad
  • 3. Shirish Kawatkar • QA Lead with Synerzip • 9+ years of experience in software testing in Microsoft & Open technologies • Email: shirish@synerzip.com • LinkedIn: http://in.linkedin.com/in/shirishkawatkar
  • 4. Agenda • SOA – Introduction – Web Services – Testing Aspects • SOAP web services – Introduction – Testing • RESTful web services – Introduction – Testing • SoapUI – Features – Demo
  • 5. Agenda Contd… • Automation – Custom clients in Open & Microsoft Technologies – To automate – Issue Tracking System, TCM, CI etc. • Demos – Create a test case using SoapUI & Integration test – Create a test case using WCFClient – Write a simple client in C# using Visual Studio – Write a simple client in Java using Eclipse
  • 6. What is SOA? • Service Oriented Architecture (SOA) is a software design pattern or philosophy • Distinct and loosely coupled software pieces (called services) encapsulating business logic providing application functionality • Client (Service Requester)  Server (Service Provider) model • Independent of any vendor, product or technology • Reference - http://en.wikipedia.org/wiki/Service-oriented_ architecture
  • 8. SOA Principles • Loose coupling • Contract • Abstraction • Autonomy • Reusability • Statelessness • Discoverability • Composability • Etc..
  • 9. What is a Service? • Services are unassociated, loosely coupled units of functionality that are – self-contained – Self-describing • Well defined interface/contract using standard protocols • Independent of any technology or vendor
  • 10. What is a Web service? • Service which communicates over the internet or www • Has API with web methods / operations • Uses web standards like, – XML/JSON for defining • Interface/Contract • Message architecture & format – HTTP(s) protocol for communication
  • 11. SOA Examples • Examples, – Websites like Portals or Mashups – Payment Gateways – Mobile application clients • Composed of, – in-house (different department) – third-party (different vendor) – public services (government etc.)
  • 12. SOA Testing Challenges • No User Interface • Heterogeneous – Variety of service types, implementation & technologies • Third-party service so no control • Isolation of defects – Whose responsibility? Provider? Requester? Both? • How do you know vendor has tested the service thoroughly? • If we are a provider, how do we show that it is worthy of acceptance?
  • 13. SOA Testing Aspects • Everything has to be tested – End-to-End – Service-by-Service – Interface-by-Interface – Process orchestration • End-to-End – User-Interface testing • Service Testing – Functional • Contract/API – Non-functional • Security • Performance
  • 14. SOA Testing Aspects • Practices & Techniques – Continuous Integration & Deployment – Service virtualization / Mocking • Test Management – Framework – Regression – Reporting
  • 15. Web Service Types • SOAP / WSDL – Simple Object Access Protocol – Web Services Description Language • REST / WADL – Representational State Transfer – Web Application Description Language • Others – XML/JSON-RPC
  • 16. SOAP • Simple Object Access Protocol • Interface  Endpoint(s), Operation(s) • Message format  XML • Transport  HTTP or others • WSDL – Web Services Description Language – Machine readable – Automatic code generation (Proxy)
  • 17. SOAP Example • IP2Geo – Service • http://ws.cdyne.com/ip2geo/ip2geo.asmx – Request-Response • http://ws.cdyne.com/ip2geo/ip2geo.asmx? op=ResolveIP – WSDL • http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl
  • 18. SOAP Testing • Testing a SOAP API means manipulating a request XML and interpreting a response XML
  • 19. SOAP Testing Tools • IDE Tools – Eclipse Web Service Explorer – WCFTestClient from Visual Studio • Web-based – http://wsdlbrowser.com – http://www.soapclient.com/soaptest.html • Browser Apps – Firefox - SOAPClient – Chrome – wizdler
  • 20. SOAP Testing Tools • Custom – Eclipse/Java – Web service client / soap-ws, Junit – VS/.NET – Service/Web Reference, Nunit – Perl – SOAP:Lite, PerlUnit – Language – {SOAP Library / Proxy code}, {xUnit} • Specialized – SoapUI (http://www.soapui.org) – SoaTest (http://www.parasoft.com/soatest)
  • 21. Q&A?
  • 22. REST • Representational State Transfer • Architectural style • It is NOT a protocol like SOAP. Protocol is HTTP. • HTTP operations – GET, POST, PUT, DELETE, TRACE, HEAD, OPTIONS • Endpoint  Resource • Operations on resource – Create  POST – Retrieve  GET – Update  PUT – Delete  DELETE
  • 23. REST constraints • Use HTTP methods explicitly • Be stateless or Idempotent • Expose directory structure-like URIs • Transfer XML, JavaScript Object Notation (JSON), or both • Etc.
  • 24. REST API Examples • Twitter: https://dev.twitter.com/rest/public • Flickr: http://www.flickr.com/services/api • Google - https://developers.google.com/maps/docum entation/timezone/ – Example – Current Time Zone • Amazon S3 - http://docs.aws.amazon.com/AmazonS3/late st/API/APIRest.html • http://www.thomas-bayer.com/sqlrest/
  • 25. REST API • Endpoint – Root of API • List of Resources in a hierarchical manner – /api/customers/ – /api/customers/1 – /api/customers/1/zipcode • For each resource – List of HTTP methods: GET, POST, PUT, DELETE – For each method • List of Headers • Request JSON/XML for POST/PUT • Response JSON/XML
  • 26. REST Misc • Sample WADL • REST APIs are generally not open and require some kind of authentication – Basic HTTP authentication – API Key (linked to an account, eg. Google) – OAuth • Further – XML/JSON processing for verification – Regular expressions
  • 27. REST Testing • Testing a REST API means manipulating the request URI and interpreting the answer
  • 28. REST Testing Tools • Desktop tools – https://github.com/wiztools/rest-client • Command Line tools – cURL • Online Tools – http://apikitchen.com/ – http://hackst.com/ – https://apigee.com/console • Browser apps – Firefox – REST Client – Chrome – Advaned Rest Client
  • 29. REST Testing Tools • Custom – Perl – REST::Client, PerlUnit – Java – Apache HttpClient, JUnit – Language – {Http library, REST client library}, {xUnit}
  • 30. Q&A?
  • 31. SoapUI • Types of Testing – Functional – Data-driven – Load – Integration – Security • Test Management – Test Cases/Suite – Reporting • Miscellaneous – Mocking – Authentication
  • 32. SoapUI Demo • SOAP Service – Create Project – Create Test suite – Assertions – Mocking
  • 33. SoapUI Demo • REST service – Create Project – Create Test suite – Assertions – Authentication – Integration – Data-driven – Load – Reporting
  • 34. Q&A?

Editor's Notes

  1. SOA is the philosophy of encapsulating application logic in services with a uniformly defined interface and making these publicly available via discovery mechanisms.
  2. Security: - Vulnerabilities within system - Denial-of-Service (DOS) - Unauthorized access Performance: Response time Throughput
  3. http://www.webservicex.net http://www.restfulwebservices.net Some examples of free web services and UDDI registries: Web services Credit card verification: https://ws.cdyne.com/creditcardverify/luhnchecker.asmx?wsdl Census information: http://ws.cdyne.com/DemographixWS/DemographixQuery.asmx?wsdl Currency foreign exchange: http://www.xignite.com/xCurrencies.asmx?WSDL Email address validation: http://www.webservicex.com/ValidateEmail.asmx?WSDL English dictionary: http://services.aonaware.com/DictService/DictService.asmx?WSDL Number conversion: http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL Image converter (e.g. PSD into JPG): http://www.bigislandcolor.com/imageconvert.wsdl IP address into location: http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl Stock quote: http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl Translator (english to chinese): http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl FIFA World Cup 2010: http://footballpool.dataaccess.eu/data/info.wso?WSDL Weather forecast: http://www.webservicex.net/WeatherForecast.asmx?WSDL UDDI registries http://hma.eoportal.org/juddi/inquiry http://registry.gbif.net/uddi/inquiry http://test.uddi.microsoft.com/inquire
  4. IDE & Web based tools are for one time check
  5. What does Representational State Transfer mean? - The current state of resource is transferred in XML/JSON form.