Particularly with Selenium-WebDriver but also with fat-client UI automation techniques, we have ended up doing test automation for whole pages/windows. Sometimes even whole sequences of pages, and that is so slow:

Sure the latter ‘e2e’ or full-stack needs to be done, but we are should be keeping that to the last 10% of tests. We should have the bulk of the UI automation testing focus on the smallest rectangle we can reasonably test in each case. We should make test harnesses for those widgets that in themselves do not get deployed to production:

^ entirely faked screenshot

And we should destruction test those rectangles (components/controls), disconnected from as much slow downstream infrastructure as possible - aiming to hit a throughput of multiple tests a second. No, not clicks - whole tests.

Of course this cannot be black box testing, its gray box, but it is very much worth the setup costs.

Don’t think this is possible? It is, I promise.


February 1st, 2017