Automate across Platform, OS, Technologies with TaaS

1,315 views
1,255 views

Published on

"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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,315
On SlideShare
0
From Embeds
0
Number of Embeds
747
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Automate across Platform, OS, Technologies with TaaS

  1. 1. Automate  across   Pla.orm,  OS,   Technologies  with  TaaS   Anand  Bagmar   So#ware  Quality  Evangelist          Principal  Consultant,   @BagmarAnand  
  2. 2. Organiza@on  Objec@ve   Time   Quality   Money  /   Value  
  3. 3. Reality  –  Organiza@ons     are  spread  across  the  World  
  4. 4. What  is  a  prac@ce  that  makes  Teams   successful?   Test  Automa=on  
  5. 5. What  is  a  prac@ce  that  makes  Teams   unsuccessful?   Test  Automa=on  
  6. 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?  
  7. 7. Principles  &  Prac@ces     for  Building  a   Test  Automa@on  Framework  
  8. 8. Principles  for  building   an  Automa=on   Framework   Code  Quality   Design  PaDerns   Abstrac=on   Layers   Refactor  Pairing   Extend   Evolve  
  9. 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)  
  10. 10. Audience  Survey   How  many  of  you  are  part  of  a  large   organiza@on?  
  11. 11. Audience  Survey   What  are  the  average  number  of  products  in   your  organiza@on’s  porVolio?   …  large  organiza,on?  
  12. 12. Audience  Survey   What  are  the  average  number  of  projects  across   all  these  products?   …  large  organiza,on?   …  number  of  products?  
  13. 13. Audience  Survey   What  is  the  typical  technology  stack  of  these   products?   …  large  organiza,on?   …  number  of  products  and  projects?  
  14. 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. 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. 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?  
  17. 17. Case  Study  
  18. 18. Outlook   Outlook   (Windows)   Outlook   (Mac)   Outlook  Web   Access  (OWA)   (Browser)   Outlook   Sync   (Android)   …  
  19. 19. How  will  you  Automate  the  Tes@ng   for  Outlook?  
  20. 20. Outlook  for   Windows   •  White  /  QTP   Outlook  for   Mac   •  Automator   Outlook  Web   Access   (OWA)   •  Selenium  /   Ruby   Outlook  Sync   for  Android   •  Robo@um  /   Java  
  21. 21. 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  ….  
  22. 22. 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  
  23. 23. Can  you  use  the  same  technology   stack  for  automa=ng  the  tes=ng   of  each  variant  of  Outlook?   The  Problem  
  24. 24. Outlook  for   Windows   •  White  /  QTP   Outlook  for   Mac   •  Automator   Outlook  Web   Access   (OWA)   •  Selenium  /   Ruby   Outlook  Sync   for  Android   •  Robo@um  /   Java  
  25. 25. My  Original  Problem  
  26. 26. The  Solu=on  
  27. 27. 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  
  28. 28. What  is  TaaS?   Agnos-c   PlaVorm  /  OS   Implementa@on  Language  
  29. 29. What  is  TaaS?   Contract   Decoupling  of  technology  barriers   Timeout  
  30. 30. What  is  TaaS?   Simple  Parameters   Input  &  Output  
  31. 31. What  is  TaaS?   Developed  in  Ruby  using  Sinatra  
  32. 32. TaaS  is  Not  a  …   “Tool”  for  integra@on  different  products   -­‐  Lack  of  Security   -­‐  Probably  not  as  robust  
  33. 33. TaaS  is  Not  a  …   Load  Tes@ng  Tool  
  34. 34. How  does  TaaS  work?  
  35. 35. 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  
  36. 36. Demo   How  to  use  TaaS?   TaaS  Server  -­‐>  Ruby  project   TaaS  Service  provider  -­‐>  Cucumber-­‐jvm  Project   (Java)   Client  –  command  line  invoca@on  
  37. 37. TaaS  Server  Implementa@on  
  38. 38. What  is  a  Contract?   Specified  in  a  simple  yml  file  
  39. 39. Contract  Defini@on  
  40. 40. Contract  Defini@on  
  41. 41. Implement  the  Contract   •  Update  tests  to  -­‐   – Handle  input  parameters   •  From  Environment  variables   – Execute  the  “test”  
  42. 42. Implement  the  Contract  
  43. 43. Parse  Input  Parameters  
  44. 44. Return  the  Results   •  Output  parameters   – As  console  output  between  special  markers   •  Console  logs   •  Excep@ons  (if  any)   •  All  return  values  are  in  “json”  format  
  45. 45. Collect  Output  Parameter  Values  
  46. 46. Return  Output  Parameter  Values  
  47. 47. Run  TaaS  Server   •  Dedicated  machine   •  Provide  IP  address  /  host  name  +  port  to   poten@al  clients  
  48. 48. TaaS  Client  Implementa@on  
  49. 49. Setup  TaaS  Client  
  50. 50. Invoke  TaaS  Contract  
  51. 51. TaaS  Technical  Summary  
  52. 52. TaaS  Server   •  Specify  contract  details   •  Implement  contracts   •  Return  the  results   •  Run  TaaS  Server  (REST  service)   •  Serve  TaaS  Client  requests   – As  separate  processes  
  53. 53. TaaS  Client   •  Collect  the  input  parameters   •  Invoke  the  contract   •  Consume  the  result   •  Con@nue  with  test  orchestra@on  
  54. 54. 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  
  55. 55. 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  
  56. 56. 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    
  57. 57. How  can  you  use  TaaS?   •  Open  source  (apache2  license)   •  Available  on  github!     •  Available  on  rubygems.org  !   •  Refer  sample  project  (taas-­‐server)  to  get   started  
  58. 58. Steps  to  Follow   •  Nego@ate  contract  details   •  Setup  &  configure  TaaS  Server   – Implement  contracts   – Return  the  results   – Run  TaaS  Server  (REST  service)   •  Configure  TaaS  Client  
  59. 59. Does  it  really  work?   >1.2K  downloads  
  60. 60. Before  you  use  TaaS  …   Iden@fy  –     •  Is  TaaS  the  right  thing  for  you?  
  61. 61. •  Error  codes  for  the  service   •  Service  Discovery   •  Security   •  Create  a  Java  /  .Net  version  of  TaaS  Server   •  Asynchronous  requests   How  can  You  help  TaaS?  
  62. 62. What  TaaS  did  for  me?   •  Be  crea@ve   •  Find  Innova@ve  solu@on  to  the  problem   •  Another  open  source  contribu@on  
  63. 63. abagmar@gmail.com                @BagmarAnand     about.me/anand.bagmar   Thank  you  

×