Archive for September, 2008

Maemo summit 2008

Saturday, September 27th, 2008

So I went to the Berlin summit this year. I might not have come if it wasn’t for for bunanson bringing my little project at a more popular level.

It was really nice to meet him in person (left on the picture, as a big thanks I bought him a german weizen beer). He also did a presentation, presenting his worldtv99 playlist.

Anyhow, the visit was really great and interesting. Mobile computing is an exciting area and, thanks to the Nokia internet tables, Moblin, Android and what not, opening up for open source.
Nokia employees presented the roadmap of their internettablet. Some insight talks about UI design. With years of experience with small form factor devices and their Symbian OS, definitely a good learning experience.
So the next device will include OpenGL-ES and on top Clutter for eye appealing applications. From what I recall, the destop will be Clutter based. Applications remain Gtk based. They’re pushing Gtk offscreen rendering for use with Clutter and there seem to be an effort for a Symbian port. So I don’t suspect this is likely to change anytime soon.
Qt is coming though, Ari Jaaksi talked about this toolkit for enabling multi-platform support for their applications. Also a Howto was presented by Nokia as one of the parallel sessions. As a froglogic Squish developer, I’m of course quite happy about this.
Exciting times for both toolkit, now competing on the same GUI. Obviously, the linux desktop as a whole will benefit from this downscaling and speedups.
Nokia UI designers seem to be quite modest about using animations though, avoid wow first, annoyance later experiences. I do suspect things like roll-down menus and such will be there. I think that animations may help hiding latencies for e.g. application loading and such.

One addition to my last blog, I already talked about the ‘handhelds GUI != desktop GUI’ thing. An UI design talk presented the minimal space for finger friendly clicking is nine millimeter, with a screen of 225dpy gives (9 mm * 225 px/inch) / (25.4 mm/inch) = 79.7 px. Now that is almost an inch on for destop screen.

Squish’s Extensibility and Integratability

Tuesday, September 23rd, 2008

Today I’d like to write about some of Squish’s features which are not so well known but which makes Squish a really powerful GUI testing solution.

Extensibility: When we started to create Squish, our main focus was to support all standard components of the supported GUI technologies (Qt, Swing, SWT, etc.) very well. But soon we found that in nearly every GUI application custom components are used. These are often complex and interactive controls visualizing data in some way. While basic support for all custom components can be provided out-of-the-box (and is provided that way by Squish), there is no way a GUI testing tool can know all internals (such as internal objects) of such custom controls and support that in a robust way.

This made us think about extension capabilities. The first Squish edition where we offered an extension API was Squish for Web- the automted GUI testing tool for web applications. The reason for that is probably that esp. in the world of AJAX GUIs nearly all controls used are custom controls.

This extension allows users to implement a few functions in JavaScript to let Squish know how to query internal information of custom AJAX controls. That way every custom AJAX control can be supported equally well as standard HTML and AJAX controls already known to Squish.

Later we introduced a similar mechanism for our Squish for Java tool, which features automated testing of Java GUIs such as Swing, AWT, SWT and Eclipse RCP. Here we provide a few Java interfaces which you need to implement for your custom Java controls to allow Squish to drill down into the details of your custom controls.

Since these extensions solve many problems of GUI testing, we are now introducing similar extension APIs for our Squish for Qt edition. Also our new Squish edition for testing native Windows applications, which will be part of the upcoming Squish 4.0, will be completely built on this extension mechanism even internally.

Integratability: Many vendors of testing tools want to completely lock their users into their world. So they come with the complete tool set needed to automate the QA. We early realized that GUI testing is just one part of the whole QA process and also saw that most of our users already have automation systems in place for their unit testing. So they usually prefer to integrate Squish into their existing automation system instead of setting up a completely separate automation just for GUI tests.

So we decided to focus on making Squish easy to integrate instead of developing our own test management solution. To allow that we provided easy-to-use command line tools to start and control Squish test runs and generate an easy-to-process XML report from any test run. This allows for easy integration.

In addition we now also offer ready-made integrations for CruiseControl, Maven, Ant, Eclipse TPTP, HP Quality Center and more so Squish can be used as part of the whole test automation regardless of the tools in use.

We will also release our own test management system, which we use internally, eventually. But this will be just another way to do it and not replace our integration. Rather the opposite But we will always ensure that Squish stays easy to integrate since we really think that our users should have the choice what they want to use.

To end this article here are some links with further details on Squish’s extension and integration capabilities: