"TaaS" is an open-source product that allows you do achieve the "correct" way of doing integration testing across a variety of products via Test Automation.
Typically in organizations, there are multiple projects / products. Many organizations like to have a common Test Automation solution across these products in an effort to standardize the framework.
However, this is not a good idea! Each product should be tested using the tools and technologies that are "right" for it. Yet - these different products talk with each other and you need to test the integration between them in an automated way.
4. What
is
a
prac@ce
that
makes
Teams
successful?
Test
Automa=on
5. What
is
a
prac@ce
that
makes
Teams
unsuccessful?
Test
Automa=on
6. 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?
8. Principles
for
building
an
Automa=on
Framework
Code
Quality
Design
PaDerns
Abstrac=on
Layers
Refactor
Pairing
Extend
Evolve
9. 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)
11. Audience
Survey
What
are
the
average
number
of
products
in
your
organiza@on’s
porVolio?
…
large
organiza,on?
12. Audience
Survey
What
are
the
average
number
of
projects
across
all
these
products?
…
large
organiza,on?
…
number
of
products?
13. Audience
Survey
What
is
the
typical
technology
stack
of
these
products?
…
large
organiza,on?
…
number
of
products
and
projects?
14. 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?
15. 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?
16. 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?
21. Outlook
for
Windows
• White
/
QTP
Outlook
for
Mac
• Automator
Outlook
Web
Access
(OWA)
• Selenium
/
Ruby
Outlook
Sync
for
Android
• Robo@um
/
Java
22. 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
….
23. 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
24. Can
you
use
the
same
technology
stack
for
automa=ng
the
tes=ng
of
each
variant
of
Outlook?
The
Problem
25. Outlook
for
Windows
• White
/
QTP
Outlook
for
Mac
• Automator
Outlook
Web
Access
(OWA)
• Selenium
/
Ruby
Outlook
Sync
for
Android
• Robo@um
/
Java
28. 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
29. What
is
TaaS?
Agnos-c
PlaVorm
/
OS
Implementa@on
Language
30. What
is
TaaS?
Contract
Decoupling
of
technology
barriers
Timeout
36. 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
37. Demo
How
to
use
TaaS?
TaaS
Server
-‐>
Ruby
project
TaaS
Service
provider
-‐>
Cucumber-‐jvm
Project
(Java)
Client
–
command
line
invoca@on
45. Return
the
Results
• Output
parameters
– As
console
output
between
special
markers
• Console
logs
• Excep@ons
(if
any)
• All
return
values
are
in
“json”
format
53. TaaS
Server
• Specify
contract
details
• Implement
contracts
• Return
the
results
• Run
TaaS
Server
(REST
service)
• Serve
TaaS
Client
requests
– As
separate
processes
54. TaaS
Client
• Collect
the
input
parameters
• Invoke
the
contract
• Consume
the
result
• Con@nue
with
test
orchestra@on
55. 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
56. 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
57. 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
58. How
can
you
use
TaaS?
• Open
source
(apache2
license)
• Available
on
github!
• Available
on
rubygems.org
!
• Refer
sample
project
(taas-‐server)
to
get
started
59. Steps
to
Follow
• Nego@ate
contract
details
• Setup
&
configure
TaaS
Server
– Implement
contracts
– Return
the
results
– Run
TaaS
Server
(REST
service)
• Configure
TaaS
Client
61. Before
you
use
TaaS
…
Iden@fy
–
• Is
TaaS
the
right
thing
for
you?
62. • Error
codes
for
the
service
• Service
Discovery
• Security
• Create
a
Java
/
.Net
version
of
TaaS
Server
• Asynchronous
requests
How
can
You
help
TaaS?
63. What
TaaS
did
for
me?
• Be
crea@ve
• Find
Innova@ve
solu@on
to
the
problem
• Another
open
source
contribu@on