Upload
anand-bagmar
View
367
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Slides and link to audio from my talk + demo on how to "Automation across Platform, OS, Technologies with TaaS" at Agile India 2014, Bangalore on 1st March 2014
Citation preview
Automate across Pla.orm, OS,
Technologies with TaaS
Anand Bagmar So#ware Quality Evangelist
Principal Consultant, @BagmarAnand
Organiza@on Objec@ve
Time
Quality
Money / Value
Reality – Organiza@ons are spread across the World
What is a prac@ce that makes Teams successful?
Test Automa=on
What is a prac@ce that makes Teams unsuccessful?
Test Automa=on
Is Test Automa@on treated as 1st class ci@zen in your organiza@on? • Value – To the team? – From the team?
• Quality – Provide feedback? – Built well?
Where is Test Automa@on placed in the Food Chain of SDLC?
Principles & Prac@ces for Building a
Test Automa@on Framework
Principles for building an Automa=on Framework
Code Quality
Design PaDerns
Abstrac=on Layers
Refactor Pairing
Extend
Evolve
Prac=ces for building an Automa=on Framework
No Copy-‐Paste
Configurable
Test Data
Tools & U=li=es Logging
Screenshots, Video
Recording
Con=nuous Integra=on (CI)
Audience Survey
How many of you are part of a large organiza@on?
Audience Survey
What are the average number of products in your organiza@on’s porVolio?
… large organiza,on?
Audience Survey
What are the average number of projects across all these products?
… large organiza,on? … number of products?
Audience Survey
What is the typical technology stack of these products?
… large organiza,on? … number of products and projects?
Audience Survey
How many of you are part of merged / acquired companies?
Do you have the same technology across the “new” products?
… large organiza,on? … number of products and projects? … same technology stack?
How many of you work in distributed teams?
Audience Survey … large organiza,on? … number of products and projects? … same technology stack? … merged companies – same technology stack?
Audience Survey
Have you heard of a Common Test Automa@on framework?
Good? Bad?
Easy? Difficult?
… large organiza,on? … number of products and projects? … same technology stack? … merged companies – same technology stack? … distributed teams?
Case Study
Outlook Outlook (Windows)
Outlook (Mac)
Outlook Web Access (OWA) (Browser) Outlook
Sync (Android)
…
How will you Automate the Tes@ng for Outlook?
Outlook for Windows • White / QTP
Outlook for Mac • Automator
Outlook Web Access (OWA) • Selenium / Ruby
Outlook Sync for Android • Robo@um / Java
For a user who has installed and configured Outlook on – Windows OS – desktop version, and, – Android device – na@ve mobile app – …
An email draTed in one product is reflected in the other products
How will you Automate the Integra@on Test ….
End-‐2-‐End Integra-on
Tests
(Test Framework
for) Outlook on Windows
(Test Framework
for) Outlook Sync on Android
Create & Save as DraE
1
Verify DraE 4
Verify DraE present 2
Modify DraE
3 Orchestrator
Can you use the same technology stack for automa=ng the tes=ng
of each variant of Outlook?
The Problem
Outlook for Windows • White / QTP
Outlook for Mac • Automator
Outlook Web Access (OWA) • Selenium / Ruby
Outlook Sync for Android • Robo@um / Java
My Original Problem
The Solu=on
What is TaaS?
“TaaS” is a product that allows you to validate the integra-on across a variety of products via Test Automa-on
• The “correct” way • Pla.orm / OS agnos=c
• Implementa=on Language Independent
What is TaaS?
Agnos-c PlaVorm / OS
Implementa@on Language
What is TaaS?
Contract Decoupling of technology barriers
Timeout
What is TaaS?
Simple Parameters Input & Output
What is TaaS?
Developed in Ruby using Sinatra
TaaS is Not a …
“Tool” for integra@on different products -‐ Lack of Security
-‐ Probably not as robust
TaaS is Not a …
Load Tes@ng Tool
How does TaaS work?
End-‐2-‐End Integra-on
Tests Framework
TaaS Client
Test Framework
for Outlook on Windows
TaaS Server
Test Framework for Outlook Sync on Android
TaaS Server
Create & Save as DraE
1
Verify DraE 4
Verify DraE present 2
Modify DraE
3 Orchestrator
Service Providers
Demo
How to use TaaS? TaaS Server -‐> Ruby project
TaaS Service provider -‐> Cucumber-‐jvm Project (Java)
Client – command line invoca@on
TaaS Server Implementa@on
What is a Contract?
Specified in a simple yml file
Contract Defini@on
Contract Defini@on
Implement the Contract
• Update tests to -‐ – Handle input parameters
• From Environment variables
– Execute the “test”
Implement the Contract
Parse Input Parameters
Return the Results
• Output parameters – As console output between special markers
• Console logs • Excep@ons (if any) • All return values are in “json” format
Collect Output Parameter Values
Return Output Parameter Values
Run TaaS Server
• Dedicated machine • Provide IP address / host name + port to poten@al clients
TaaS Client Implementa@on
Setup TaaS Client
Invoke TaaS Contract
TaaS Technical Summary
TaaS Server
• Specify contract details • Implement contracts • Return the results • Run TaaS Server (REST service) • Serve TaaS Client requests – As separate processes
TaaS Client
• Collect the input parameters • Invoke the contract • Consume the result • Con@nue with test orchestra@on
Summary of Features
• Contract – Decoupling of technology barriers – Timeout
• Passing of input parameters as Environment variables
• Result as json – Output parameters – Console logs and errors – Excep@ons
• Developed in Ruby using Sinatra
Why is this a Good Idea?
• Automate the last-‐mile • No code duplica@on • Implementa@on of contract lies with the framework tes@ng that product – Evolves with product changes
• Decoupling of technologies
Why is this a Good Idea?
• Helps in Manual Tes@ng (setup of data) • Anyone can use it • Each product is tested in the “best” possible way
How can you use TaaS?
• Open source (apache2 license) • Available on github! • Available on rubygems.org ! • Refer sample project (taas-‐server) to get started
Steps to Follow
• Nego@ate contract details • Setup & configure TaaS Server – Implement contracts – Return the results – Run TaaS Server (REST service)
• Configure TaaS Client
Does it really work?
>1.2K downloads
Before you use TaaS …
Iden@fy – • Is TaaS the right thing for you?
• Error codes for the service • Service Discovery • Security • Create a Java / .Net version of TaaS Server • Asynchronous requests
How can You help TaaS?
What TaaS did for me?
• Be crea@ve • Find Innova@ve solu@on to the problem • Another open source contribu@on