Monday, May 21, 2012

Is eValid done with JavaScript? Why not?

In our User Forum, Amirr wrote:
Is eValid done with JavaScript? Why not?

No, eValid is NOT implemented with JavaScript, and there are several very good reasons why we chose the eValid implementation the way we did. Here are some of them:
  • JavaScript runs in a single thread inside the browser, and the eValid view is that when the JavaScript engine is running the test engine should NEVER interfer with what the browser is doing naturally. To do so would be to violate a fundamential principle: Don't interfere with the process under test -- in this case, with the normal operation of the browser.
  • If you are running an AJAX application, then the most common problem in testing is to assure synchronization of playback. Even though eValid records realistic "wait times" during the recording process, we NEVER suggest that relying on wait times for synchronization of AJAX is a reliable approach.
  • It's usually the opposite, as we have found out many times. Think of it this way: no matter how well designed your "user wait times" are, there will always be an instance when the wait times you have put into your script are not long enough. The consequences for failure to sync in a test process are very severe: most of the time the test is ruined.
  • eValid actually uses a separate, not-in-the-browser process (which actually runs in a thread of the browser process that does not interfere with normal browsing activity) to run commands that "validate and synchronize on DOM property values." There is a family of these commands -- with both positive and negative synchronization modes.
  • The key feature of eValid's architecture -- to avoid anything more than the minimum interference with the browser as it does its work, under control of the eValid recording or playback engine -- assures that the results you obtain with eValid are as realistic as possible. We very firmly believe that unnecessary interference with the behavior of the web application you are testing is a very serious "no-no" -- and eValid does not cross that line.
  • We understand there are several other web testing solutions that are based on the use of JavaScript and the APIs that obtain within the browser, but we specifically chose NOT to use that available interface for the reasons outlined above. We wanted eValid based web application tests to be accurate, reliable, credible and efficient.

No comments: