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.
38. Given a complete Visa application
When I capture 4 valid fingerprints
Then application is sent for approval
39. Given a traveler leaving the country
When 1 finger is missing
Then border supervisor is called
40. 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
55. 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
65. 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
67. 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
73. 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