Hidden Squish 4.0 Features: Squish/Mac’s Attach To Application

February 28th, 2010 by Reginald Stadlbauer

After finally releasing the beta of our upcoming Squish 4.0 release, I decided to highlight some of the less visible, but very cool, Squish 4.0 features. In this post I’d like to talk about the “injectMacWrapper” feature. Until recently it was even unknown to me :-)

The other day a prospect asked me to present a demo of Squish for Mac to test a well known online meeting software (Cocoa) running on Mac OS X. The challenge here is that the application can’t be started stand-alone, which is usually required so Squish can start it to load the hook into it allowing Squish to connect to the application for testing (listen to events, access objects and properties).

In this case the application can only be started via a web browser when starting a meeting.

So I walked over to Rainer, our Mac expert, if he had an idea how we could support that. And to my surprise, he just pointed me to the example “injection” which can be found in “examples/mac” in Squish 4.0 Squish/Mac packages.

This example basically contains one script which injects the mac wrapper (the Squish hook for Squish/Mac) into a running process and makes the application attachable for Squish that way. Be aware that you have to first open the script and adopt the SQUISH_BASEDIR variable to point to your Squish installation directly. Also you may change the ATTACHABLE_PORTNUMBER if necessary which is the port to which Squish can then connect to attach to the application.

In addition, before starting the application you want to attach to (or the parent process which may invoke it), make sure to set the environment variable DYLD_LIBRARY_PATH to point to the “lib” directory of your Squish package so the Squish libraries will be found.

Now start (or get started) the process you want Squish to attach to later.

Finally run the injectMacWrapper.sh script and just pass the name of the process, as you can find it in the Activity Monitor, as an argument to the script. You will see some output and once it is done, Squish can attach to it at the given port.

Now open the Squish IDE (the new, Eclipse based of course :-) ) and go to Squish->Manage AUTs. There add an attachable AUT, choose an arbitrary name and specify the port which you have chosen (or left untouched) in the injectMacWrapper script (specified via ATTACHABLE_PORTNUMBER).

Now you can go ahead and create a new test script and create a skeleton script function such as (assuming JavaScript)


function main()
{
attachToApplication("AttachApp")
snooze(1);
}

where AttachApp is the name you specified as name for the attachable AUT in the Manage AUTs dialog.

Now set a breakpoint on the snooze line and execute the script. When you hit the breakpoint, choose recording, record interactions on the running process and choose end recording.

Using the same method you can insert verifications, use the Spy, insert more recording snippets, etc.

Really a cool feature since it allows to attach to processes which have not been started by Squish or been modified for testing (which is many cases just isn’t possible).

A similar functionality is available in our new “Squish for Windows” edition also combine with other Squish editions so one can e.g. automate a Windows GUI started via Click Once from a web site. Of course also Squish for Qt and Java allow attaching to running applications.

I will talk about these features and cross GUI technology testing more in the next postings.

The Quarter of Tradeshows

November 2nd, 2009 by Harri Porten

The fourth quarter of 2009 is a busy month in terms of tradeshows for us. The most busiest so far.

I started out with Qt Developers Days in Munich on October 14th and 15th. The event had a record-breaking number of attendees I believe and we had many interested potential and also existing users visiting our little Silver sponsor booth. It also proved to be a good opportunity to get to know all the new members of the so called “Qt Development Framework” Nokia unit.

Last week froglogic was present at two tradeshows in parallel: Andreas and Roberto exhibited at Eclipse Summit Europe while Jan and I manned a booth at the Annual Meeting of the Society of Exploration Geophysicists (SEG). Jan had a safe and rather short trip there from his home in Austin. I, on the other hand, got stuck in Frankfurt because of heavy fog. Got rebooked onto a flight via London Heathrow on the next day. Of course, my luggage did not make it on the plane so I got to complete my emergency set of toiletries.

My wife and me spent the weekend in San Francisco before the US part of Qt Developer Days takes place. Enjoyed the city which was full of people dressed up for Halloween. Sometimes it was hard to tell whether someone really wore a costume or his normal clothes. Went to a show of the musical Wicked – the “untold” part of the 1900 children’s novel The Wonderful Wizard of Oz.

We now moved down south to the conference hotel. It’s located close to San Francisco International Airport. I am convinced that until Wednesday I’ll be experienced enough to tell one type of airplane from the other. But as a beginner I’ll first concentrate on differ landing from starting planes.

Tomorrow Jan and I will use the opportunity to visit some clients in this area. And right after the conference our partner company ICS will provide an open-enrollment Squish training. So lots of activities before I go home.

CocoaHeads Hamburg

May 29th, 2009 by Rainer Schmid

I was yesterday on my first CocoaHeads meeting in Hamburg. Depending on the counting it was the first or second meeting in Hamburg altogether (see the CocoaHeads bei mindmatters post for the details on the meeting prior to that one yesterday).

It was a nice get-to-gether where everybody introduced himself and where we discussed a bit about how we want it to be in the future. We decided to make the meetings on every first Wednesday of the month. So the next meeting is already next week :-)

Automated GUI Testing Success: ETM Professional Control, a Siemens Company – Squish for Qt users since early 2007

May 26th, 2009 by Reginald Stadlbauer

We spoke to Wolfram Klebel, one of ETM’s development and testing engineers, and asked him what products ETM tests with froglogic’s automated GUI testing tool Squish.

ETM use Squish to test their SCADA (Supervisory Control and Data Acquisition) software – PVSS. This software is used for controlling complex industrial and infrastructure systems including traffic tunnels, water treatment plants, subway systems, and the new particle accellerator at CERN.

Read the full story at our website.

Tracing functions with Instruments

March 27th, 2009 by Rainer Schmid

In Squish we need to intercept the events when recording user interactions and on play back we have to send the events again. So we have to know some details on how the event system in the toolkits work.

To get those details, it is sometimes helpful if you could actually see the functions an application calls. When this need arised on the Mac, I used to use the Activity Monitor which has the ability to sample the application. This is unfortunately not very exact since the samples happen on certain intervals, so you are never sure if the relevant functions are actually sampled.

But Leopard includes the DTrace facility and the graphical frontend Instruments. This allows you to trace a lot of internals of the application, including the functions an application called.

For example you can create in Instruments a new “instrument” that traces all Objective-C calls: simply choose “Build New Instrument…” from the “Instrument” menu and choose the “Probe” of type “Objective-C”. In the dialog I also chose to record the data for “Function” and “Module”. Then just select a target application and press the “Record” button and all the Objective-C calls (including the call stack) are recorded in instruments.

Pretty useful.

But you can also record C function calls: just create a new instrument, this time of type “User Process”. If you record now, you get all the C function calls. This is getting really big really fast (and as a result it the application gets really slow). So what you probably want to do in this case is to limit the functions recorded. I was particularily interested in the functions called in the CoreFoundation framework, so I entered in the line edit after the “hits” text “CoreFoundation” and now the instrument only records functions called in that framework.

Automated Qt GUI testing on Maemo

March 3rd, 2009 by Reginald Stadlbauer

Hi!

Since acquiring Trolltech, Nokia is really pushing Qt to all kinds of platforms and devices. This perfectly makes sense considering the gains of having to create the GUIs only once for all different platforms and devices (desktop and embedded) by using the Qt framework.

Historically, and also when looking at our revenue statistics, the Qt market is very important for us. Our automated GUI test tool Squish, which supports testing several GUI technologies such as Qt, Java GUIs, Web, etc. is the leading tool when it comes to automated Qt GUI testing.

We have several customers in the embedded Qt space already. Due to the recent push from Nokia’s side, we decided to offer more dedicated support and resources in this area.

So today we announced that we officially support testing Qt GUIs on the Maemo platform using Squish

In the near future we will add Symbian S60 and Windows Mobile to the list of supported platforms as well.

Local Free Software Community meeting

February 2nd, 2009 by Harri Porten

On Saturday the non-profit association eXis-unlimited.org had organized the meanwhile second meeting of the Free Software community in our home town Hamburg. This time the organizers Sven Reumann and Ozder Abdurrachman had invited into the trading hall of the former coffee exchange in Hamburg’s harbor area. Some pictures can be found here.

The event was well attended and almost 30 users groups and projects presented their agenda, work in progress and meeting details. Among them were representatives from Open Streep Map, Ruby on Rails, OpenSolaris, Chaos Computer Club, working groups of local universities and Scribus. The sidux project handed out freshly burnt CDs of their distribution based on Debian unstable featuring KDE 4.2. Being invited for a short address in our function as a company sponsor I used the opportunity to call for all local KDE developers to come forward and unite. Everyone I got to talk to afterwards had reverted to version 3.5 though and currently wasn’t in the mood for any experiments. :)

Everyone sitting through the presentation marathon was rewarded with a buffet and drinks being served afterwards. A good opportunity to network with members of other groups. The presentations were taped on video as well as recorded by makers of NerdAlert – a show aired by the free local radio station FSK who also conducted individual interviews. So one can expect some online and on-air coverage appearing in the next days.

Peeping Toms in Amsterdam

December 6th, 2008 by Harri Porten

Travelling by plane is getting a bigger nuisance each year. Airports accepting more flights and passengers than they can logistically handle and excessive and repeated security checks causing long waiting lines and missed flights. The sight (and personal feeling) of passengers being shooed through check points by shouting security personnel reminds me of a cattle drive.

When taking off shoes and belts for x-raying became common practise I had half-jokingly predicted that soon one would have to walk through checks completely naked. Little did I know that makers of security devices and airports had already been working on that. Just recently discussions in the EU Commission made the news as so called see-through scanners were being considered for all EU airports. See
this picture
. Given the severe invasion of privacy by looking at every passenger effectively naked there were quite some protests and the Commission had put their plans on hold. At least for now.

I was reminded of this topic when passing through a check point at Amsterdam’s Schiphol airport yesterday. The gate looked different to what I have seen before and the need to be locked in, turn sideways and stand still with hands raised was obviously odd. With my hand luggage and belt already being sucked into the x-ray machine and my plane home departing soon I saw no alternative than passing through the humiliating check as well. Curious to what this was about I asked the personnel whether this was one of the devices under current discussion and likely to be banned. Got quite an enraged answer back questioning whether I would seriously believe to find anything illegal in use at an international airport.

I looked at the monitor the operating crew was using while the next person passed the check. Didn’t see any offending picture there so I put this off as regular yes/no scanner looking for metal or other
potentially dangerous material. A day later I looked this topic up on the Net and learnt that it is actually old news. Schiphol has been using two see-through scanners for over a year now and Australian and US airports have introduced them recently, too. Images are being inspected in a remote room which is why I did not see any. Officials claim there have been few complaints but do passengers really know what is done with them? In case there was any warning sign it must have been too small or hidden. A sample picture of a scanned person would do a good job I think. EU Commissioners have stated that one cannot be forced to by checked by such scanners but I cannot confirm the right to opt out. When the personnel upon questioning did not tell me about my right to have a regular check in another line this makes my wonder about their fidelity or training.

Now I don’t think that the examining officers get a big thrill from watching thousand of pictures of naked people every day. Possibly quite the opposite. One can easily imagine stupid comments being made, though. What remains is the overstepping of a line of privacy for every passenger without any concrete suspicion. And all this for a false sense of security. Scientist Peter Siegel has pointed out[1] that rubber or any other skin-like material still allows for hiding things. And anyone wishing something evil happening to airplane passengers will find it much easier to smuggle in things through hand
baggage, bribing underpaid airport personnel or using a rocket launcher on the ground. The number of possible attacks to human life is in fact so big that there is no way to protect against all of them. And governments are doing nothing but protect against weaknesses exploited in the past. The next evildoer (number unknown, certainly small compared to the world’s population) will just chose another option as can be seen from the recent attack in Mumbai has shown. Meanwhile we are ruining everyone’s freedom and every day life and effectively making “them” win already.

I found a good posting by security expert Bruce Schneier that talks about these problems[2]. He assesses a “diminished return of investment”. The picture that this Independent article[3] paints for
2011 has mostly become true already.

[1] http://www.usatoday.com/printedition/news/20080606/a_bodyscan06.art.htm
[2] http://www.schneier.com/blog/archives/2006/03/airport_passeng.html
[3] http://www.independent.co.uk/news/uk/crime/flying-with-fear-the-future-of-air-security-412643.html

Translucent scrollbars

October 30th, 2008 by koos

Postponing support for SMIL attribute ‘fill=”scroll”‘ for a long time, I now really needed this feature for extending the Atom feed support in KMPlayer. KMPlayer comes with a flash player backend and supporting the Youtube feeds was just a too low hanging fruit to not implement.

Anyhow, to ensure that the first flash link doesn’t play automatically on first load or when clicking on a next item, I’ve added as first link a summary of the entry using the media:description and media:thumbnail tags as SMIL presentation.
Since the presentation has a fixed aspects, ie. the text scales when resizing the player, some larger description text have their text fall outside the region area.
A quick implementation attempt was to simply draw the scrollbars over the right side of the text, painting it as black with 0.5 alpha value. Now that looked actually quite nice and has benefit that the scrollbar is there but also doesn’t take any screen resources (that is, one can’t click behind it but can see through it).

<smil>
  <head>
    <layout>
      <root-layout background-color="white" width="320" height="240"/>
      <region id="image0" top="5" left="5" bottom="5" right="5"fit="scroll"/>
    </layout>
  </head>
  <body>
    <img src="elep1.jpg" region="image0" dur="60"/>
  </body>
</smil>

After that, it was a small step to extend the virtual area with the scrollbar width (so the clicking limitation is gone) and therefor added the horizontal scrollbar.
(took an image because the first reaction of my dear colleague Frerich R showing with text, was that it looked like a bug that the text was painted through the scrollbars – of course I suspect that because his knewsticker can’t show the media files like mine)

Squish 4.0 Interview: Talking with froglogic’s founders

October 24th, 2008 by Reginald Stadlbauer

While the development of Squish 4.0, the upcoming version of the leading cross-platform GUI testing tool, is on-going, Qtrac Ltd.’s Mark Summerfield talked with some of the people behind the product.

Mark Summerfield of Qtrac Ltd.Harri Porten of froglogicReginald Stadlbauer of froglogic

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.

Read the rest of this entry »