Successfully reported this slideshow.

Continuous Delivery in an Ancient World of Physical Devices

2

Share

1 of 75
1 of 75

Continuous Delivery in an Ancient World of Physical Devices

2

Share

Download to read offline

Talk given at the London Continuous Delivery meetup:
http://www.meetup.com/London-Continuous-Delivery/events/228082366/

Abstract:

You've heard great talks about applying Continuous Delivery of web apps, mobile apps, maybe even desktop apps. But... desktop apps relying on physical devices? Are you serious? Yes, and it's not rocket science. And no, there are no droids involved (sorry Star Wars fans).

Come learn about test automation in the ancient world (or is it?) of desktop apps depending on cameras, fingerprint readers and other physical devices by applying Cucumber recipes in a .Net environment (note: BDD knowledge is highly appreciated but not mandatory!) You might think back to this talk next time you're in line waiting to have your passport controlled at some foreign border.

Talk given at the London Continuous Delivery meetup:
http://www.meetup.com/London-Continuous-Delivery/events/228082366/

Abstract:

You've heard great talks about applying Continuous Delivery of web apps, mobile apps, maybe even desktop apps. But... desktop apps relying on physical devices? Are you serious? Yes, and it's not rocket science. And no, there are no droids involved (sorry Star Wars fans).

Come learn about test automation in the ancient world (or is it?) of desktop apps depending on cameras, fingerprint readers and other physical devices by applying Cucumber recipes in a .Net environment (note: BDD knowledge is highly appreciated but not mandatory!) You might think back to this talk next time you're in line waiting to have your passport controlled at some foreign border.

More Related Content

More from Manuel Pais

Related Books

Free with a 14 day trial from Scribd

See all

Continuous Delivery in an Ancient World of Physical Devices

  1. 1. Continuous Delivery in an Ancient World of Physical Devices Manuel Pais London Continuous Delivery 20th April 2016
  2. 2. Agenda An Ancient World Forget Physical Laws Layered World Parallel Worlds Beyond Test Automation
  3. 3. An Ancient World
  4. 4. <insert latest Docker orchestration diagram>
  5. 5. Not for everyone
  6. 6. Context
  7. 7. Do desktop applications still make sense?
  8. 8. IF you have to integrate with low-level SDKs
  9. 9. IF client app requires low latency
  10. 10. IF your stress tests look like this…
  11. 11. Forget Physical Laws
  12. 12. Test automation with physical devices ?!
  13. 13. Not a great fit for Continuous Delivery…
  14. 14. byte[] start_scan() char[] capture() char[] scan_finger()
  15. 15. Plain Old Interfaces
  16. 16. Decoupled Development
  17. 17. Decoupled Development x. Device Integration
  18. 18. Decoupled Development x. Device Integration y. Application Biometric Logic
  19. 19. byte[] start_scan();
  20. 20. Test Data Management
  21. 21. Given a complete Visa application When I capture 4 valid fingerprints Then application is sent for approval
  22. 22. Given a traveler leaving the country When 1 finger is missing Then border supervisor is called
  23. 23. Forget Physical Laws Problem Automate testing of applications using physical devices Solution • Common interface for similar devices • Virtual device implementation for that interface • Test data management
  24. 24. Layered World
  25. 25. Reusable core modules
  26. 26. Reusable core modules but Many customizations
  27. 27. Reusable core modules but Many customizations and Specific customer requirements ?
  28. 28. Plain Old Layers
  29. 29. Low level UI automation across all apps
  30. 30. Low level UI automation across all apps
  31. 31. Low level UI automation across all apps Module “object” automation
  32. 32. Low level UI automation across all apps Module “object” automation
  33. 33. Low level UI automation across all apps Module “object” automation Application logic automation
  34. 34. Low level UI automation across all apps Module “object” automation Application logic automation
  35. 35. Low level UI automation across all apps Module “object” automation Application logic automation
  36. 36. Layered World Problem Automate testing of reusable client modules with project customizations and specific requirements Solution Layered test code: pure UI + module logic + application logic
  37. 37. Parallel Worlds
  38. 38. Multiple public-facing interfaces
  39. 39. GUI vs API
  40. 40. OR
  41. 41. Novice Users vs Power Users
  42. 42. Plain old Dependency Injection
  43. 43. FingerprintsSho rtcuts IFingerprints Given a complete Visa application When I capture 4 valid fingerprints Then application is sent for approval Fingerprints UI Fingerprint.IFingerprints = Fingerprint.FingerprintsUI
  44. 44. FingerprintsSho rtcuts IFingerprints Fingerprints UI Fingerprint.IFingerprints = Fingerprint.FingerprintsShortcuts Given a complete Visa application When I capture 4 valid fingerprints Then application is sent for approval
  45. 45. Parallel Worlds Problem Automate testing of multiple interfaces/executions for same scenario Solution A single test interface for the exposed functionality Two or more implementations of that interface (Basic) dependency injection mechanism
  46. 46. Beyond Test Automation
  47. 47. CI SERVER Vagrant-cloudstack Commit to Repo Vagrant- VirtualBox Build Success Developer
  48. 48. Test Platform VM Destroy VM Create New VM Destroy VM Test run Create New VM Integration Unit tests Integrati on tests Smoke Test Subset of accepta nce tests Acceptance Tests All other accepta nce tests Manual Tests Manual scenario s Explorat ory tests From CI SERVER Test run Test Workstation or Static VM Test run Test run Accept or Reject 72
  49. 49. Integration Unit tests Int & Smoke Test Integration tests Subset of acceptance tests Acceptance Tests All other accepta nce tests Manual Tests Manual scenarios Exploratory tests CI SERVER Test run Vagrant-cloudstack Create New VM Test run Test run Destroy VM Vagrant- cloudstack Create New VM Destroy VM Test run Accept or Reject 73 To
  50. 50. Thank you!
  51. 51. Q & A

×