January 12th, 2010
We recently added polls to TestingBlues, so of course I immediately went to exercise my voting right – only to be met with a badly rendered and ugly poll sitting at the bottom of the page.

Viewing a TestingBlues poll in IE6
After a bit of digging, I found out the fault’s mine: I use Internet Explorer 6. The polling feature – provided as a 3rd party plugin – doesn’t support IE6 properly. However, we have decided to keep the polling functionality for now as we believe polling functionality for 90% of users is better than no functionality at all.
In other words, we have tested this website, but made the decision to ship with a known problem. We hope readers now understand why – and aren’t under the perception that we don’t test properly. After all, that would be some irony…
Postscript: It’s my choice to use IE6 of course. It’s important to use (and test against!) older and sometimes unpopular versions of software – simply because some users may not have the luxury of the choice of a newer, shinier release. After all, there’s a lot of IE6 users out there: check out some recent usage charts on http://www.betanews.com/article/Statistics-Firefox-35-surpassed-IE7-in-global-usage-share-last-week/1261428919. This did make me think about browser usage data. Perhaps my own usage of IE 6 perturbs these metrics, so ultimately I’m testing software purely because I use it. Sort of Heisenberg’s Uncertainty Principle applied to software: an uncomfortable thought somewhat mitigated by the vanishingly small impact I have…
Posted by Ben Bakowski | No Comments »
January 12th, 2010
OK, so we’ve slacked off a bit in the second half of 2009. However, this is all going to change in 2010 – well, that’s what we told each other when we met up this week. Fresh new content and more interaction was one of the proposals, but we need your help to get it right!
What would you like to see more, or less, of on TestingBlues.com this year?
Please leave a comment to this post or use the new poll widget we’ve added to the right column of the page.
Happy new year!
Posted by Richard Coppen | 2 Comments »
January 6th, 2010
Just seen this article by Tim Rily, Director of QA at Mozilla. Negotiating for Quality Software. I very much like the pragmatic approach. We talk a lot about how testing fits into the agile way of delivering software, this article encapsulates how it can be done. The key is that everything is negotiable, engage your stakeholders to find out what is really important and use that to guide your testing.
Posted by Jon Tilt | No Comments »
November 20th, 2009
I was looking for a quick and simple way of passing a Java object between two Java programs with a wire connection between.
My first thought was object serialization. The problem with this mechanism is that it’s very brittle (change an object on one side and not the other and it goes bang!!). Also, it only really works if you have control of the JVM levels on either side. Which in this case I did, but if I was to share the code with others then they might not be in the same position.
I next considered what XML utilities were packed with the latest JVMs. This led me to JAXB. It seemed an ideal solution. Though it did imply that I either had to start from some XSD, or I had to correctly annotate the classes that I wanted to encode. This seemed a bit more overhead than what I was after.
Obviously there are other solutions… Web Services, 3rd party XML / JSON tools. But again, the consideration around overhead and also the hassle of downloading 3rd party libraries turned me away. After all, I’m just after a quick and simple solution for what is a basic application.
In sMash I would have used some of the great JSON / XML libraries that are supplied out of the box. But I’m not using sMash this time, so I need to look at what’s supplied in the Java class library.
After chatting with a colleague I found the answer.
He recommended I use the java.beans.XMLEncoder & java.beans.XMLDecoder classes. After a bit of fiddling with Input/Output streams I created some utility methods that allow me to make a single call to these services. They encode / decode any Java object that follows the Java Beans specification i.e. it has a zero arguments constructor and getter / setter methods for all variables in the class.
I have pasted the utility methods here for your convenience. Note, because I am running this code on the mainframe I need to explictly request that the bytes be returned in UTF-8 format.
public static String getXMLFromObject(Object object)
{
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
final XMLEncoder encoder = new XMLEncoder(outputStream);
String result = null;
encoder.writeObject(object);
encoder.close();
try { result = new String(outputStream.toByteArray(), "UTF-8"); }
catch (UnsupportedEncodingException e) { e.printStackTrace(); }
return result;
}
public static Object getObjectFromXML(String xml)
{
Object result = null;
try
{
final ByteArrayInputStream inputStream = new ByteArrayInputStream(xml.trim().getBytes("UTF-8"));
XMLDecoder decoder = new XMLDecoder(inputStream);
result = decoder.readObject();
decoder.close();
}
catch (UnsupportedEncodingException e) { e.printStackTrace(); }
return result;
}
(apologies for the dodgy formatting. It comes out ok on the editor screen)
Tags: example, java, serialization, XML
Posted by Scott Clee | No Comments »
August 24th, 2009

I installed the Nokia barcode reader application on my phone and spent the last hour or so playing with QR Codes. I can see loads of applications for these little things – I’m off to find my printer.
Tags: QR Codes
Posted by Richard Coppen | 1 Comment »
August 18th, 2009
I love taking things apart to see how they work. Those around me see sharp edges, exposed wires and danger, while I see evolution, improvement and opportunities to learn. Imagine my excitement disappointment when my 3+ year old laptop’s screen failed – it finally became two screens when five columns of pixels gave up, creating a new and exciting 30:70 spit visual experience.
Within a few days I had the screwdrivers out, removed the lcd panel and ordered a replacement. To be honest, I almost fainted when I actually repaired it. Feeling highly motivated, I decided to tackle the Operating System, which had been running very slowly for many months. A quick visit to ubuntu.com provided the install image for ubuntu 9.04 and thirty minutes later I had a brand new laptop. I’m really very impressed with Ubuntu, the install process was a breeze and with the exception of a minor sound issue everything just works.
Tags: linux, ubuntu
Posted by Richard Coppen | No Comments »
May 23rd, 2009
I’ve been the owner of a HTC Vario III Windows Mobile based phone for over a year now. As time has gone on I’ve found myself doing more and more things via my smart phone. However certain things were very restrictive due to the crummy version of Internet Explorer that comes with Windows Mobile. Obviously I could have paid for Opera, but who wants to do that in the “free” world.
Recently I discovered the Iris Web browser developed by torchmobile.com and it’s been liberating. Now, I don’t disagree that this powerful type of browser interface has been available for other mobile platforms for a while (yes iPhone, you still rock). But for me I can breathe again.
So officially count this as my first post written soley from my dinky little smart phone.
(Slightly different topic: my mobile contract is up soon, shall I go Android?)
Tags: android, browser, iris, mobile, windows mobile
Posted by Scott Clee | No Comments »
May 22nd, 2009
At the end of 2008 I switched credit cards from provider X to provider Y, lured by the promises of untold wealth from the cashback deal they offered. However, I’m yet to have a month where using this card has gone smoothly: which makes me wonder how well their application and business logic has been tested.
It was all triggered by me setting up a direct debit to pay the card off each month, and I thought nothing more of it. I was therefore somewhat surprised when the next month no payment was taken and I was spanked for interest. I phoned up – and was informed that my direct debit had indeed been set up, but flagged to start in the year 8888. At first glance, this looks like a user error which the software should reject. But then you could argue that 8888 is a valid year – just a very unusual one to use in a direct debit.
So where do we mark the cutoff between sensible data entries and wrong ones? Can we implement fuzzy logic for such subjective testing? And if so, how can we guarantee repeatable behaviour between tests – which is critical for automated testing?
Anyway – the direct debit is now working, but this appears to have triggered me travelling down some sort of error path in the credit card company’s business logic. I’ve decided to stop using this card for 2 months to let the dust settle: and then perhaps I’ll test their business logic some more…
Tags: automation, fuzzy logic, testing
Posted by Ben Bakowski | 1 Comment »
April 24th, 2009
Ok, we discovered a long time ago that Telnet and FTP happily broadcast your username/password combo in plain text. So then we started using Secure shell (SSH) and Secure copy (SCP). Obviously with these being Linux based technologies there are Windows utilities such as WinSCP.
Everything is great and all are happy. However, it doesn’t stop there…
The clever bods who wrote SSH allow you to pass command line parameters to the remote system that will get executed and the output returned to your local system. Here’s an example:
ssh me@example.com ‘ls’
This will run the ls (list files) command on the remote system and return you the result, though not before prompting you for a password. So, to make the experience even smoother you can perform some magic by swapping digital keys to remove the dependency on passwords. I’ve used the following Web page a bunch of times to set up SSH login without password.
Enjoy this post and the sunny weather
Tags: FTP, magic, no passwords, scp, SSH, Telnet, WinSCP
Posted by Scott Clee | 1 Comment »
March 10th, 2009
Good news! I’ve bought myself a new phone, and it’s modern – you don’t need both hands, a custom sling and a three-phase power supply to use it. Things started well; email pretty much set itself up, a trip to Fring provided instant messaging, but GPS was a whole world of pain. Typical, it let me down in front of Dr Ben – which is never a good idea. The last time he laughed this much was when my first sat nav took us on a ‘short cut’ which grounded my car out. This time we ended up walking half a mile down a very busy road because he insisted on making random navigation decisions until I could demonstrate a reliable satellite lock – which didn’t happen. After several days of futile google searching and guess work, I finally modified the A-GPS settings to remove the http:// prefix. I don’t know why I did this, but it worked and I got a lock within seconds. A colleague’s handset confirmed my guess-work, the http:// prefix was clearly not required. I must admit that, as a tester, I’m ever-so slightly disappointed that I fixed it.
Posted by Richard Coppen | No Comments »