Tip:
Highlight text to annotate it
X
Today we are introducing a system we have been working on for the last three years;
Nerrvana. What problem do we solve? Web applications become increasingly complex,
for example; compare these line count statistics from our version control system over the past
decade. Business applications require changes, often,
and sometime we have to do a full rework of certain parts. Keeping systems bug free becomes
very important. We like to find and fix bugs before users
have a chance to report them. HTML standard implementations in different
browsers are still far from ideal; many web applications require cross-browser testing.
What is one of the solutions? Selenium is an open source software which allows to write
and execute functional tests for web applications by running them in a browser.
Selenium tests will open a web application in the browser you selected and perform as
set of actions and validation that you, as a tester, created.
Let’s open a desktop while Selenium is testing and have a look at how it works.
Nobody needs to watch this fast forward speed testing, because Selenium can create screenshots
of pages which failed your tests. It really depends on your imagination and time.
Selenium is just an execution tool with many possibilities. For a small team Selenium itself
will often be enough, having Mac gear will help.
You can virtualise Windows on Linux or the other way around, however if you are serious
about continuous integration and quality you have a choice of either ignoring Selenium
testing and running all other kinds of tests, or setting up an environment with hardware,
virtualisation, licencing, all these operating systems, defining who can use which resources
in which order. When do we start testing TRUNK build, and where?
Who will prepare all these virtual machines we need? What about production release 3.18
and next 3.19? Too many problems. This is a problem our system solves. It is
truly a Selenium cloud at your fingertips because you only need to write tests for your
application and you do not need to worry about anything else,
no matter how many version you want to test in which environment, how many browsers you
want to execute your code in. Let’s talk a little bit more on how it works. First,
you load your tests into your own private space.
Now you can set up a testing environment and schedule. You may decide to run a full test
for TRUNK every day at midnight, and you production system with smoke tests every two hours.
You specify operating systems and browsers too. When time arrives Nerrvana build a Selenium
grid to your specification and launches your test. Once tests are completed all code with
the reports the tests generated are uploaded back to your private space so you
can check results at your convenience. You can access your test results via browser,
or you can automate uploads to your own system via the FTPS service we provide; our own
testing framework, we wrote while learning to write Selenium tests, produces a nice HTML
output with links to screenshots. You may have a different approach. You can generate
messages that Nerrvana can read, so you can notify yourself with an email pointing directly
to a problem. In this case you do not even have to check the user interface all the time.
Isn’t it cool? Let’s watch how these steps are done on a system.
We will launch a fragment of the tests you saw earlier. Let’s log in and create a new
space. This is essentially a folder which will store tests and their results. Now we
will open an FTP client and upload our tests into Nerrvana’s space. The folder; ‘test
results’ is used by Nerrvana to upload completed tests, and the directory ‘files’ is the
one we can use. Now we can create a test run. We select a space, give it a name, description
and select an executable file. Let’s run our tests in Firefox on Cent OS and Internet
Explorer on Windows XP. We will ask Nerrvana to launch tests once, right now and
validate our code before starting the tests. You can see a test run is ready to go, ‘N’
means next. Now test run is now marked as ‘R’; running and we see validation has
begun. Internet Explorer test has started and Firefox.
Nothing surprising here; Firefox started later and finished earlier. Everything is completed
now. Let’s look at the information Nerrvana provides. Each spec;
a combination of platform and browser contains messages, statistics and a link to browse
file that Nerrvana uploaded to the FTP server. You can see that validation too three seconds
and Firefox tests ran for one hundred and sixty-nine seconds. Information
on in and out traffic is also available. Let’s look at a report our tests generated for Firefox,
and the same for Internet Explorer. What has changed inside the
FTP folder? The test runs directory now contains the test run we created and another folder
below it with a time stamp, as a test run can be executed by schedule, every hour or
once a day. Files out is a folder where Nerrvana uploaded the tests after completion
and this is where we’ll find the report we just looked at in the browser. That’s
it! Our goal is to make running Selenium tests as easy as possible.
Just load your Selenium code, create a schedule and run your tests. You don’t need to customise
your Selenium code to run it on Nerrvana. Joining and leaving is easy, no lock in. You
can run Selenium tests in PHP or Java. We support major browser and operating systems
and are sensitive to your needs. Virtual machines which execute your tests are used only once.
We provide HTTPS and FTPS access to our system. We will also provide some easy steps
to further enhance security for applications under testing. Nerrvana can validate your
tests before launching them to make sure that there are no syntax errors or missing files.
Nerrvana adjusts to your local time. Schedules and time stamps in log files are
in your time zone. Our scheduler analyses your test’s needs and prepares environments
in advance to launch them on time. Being aware of its own cloud resources,
Nerrvana spreads the servers load to maximise performance and minimize run time. Let’s
do a quick recap: Nerrvana is a web service. Nerrvana is created for functional testing
of web applications. Nerrvana runs your Selenium tests. You only
need a web application and selenium tests to use it. You only create a schedule and
specify browsers and operating systems to run tests.
Each test execution is a brand new grid set up. We support tests in PHP and Java and are
listening to your needs. Mac OS support depends on you voting for it.
The beta version is completely free. We will eventually start charging for a run time.
Nerrvana will always have a free but limited account. We think of hosting full scale accounts
for open source projects. We are building Nerrvana in bootstrapped mode,
it was not easy but we did it! We formed DeepDhiftLabs in 2008 and soon started working on Nerrvana
while continuing building web applications for our Australian client.
We decided to invest our time into a product we own, love and are going to use ourselves.
In the great words of David Heinemier Hansson; this is our nice Italian restaurant in the
web space. Vadym works at Video Next. When he’s not
busy building custom RPMs and kick starts for Nerrvana or fulfilling our never ending
requests to install new instance or upgrade something somewhere.
If he doesn’t know something its either Windows technology or it doesn’t exist.
Dimitri built Nerrvana’s core; a huge piece of our systems which produces and runs virtual
machines executing selenium code. His personage is not coincidentally in the
middle of the action. He thinks in terms of bringing new target frames and more effective
ammunition for working long days building a new night vision device or polishing
the latest and greatest laser sights, improving Nerrvana’s apparatus. Alexander is the PHP
and JavaScript mastermind. I’m sure he will smile if you call him a front end engineer.
The Nerrvana user interface, our website blog and forum, most of the things you interact
with in the browser are handled by code written by him. By 2008 I had been building web applications
for 7 years. I had some ideas and a strong relationship with a client
whose projects, I knew, could allow us to build any product we will choose, bootstrapped.
I should admit I did not write a single line of code for Nerrvana but its creation filled
my life almost completely during the last three and a half years. Yes, I wrote about
100 page spec at the very beginning, joined wonderful photos of Igor Syphanovitch and
comics of Alex Bronzoff and drew interfaces you see inside our system and some other stuff
like posting over 5000 messages on our internal forum. Where are we now? We are ready to launch
our beta and we have a sold product, marketing site and support system integrated into our
product, and an answers portal where our clients can seek answers to question
they might want answered. During the beta we are going to listen for feedback and improve
our system. We need to connect the payments gateway and
launch the forum and ideas portal where clients can suggest and vote for improvements. Thank
you for your attention and we are invited to invite you to test Nerrvana.