
TestCafé: Web Testing Framework - jolt
http://testcafe.devexpress.com
======
hugs
"Yes, we've filed for a patent"

"TestCafé loads websites via a proxy, thus allowing its engine to inject
scripts that can access and manipulate the Document Object Model"

That's exactly how Selenium 1 worked when we created it 9 years ago. It also
sounds like the approach used in Sahi, Windmill, JsTestDriver -- other web
testing tools. Not cool.

"While loading via proxy is not a new idea, our implementation is unique. Our
framework is the only one that automatically configures that proxy and allows
direct communication with the page via JavaScript."

I look forward to reading your patent application.

~~~
davidjgraph
The US patent office does not care/have the resources/have a clue how to
enforce that patents are non-novel and/or obvious. It is an entirely corrupt
system driven by a mass of lawyers, all encouraging their clients to build
patent portfolios for "defence".

If you want to combat a patent, the best stage to do this is during the
application stage, it's far harder to combat it after it's approved.

For those that aren't aware of the StackExchange patents site [0], this is the
best site I'm currently aware of for collecting evidence against patent
applications. I would encourage you to actively seek out this patent
application, start a thread on it and submit evidence against it.

The US needs a cultural change on patents, to make it clear that the patent
system is corrupt and companies that file software related/non-original
patents as an excuse to not having to innovate any further/at all need to be
shunned.

[0] [http://patents.stackexchange.com/](http://patents.stackexchange.com/)

~~~
hugs
Thanks, I'll look into it. This is a serious issue.

~~~
SkyMarshal
Peer-To-Patent is another good one -
[http://peertopatent.org/](http://peertopatent.org/)

------
pedalpete
I'm currently watching the 27minute video. I was expecting a quick sample of
what TestCafe does, but it is a full-on tutorial of using all their features.
Also it goes into a VERY deep yet simple level (like here's how to change the
port#).

I'd recommend a shorter, marketing style video just showing why TestCafe is
great. I haven't gotten there yet, at more than 5 minutes in...

~~~
janekk
I agree, I don't care about config files, just want to see them write a simple
test and see it run.

~~~
wusatiuk
definitly, if you want to push the product with a video, it should not be
longer than 2, max. 3 minutes and you should only show the key aspects.

additionally, you could have a look at some conversion rate bascis (I cannot
find a call to action button above the fold,...) or SaaS marketing tips on how
to push your product out.

------
janekk
I like the visual method of writing scripts, but having used Selenium +
SauceLabs.com on a real app and dealing with functional browser tests every
day, I'm concerned about:

* Timing issues; most of the time spent writing functional tests is knowing when to wait for the next click (e.g. waiting for AJAX response and change in a certain DOM element)... and doing this in a clean way (e.g. WebDriverWait conditions instead of putting Sleep(1000) everywhere).

* Ability to expand the tests to do other things; for example, Selenium can take screenshots of the browser window because it works at a lower level. We use this for regression testing our web pages.

~~~
IanCal
> Timing issues; most of the time spent writing functional tests is knowing
> when to wait for the next click (e.g. waiting for AJAX response and change
> in a certain DOM element)... and doing this in a clean way (e.g.
> WebDriverWait conditions instead of putting Sleep(1000) everywhere).

This can be answered in a fairly simple way. How does your user know when to
proceed? What changes?

~~~
janekk
Ian, I agree that's the right mind frame to be in, but I notice they
(DevExpress) didn't address it in their demo or docs.

They have a 'wait' function that waits for a period of time, but this is just
a sign of bad test writing and something sure to break when testing against
different browsers or environments (localhost v.s. staging).

~~~
IanCal
Hi, sorry I didn't see this reply before.

Only a wait function would be worrying, it'll lead to unstable tests and more
annoyingly tests that don't do what they say. Decent async support is the
first thing I look for in testing libs like this.

------
wldlyinaccurate
I skim-read their website and watched a good chunk of their video. I _still_
have no idea what this actually is, and why I would use it over my existing
toolset (Behat, Selenium + WebDriver, CasperJS, etc).

If any DevExpress guys/gals are reading this, please consider making a shorter
(2-3 min) video showing some tests being written and run.

~~~
hugs
I'd also recommend they reach out to Selenium developers and having a
conversation with them to see if what they've done is really patentable.
[Disclosure: I created Selenium]

~~~
polyvisual
Thanks for creating Selenium _hugs_.

~~~
hugs
:-) Although I kickstarted the project, I can't take a lot of credit for what
it has become. It's a huge project now, with many people involved. Now, I'm
just the crazy old uncle who can tell a good story about "the olden days". In
the spirit of giving credit where credit is due, Paul Hammant is the one who
came up with the HTTP proxy JS injection technique. Dan Fabulich, Nelson
Sproul, and Patrick Lightbody rewrote it and refined it. (Some sources:
[http://paulhammant.com/blog/selenium.html/](http://paulhammant.com/blog/selenium.html/)
[http://docs.seleniumhq.org/about/history.jsp](http://docs.seleniumhq.org/about/history.jsp))

------
sergiotapia
We've been using Selenium to test a large enterprise ASP.Net webforms
application and it's been kind of a hassle. Configuration was horrible but
once that's out of the way it's sort of straightforward.

What benefits does TestCafe bring against Selenium? What's the elevator pitch?

~~~
jolt
What was the hassle you had with using Selenium. Only the configuration?

------
polyvisual
We're on the verge of running a Selenium Grid server with a ~1000 Selenium
nodes connected to it.

I'd like to see how their offering stands up to that.

(Actually, I don't know how Selenium will stand up to that... maybe I should
have left this comment until I've got the results!)

------
jolt
Haven't used it myself, but i would love to hear from someone who has used
this, or something similar. How useful is this kind of testing? I'm thinking
that tests would have to be re-recorded a lot, if this is used while
developing the site.

~~~
hugs
It sounds like their approach is the same one we took with the first version
of Selenium. The approach is JavaScript injection through an HTTP proxy.
Because of the same origin policy and JavaScript security model, we abandoned
this approach when moving to Selenium 2. Selenium 2 goes for the most native
approach for clicks and key events. (Continuing in that native-is-better
approach, I'm now experimenting with robots, but that's another story.) I'm
amazed they think their approach is better.

I'm surprised they think the Selenium 1 JavaScipt proxy-injection model is a
better approach. But hey, I'm getting old... Get off my lawn, yadda, yadda,
yadda. But I'm stunned they think it's better _and_ trying to patent it. I
really hope I'm missing some new key insight here. Please enlighten me,
people.

~~~
jolt
Thank you. From what i have gathered here in the comments, it seems that I
need to look into Selenium.

------
arunoda
Where is the 2 min intro?

------
boggzPit
I don't understand their video at all and the voice is annoying.

------
Kiro
"Yes, we've filed for a patent"

Instant boycott.

