UI Testing
Roadmap
1) Standardize a low-level UI Testing API.
Similar to how the CommonJS Testing API is intended to be a standard low-level testing API that people can build high-level testing solutions on top of.
e.g. click(x,y) tap(x,y)
2) Create wrappers to map existing UI Testing solutions to the new standard.
e.g. doh.robot, Selenium, Windmill, Syn.js
3) Collaborate with platform vendors to get them to implement the low-level API natively.
e.g. RIM, HP/Palm, Android, iOS, Fake.app, Selenium
4) Collaborate on an emulation UI Test Runner.
Might be more likely than getting native UI Testing support on mobile devices themselves.
5) Collaborate on a higher-level UI Testing solution that uses the low-level API.
e.g. click(myButton) twoFingerSwipe(myWidget)
Proposals
Coming soon...
Inspiration
Current UI Testing Solutions
Tool | URL | About | OS/Browser Support | Mobile/Embedded Support | Core Technology | Test Language |
---|---|---|---|---|---|---|
Dojo Toolkit's doh.robot | http://www.dojotoolkit.org/reference-guide/util/dohrobot.html | Java Applet that takes control of keyboard and mouse. dojo.robot and dijit.robot add helpers for DOM positioning and scrolling, etc… | Anywhere Java Applets work. XP, Win7, Mac, Linux, IE, Safari, Firefox, etc… | None yet? | Java Applet | JS |
Selenium | url | about | os/browser support | mobile/embedded support | core technology | test language |
Syn.js | url | about | os/browser support | mobile/embedded support | core technology | test language |
Windmill | url | about | os/browser support | mobile/embedded support | core technology | test language |
splinter | http://github.com/cobrateam/splinter | about | os/browser support | mobile/embedded support | core technology | test language |
webrat | url | about | os/browser support | mobile/embedded support | core technology | Ruby |
capybara | url | about | os/browser support | mobile/embedded support | core technology | test language |
tool | url | about | os/browser support | mobile/embedded support | core technology | test language |