Get yourself out of Inbox
Today's tip comes from Ali Hale.
In her article "Why You're Hooked on Email – And Five Ways to Stop" she states 5 most common reasons keeping people in Email, as well as proposes new habits to develop - to get out of it.
When you finish one task, you might find yourself opening up your inbox to see what's waiting. You're checking email because you're not sure what to do next – and emails provide a convenient excuse not to think.
How to Stop: Keep a to-do list, and batch smallish tasks together – that way, you can move smoothly from one to the next.

Read the entire list and let us know what habit you'd want to pick up for yourself.
Task Manager workaround: close process in a second
How many times were you clicking "End Process" button in Windows Task Manager hopelessly trying to shutdown a hanging application?

Next time, you can try the following.

  • Click "Start" -> Select "Run.."

  • Type "cmd" -> Click "OK"

  • In OS Shell window appeared, type "taskkill /IM your_program.exe"


A few necessary comments.

TaskKill.exe is Microsoft command line utility. It kills and unloads from memory a process or a process tree entirely and [almost] instantly. It is available in versions from Windows XP and higher. It comes installed by default but may not be accessible by a regular user in your organization. You may also experience security permission issue, depending on privileges of your user account.
Visualize XML then Blink Test
XML format is a very popular data container. Programs read, generate, convert, and exchange data in XML format.
XML data chunks can be uploaded from application's GUI, or can be generated by a client part and then transmitted to a server. XML data input can be effectively used when an application has unstable GUI or has no GUI at all.

[sourcecode language="XML"]
<pre><?xml version="1.0" encoding="utf-8"?>
<transactions>
<debit> <amount>10.0</amount></debit>
<credit> <amount>55.0</amount> </credit>
<debit> <amount>120.0</amount> </debit>
<debit> <amount>25.0</amount> </debit>
<credit> <amount>5.0</amount> </credit>
<credil> <amount>15.0</amount> </credil>
<credit> <amount>15.0</amount> </credit>
<debit> <amount>60.0</amount> </debit>
<debit> <amount>50.05</amount> </debit>
<debit> <amount>75.0</amount> </debit>
</transactions></pre>
[/sourcecode]

...But, in testing, XML data verification task means time-consuming process of going through countless, similar-looking text lines, with a high chance to get bored and miss an inconsistency.

Sample Task


Verify “transactions” xml file presented above.
Only “debit” or “credit” records are valid. Any other entries must be located and reported.
Additionally, identify and report all debit records with debit amount greater than 50.00.

As you can see, even going through just 10 records takes a significant time and might become really boring task.
With a 100 of records it's pretty much a brain-dead work to do.

How can we transform it to re-enable brain-powered testing?


Blink Testing technique, as described by James Bach, would be a perfect fit to engage rapid pattern recognition capabilities of a human brain. However, applying it directly to a textual source of an XML file may lack of efficiency due to complexity of a pattern.

Transforming XML text into a web-page looking table (HTML table) with inconsistencies color-coded, gives an instant productivity boost for blink testing.

transactions

 

XML visualization technique


XML transformation, presented above, is performed with help of XSL (Extensible Stylesheet Language) script.
Creation of XSL scripts does not require installing any IDE - you can use just a text editor, like Notepad. You would need minimal programming experience to start creating your own scripts, and you can easily modify existing templates.

XML source sample and its visualization were taken from my article "XML verification example".
You can also find there XSL source code template and links to other XML/XSL related articles.
Ten 20 Years Old Usability Heuristics
Jakob Nielsen, one of the world's top experts in user interface design and application usability, was once already referred in Quick Testing Tips.

In today's tip I want to bring readers' attention to Usability Heuristics as ready-to-use test oracles. Please read entire list via the link provided, I put here just one as an example (per author's copyright requirements).
User control and freedom
Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.
Principles of Experimentation and Measurement
It's easy to make mistakes when testing software, ranging from picking the wrong set of measurements, to conducting inadequate tests, to mis-interpreting the results. One of the things that helps me to reduce the mistakes I make is to apply the principles described in a book by Gordon M. Bragg, published in 1974, titled "Principles of Experimentation and Measurement" ISBN 0-13-701169-5 I've bought several copies so far, at about $5 including delivery, from online bookstores.

Tests are similar to experiments - intended to obtain answers to questions where we want the answers sooner than we might otherwise obtain them (e.g. after software has been launched). Gordon's work can help us to create effective tests. For instance, chapter 2 "Defining the Problem" provides several examples of how the definition of the problem (what we want to achieve with our testing) including measuring the height of waves in Lake Huron. "The wave heights in a situation such as this range from less than 1/10th in. to several feet. ... How long a sample is required and under what range of conditions? ... If we consider the reason for the measurements, we can eliminate those which are not required. If the wave heights are required for ship design, then the frequency and magnitude of the largest waves will be important. ... If, now, our purpose is to study the effect of wind on creating possible currents in the lake, we have quite a different situation. In this case the action of the waves on quite small surface waves may be a mechanism for transferring energy from the wind to the water. ... If our purpose is to determine the shape of the waves, we would certainly expect this to vary with wave size. However, here we may need only to measure a few waves in each height range (say 50). The relative frequency may well be unimportant. Each of these cases will require a quite different approach to the basic problem."

By comparison, when we need to 'test' software, there are lots of things we might want to assess, and many possible measurements we could obtain e.g. is the absolute position of an item on screen critical to the behavior of the software? Is the speed of response critical, and if so, does it matter how much the speed varies if the average is within the requirements specified? (and here we could ask what average represents e.g. the mean, the median, and is it even a useful measure?)