Automate across Platform, OS, Technologies with TaaS

780 views
672 views

Published on

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

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
780
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
20
Comments
1
Likes
3
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   Money  /   Value   Time   Quality  
  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. Where  is  Test  Automa@on  placed   in  the  Food  Chain  of  SDLC?   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?  
  7. 7. Principles  &  Prac@ces     for  Building  a   Test  Automa@on  Framework  
  8. 8. Code  Quality   Evolve   Extend   Design  PaDerns   Principles  for  building   an  Automa=on   Framework   Pairing   Refactor   Abstrac=on   Layers  
  9. 9. No  Copy-­‐Paste   Con=nuous   Integra=on  (CI)   Screenshots,   Video   Recording   Configurable   Prac=ces  for  building   an  Automa=on   Framework   Logging   Tools  &   U=li=es   Test  Data  
  10. 10. Audience  Survey   How  many  of  you  are  part  of  a  large   organiza@on?  
  11. 11. Audience  Survey   …  large  organiza,on?   What  are  the  average  number  of  products  in   your  organiza@on’s  porVolio?  
  12. 12. Audience  Survey   …  large  organiza,on?   …  number  of  products?   What  are  the  average  number  of  projects  across   all  these  products?  
  13. 13. Audience  Survey   …  large  organiza,on?   …  number  of  products  and  projects?   What  is  the  typical  technology  stack  of  these   products?  
  14. 14. Audience  Survey   …  large  organiza,on?   …  number  of  products  and  projects?   …  same  technology  stack?   How  many  of  you  are  part  of  merged  /  acquired   companies?   Do  you  have  the  same  technology  across  the   “new”  products?  
  15. 15. Audience  Survey   …  large  organiza,on?   …  number  of  products  and  projects?   …  same  technology  stack?   …  merged  companies  –  same  technology  stack?   How  many  of  you  work  in  distributed  teams?  
  16. 16. Audience  Survey   …  large  organiza,on?   …  number  of  products  and  projects?   …  same  technology  stack?   …  merged  companies  –  same  technology  stack?   …  distributed  teams?   Have  you  heard  of  a     Common  Test  Automa@on  framework?     Good?  Bad?     Easy?  Difficult?  
  17. 17. Case  Study  
  18. 18. Outlook   (Mac)   Outlook   (Windows)   Outlook  Web   Access  (OWA)   (Browser)   Outlook   Outlook   Sync   (Android)   …  
  19. 19. How  will  you  Automate  the  Tes@ng   for  Outlook?  
  20. 20. Outlook  for   Windows   Outlook  for   Mac   •  White  /  QTP   •  Automator   Outlook  Web   Access   (OWA)   •  Selenium  /   Ruby   Outlook  Sync   for  Android   •  Robo@um  /   Java  
  21. 21. How  will  you  Automate  the     Integra@on  Test  ….   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    
  22. 22. Create  &  Save   as  DraE   1   4   End-­‐2-­‐End   Integra-on   Tests   2   Verify  DraE   Verify  DraE     present   3   Orchestrator   Modify  DraE   (Test   Framework   for)     Outlook  on   Windows     (Test   Framework   for)   Outlook   Sync  on   Android    
  23. 23. The  Problem   Can  you  use  the  same  technology   stack  for  automa=ng  the  tes=ng   of  each  variant  of  Outlook?  
  24. 24. Outlook  for   Windows   Outlook  for   Mac   •  White  /  QTP   •  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. Create  &  Save   as  DraE   1   End-­‐2-­‐End   Integra-on   TaaS   Tests   Client   Framework   Orchestrator   4   Verify  DraE   Test   Framework   TaaS   for     Server   Outlook  on   Windows     Service  Providers   2   Verify  DraE     present   3   Modify  DraE   Test   Framework   TaaS   for  Outlook   Server   Sync  on   Android    
  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. How  can  You  help  TaaS?   •  •  •  •  •  Error  codes  for  the  service   Service  Discovery   Security   Create  a  Java  /  .Net  version  of  TaaS  Server   Asynchronous  requests  
  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. Thank  you   abagmar@gmail.com                @BagmarAnand     about.me/anand.bagmar  

×