In this first interview, Mark asked froglogic’s founders, Harri Porten and Reginald Stadlbauer, to give an overview of Squish 4.0’s features. In the following interviews Mark will have deeper technical discussions with the responsible developers working on specific features.
The New IDE
Mark: One of the main new features of Squish 4.0 is its new test development environment. Why did you decide to create a completely new IDE?
Harri: One of the areas for which Squish 3 has been criticized is the development environment which it provides to develop and maintain Squish tests. While this IDE offers all the necessary basics, it does not have the same level of convenience or the powerful features that IDEs such as Eclipse and Visual Studio provide. That’s why we decided to completely re-write the IDE based on Eclipse.
Mark: Why did you choose Eclipse as your IDE platform and what advantages will the new IDE offer?
Reginald: Back when we first started developing Squish, no decent cross-platform IDE frameworks existed, so we were forced to develop our own IDE. Once Eclipse became available we had the choice of continuing to develop our own IDE, or switching to Eclipse. Since our core competence is the development of test tools rather than of IDEs, and since Eclipse is widely used and liked, we decided to make the change.
And by using Eclipse we are able to provide our users with excellent IDE features, while we are free to focus on our area of expertise by adding the features needed to create and maintain Squish tests. This means our users will get all the nifty productivity-enhancing IDE features they want, such as great code editing, code completion, in-line help, customizability, etc., and gives us the chance to improve the work flow of using Squish and offering a lot more convenience.
Mark: Does this mean that Squish 4.0’s users must have Java and Eclipse installed in order to use Squish?
Harri: No. We will provide Squish as a complete package that includes everything needed. The new Squish IDE will be available both as a standalone IDE with just the Squish features, and also as an Eclipse plugin so existing Eclipse users can integrate Squish into their Eclipse environment.
Mark: But what about Greenhouse, the new Qt IDE from Qt Software (formerly Trolltech), will users be able to use Squish with that?
Reginald: Yes, we plan to provide a Squish integration similar to our existing Eclipse Test and Performance Tools Platform (TPTP) integration. That way users will be able to add Squish tests to their project and run them from within the Greenhouse IDE. We still need to investigate the details for that though.
Improvements in existing Squish editions
Mark: What improvements and new features can we expect all editions of Squish 4.0 to provide compared with Squish 3?
Harri: A lot of improvements are going into Squish 4.0 which will benefit every single Squish edition. For example, we have greatly improved the way tests work with item objects, such as menu items, table cells and similar. In Squish 4.0, such items are just normal GUI objects, so some of the limitations that applied in Squish 3 won’t apply any more.
Reginald: In addition, we are integrating Squish for Web into Squish for Qt and Squish for Java much more closely. This means, for example, that if Squish detects an embedded web browser (via the Internet Explorer Active X component or using Qt’s WebKit integration) in a Qt or Java rich client GUI, Squish for Web will automatically start up and hook up to the web browser component. This means that it will now be possible to create powerful tests that operate on the Java or Qt GUI and the web contents rendered in the embedded browser.
Harri: Another improvement is the new extension mechanism. This allows our users to add dedicated support for complex custom controls to Squish simply by implementing a few Squish interfaces. We provided some of this already in our Java and Web editions, but with Squish 4.0, we will have complete extension support in all Squish editions, something that will certainly satisfy our power users who are testing very complex, custom controls.
Mark: Are there any new features specific to particular editions?
Reginald: Yes, it is very important for us to keep up with the development of the different toolkits we support. For example, in recent versions of Qt, the QGraphicsView class has seen a lot of improvements, the biggest being the ability to embed widgets as items. So we have added dedicated support for testing widgets in graphics views so that they can be tested just like other widgets in a convenient and very robust manner.
Harri: We also keep adding dedicated support for all the new controls that appear in new versions of the different toolkits we support, including Qt, SWT/RCP, Swing, and several web toolkits.
Reginald: It’s also important to mention that there are a lot of small but significant improvements that are being made to all Squish editions that we just don’t have time to cover in this interview. And there are larger general improvements too such as better documentation, better packaging, new script APIs, more convenience, etc.
Squish for Windows
Mark: Up to now Squish has been mainly known as a Qt, Java and Web focused tool with Windows applications supported only if they use Qt or Java. Now we hear that native Windows applications built using MFC, .NET, and similar technologies, will be testable with a new edition of Squish; what’s the story behind this?
Harri: Well, we actually started adding some native Windows support in Squish for Qt, Java and Web some time ago, in order to interact with embedded native Windows controls. In addition to that, we have a major customer who is using our Squish for Qt edition for the new version of their very complex rich client application. For their old, Win32 based rich client they used Winrunner, but they were unhappy with the support they received, and also encountered a number of technical problems with Winrunner. As a result, they asked us to create a Squish edition which would allow them to use their existing tests but manage and run them using Squish. This was a challenging project, but we did succeed in building a Squish edition that was able to run a very complex Winrunner test suite.
In fact, this project required us to implement complete support for Windows controls. So we decided that since we had done 90% of a âSquish for Windowsâ? edition already, we would go on to complete the job and make it available as another Squish edition.
Mark: While there is nothing to beat Squish in the Qt marketplace, Squish for Windows will have many well established competitors. How are you going to cope with that?
Reginald: We know from our existing customers that they often have a set of many different applications built using a variety of different GUI technologies. So there is significant sales potential in our existing customer base. And having a Squish for Windows edition will make Squish as a whole more attractive as well.
Harri: Besides that, there are many concepts such as our powerful scripting support, the advanced extension mechanism, command line control for automating testing, the new Eclipse-based Squish IDE, and our very flexible and fair licensing, that actually means we will start out ahead of many of the existing Windows testing tools.
Mark: Well, now that you’ve whetted our appetites, when can we expect Squish 4.0 to be released?
Harri: We originally planned for the end of 2008, but now we are aiming for Q1 2009. Pushing back the Squish 4.0 schedule has given us more time to do things right for Squish 4.0 and to avoid the risks of rushing.
Reginald: For now though, Squish 3.4 is working well and we continue to release bug fixes and updates for it. And we will of course continue to support our Squish 3 customers after Squish 4.0 comes out.
Mark: Thanks for your time. I’m looking forward to interviewing Andreas and Roberto in the next part of this series to learn more about the technical challenges and achievements involved with the creation of Squish 4.0.
Harri Porten and Reginald Stadlbauer co-founded froglogic and are focusing on the development and growth of the company with their flagship product Squish.
Mark Summerfield is an independent C++, Python, and Qt consultant and writer, trading as Qtrac Ltd. Mark also provides documentation consultancy to froglogic.