There are some fundamental shifts happening in the functional web-application testing world. Let’s boil it down:
This space has been long been dominated by Selenium — . When you think about it, Selenium is truly an amazing set of tools (Selenium web driver, Selenium IDE, etc ) but….
What’s wrong with Selenium? Nothing major, but as developers expect more and more out of their tools, difficulties with Selenium are getting more painful:
Tools like Chrome devtools offer ridiculously good visibility in errors and the state of the application. Even if you’re not in front-end, the general consensus is that people are getting used to nice debug tools.
Selenium, which runs on a completely different process than the code driving it, can only send you logs of the failure back (and perhaps screenshot it).
Being able to restart a system faster give returns on development efficiency FAST. The reason some people love nodeJS is because it starts up a million times faster than Java (exaggeration). Also, got into web-application development because CMD-r exists!
Selenium’s feedback loop is extremely slow because it has to start a browser for each test! That’s insanely slow.
The community is running some experiments, and the most ground-breaking ones are using tech to avoid Selenium entirely by injecting some scripts into a page that trigger actions and make assertions. This leverages the powers of browser tools for debugging and faster feedback loops.
These tools trade pros and cons with Selenium. It all depends on what developers and teams value more. Selenium is amazingly cross-browser and supports all the way back to IE8… but is that really going to matter soon? Does speed and value of debugging and feedback loops mean more to you then having flexibility to write the tests in the language of your choice?
Will the new tech’s parent companies be able to balance business and community, and create a product that is open enough for gaining trust and adoption? (if the company/project dies, will you continue to be able to use the code?)
Snaptest will generate and manage code for any type of framework/runner, including any of these new ones (the new frameworks still require you to write the code manually).