Categories
Blog posts in English

My Let's Test photos


See also the ‘official’ Let’s Test Flickr photostream

Categories
Blog posts in English

Some Monday pictures

All pmy hotos from Let’s Test are now here.

Categories
Blog posts in English

Sunday evening pictures from Runö

All my photos from Let’s Test 2013 are now here.

Categories
Blog posts in English

On Antifragility and Robustness

Some drinking glasses are very fragile, but fragility does not have to be a bad thing. I think most people will prefer a fragile but thin and beautiful champagne glass for over a heavy, robust one. Thin glass just suits champagne better. A fat, fruity Barolo will go better in a thicker, more robust glass.
But both the thick, more robust glass, and the thin fragile glass share a property: There is no way you can make them stronger once they have been cast or blown. In fact, since glass is an amorphous solid material, it tends to become more fragile over time. Vibrations of the molecules in the material will eventually distort the structure, making it weaker.
The diagram below illustrate how a glass subjected to daily use over a period of time can eventually break when force it is subjected to exceeds the ”breakting threshold” of the weakest point in the glass. The threshold is the maximum force the glass can take before it breaks, and in the case with the fragile champagne glass, the threshold decreases over time: The glass is becoming more fragile with age.
A fragile class subjected to forces in daily use eventually breaks
Now, let’s imagine that science discovers a way to strengthen molecular bindings in amorphous materials by vibration. Lets say, we can somehow convert the kenetic energy in vibrations of molecules into potential energy in the intramolecular bindings. The effect would be that we could make a type of glass, which gets stronger with use.
The breaking threshold will now increase over time: The more the glass is bumped around during normal use, the stronger it will get. The diagram will look like this:
A drinking glass made out of a special antifragile material gains strength when used
Note that this does not mean that the glass has become unbreakable. The only thing that has changed is that the curve illustrating the strength of the glass has changed from going downwards to going upwards and the forces the glass is subjected to during daily use no longer crosses that curve.
The term ‘antifragility’ is new, invented by Nassim Taleb and first used in a publication in the appendix to the second edition of his book The Black Swan.
Taleb says antifragility is a property of the oganic and the complex. Human bones are antifragile: Children’s bones are in fact quite fragile and grow stronger with use. But if you sit down (or live in weightlessness), they become fragile. That does not mean that bones can’t break – of course they can break. But like the imaginary antifragile glass above, bones of a well trained person are just able to take a lot more “beating” before they do so.
Dead things like champagne glasses, washing machines, computers and their software are inherently fragile and unless someone incorporates something which can implement the feedback of use into strength. Similarly, adding complex, but still ordinary software to a system cannot make it antifragile, nor will any special kinds of tools used in the development of it make neither the project, nor the product, antifragile.
Thanks to Jesper L. Ottosen for very reviewing this blog post.

Photo of Two drinking glasses
A robust glass and a fragile glass. Neither of these are antifragile.

Categories
Blog posts in English

Antifragility by Testing?

”There are two classes of things [] One class of things that gain from disorder, and one class of things that are harmed by disorder.”

Nassim Nicholas Taleb, author of the best seller ”Black Swan” is out with a new book: ”Antifragile: How to live in a world we don’t understand”. He gave a lecture at the London School of Economics on December 6th 2012 during his book tour. The lecture is available as a podcast here.

”Technology is inherently fragile.”

The words are Nassim Taleb’s , and the statement should not surprise any testers: Testers can find bugs in even the best pieces of computer software: It is only a question of having useful testing heuristics, how much effort we’re using, and about observation skills of course.

”In psychology, people talk about post traumatic disorder. But very few talk about post traumatic growth.”

I am a big fan of Nassim Taleb for his original philosophical thinking and his ability to think and speak clearly about subjects which are very complex and sometimes even counter intuitive.

Taleb has a lot to teach us in testing, and it is very obvious to me that fragility is something that we should start looking for.

”The difference between the cat and the washing machine […] is you need to fix [the washing machine] on every occasion. The organic self-heals.”

Computer systems do not self-heal – they are inherently fragile.

Photo of Nassim Nicolas Taleb giving a lecture
Nassim Nicholas Taleb (photo: Bloomberg)

But let’s step back for a moment, taking a broader look. Let’s look at the systems incorporating the computers and the software: Organizations using information technology to run their business, communities using IT to stay connected, factories with machinery, workers, managers and computers to run them. Can any of these systems be described as antifragile?

”You should never let an error go to waste.”

My question is ”Can testing be applied in such a way that it not only detects fragility, but instead facilitates the development of anti-fragility?”

I believe that the answer is yes. And yes; there are antifragile systems out there incorporating computers and IT.

Please consider a recent test activity you participated in. Now think about the system which was building the product you were testing (my apologies for using manufacturing terms here): The people, the project teams, the organization. Such a system is organized into layers, and while the bottom layer (where the technology is) is usually inherently fragile, some of the higher level layers were perhaps antifragile?

This is where I see the role of testing coming in:

”It’s not about trial and error – it’s about trial and small error.”

In this very statement, Nassim Taleb, in my humble opinion, speaks clearly about what testing is about. The antifragile system for developing products grow stronger when testers find problems, since not only will the system learn from experience; no the antifragile system will prepare itself for things that are worse than what was experienced.

Put in another way: The antifragile software project does not just fix the bugs it encounters. The antifragile software project fundamentally eliminates problems based on knowledge from the small problems testers find.

So my message to project and and program managers is this: Don’t hire testers to find the defects. You should hire great testers to ensure your projects experience many small problems, allowing them to grow stronger and build better products: If your project systems are anti-fragile by structure, leadership and management, not only will bugs found by testers not be found in production: The overall quality of the product will be better!

And that, to me, is where the real business value of testing is!

Thanks to Jesper L. Ottosen for very constructive reviewing and commenting of drafts of this blog post.

Categories
Blog posts in English

Testing is your sensory nerves

The human brain and nervous system is probably the most complex organ in nature. The brain depends on the nervous system to supply information which the brain can then use to make decisions.

Recently, my son Troels broke his arm. I have four boys, and my wife and I more or less expected one of them to break something one day. After all, boys are boys!

Unfortunately, Troels’ fracture turned out not to be as ‘standard’ as I had hoped: Both bones in the lower left arm snapped completely, and he lost senses in the little finger, indicating damage to the ulnar nerve. Troels’ case where a nerve is damaged and cause loss of senses has made me think about analogies to testing.

Xray of Troels' arm showing the steel inserts to stabilize the broken bones
Xray of Troels’ arm showing the steel inserts to stabilize the broken bones

Sensory nerves work like testers

Sensory nerves collect information, transform it lightly and transmit it. Just like testers test things, nerves sense things. Science has identified four ‘modalities’: Touch, the sense of location in space, pain, and sense of temperature. Testers have modalities too: We test for performance, usability, functionality etc.

When signals from a nerve stops, areas in the brain previously associated with processing sensory information from this particular nerve are reorganized to process sensory information from other nerves. Some claim that the brain has a lot of spare capacity, but this reorganization indicates that that is actually not the case: Neurons are not allowed to sit idle and are reused as soon as they become ‘available’.

Loosing senses in the hand is considered a severe handicap for many reasons, and one reason is that patients risk burning their hands because they are no longer warned by their senses to avoid heat.

In the same way, not testing a subsystem at all introduces a risk that serious problems will go unnoticed. This relates to the coverage problem in testing.

Diagram showing sensory nerves in the arm and hand (source: wikipedia)

Nerve cells regenerate very slowly, only about 1 mm a day, but even after the nerve itself has totally regenerated, the brain still needs to do some relearning. It will have to relearn its map of the hand. Troels is 8 so his brain is still very flexible and easily relearns, and his senses have almost completely returned to normal by now.

Nature is a fascinating source of new insights!

Troels at the hospital after having the fracture stabilized
Troels on the way home with plaster on and steel in the arm

Thanks to Jesper L Ottosen for reviewing and editing this article.

Categories
Blog posts in English

Welcome to Elbug!

The year is 1982, I’m 13½ years old, and I had more or less completed the move from plain Lego bricks to Lego Tecnic. I’m also becoming increasingly interested in electronics, and while reading electronics books and magazines, and constructing my own circuits, Radio Luxemburg is playing on my AM radio. Reception is only possible after sunset and – depending on weather – even then is often quite poor, but the music and DJ’s are great, and I love it!
And this was when my computer career started: One of my father’s colleagues had built himself a simple computer based on the National Semiconductor SC/MP microprocessor. Based on a 1977 design by the Dutch/English Elektor magazine, he had chosen to skip their original printed circuit boards and instead build a compatible machine on wire wrap Eurocards. For some reason, he decided to give the machine to me 🙂
The machine was programmable in a tiny BASIC dialect called NIBL-E – and in machine code. Programs were recorded on cassette tape and loaded using a HEX I/O board with 16 hex number keys and 8 function keys for input, and 8 7-segment LED displays for output. A monitor program called Elbug residing in the lower 1.5 kb took care of hex i/o, cassette tape interface, and even had simple debugging tools. Starting the NIBL interpreter was easy though: You just had to RUN the program at address hex 1000, which was where the two 2 kb e-proms containing the full NIBL interpreter started.
The SC/MP had a very pretty instruction set architecture (almost RISC like), but was dreadfully inefficient and the BASIC programs executed very slowly. I therefore quite quickly moved on to learn the machine code language, writing programs on notepaper, converting the instructions to hex code by hand, and entering them on the hex-keyboard.
At some point, however, my father and I sat down and designed a simple assembler: Initially written in BASIC, over the following year or so, I wrote several machine code routines for it to speed up the assemblyprocess.
I remember carrying my open frame computer with several pc boards and 9 kb RAM and external terminal to a computer party. My friends found my computer odd, but cool. I programmed mine while they played games on their ZX Spectrums, ZX81s, andCommodore VIC-20s.
I explored and programmed the SC/MP computer for two or three years until I moved to a CP/M based personal computer, but that’s another story!
All this happened 30 years ago, and in the true spirit of retro computing, a few months ago, I started implementing an emulator in Java. Why? Well, I needed to get myself acquainted with a new Java IDE (IntelliJ), and my Java experience was getting pretty rusty… so why not do a hobby project which I could relate to? I still remember the hex codes of many SC/MP instructions – I think the memory of the computer is more or less hard-wired into my brain!
And here it is: My SC/MP emulator running the Elbug monitor:

My SC/MP emulator running the Elbug monitor

The processor emulator itself is about 600 lines of Java code, and there are some 500 additional lines of Java implementing a memory handling, a Swing based emulation of the HEX I/O board (including a 7 segment display widget), and a main program.
I feel I need to do some code clean up before I release it, but it’s my intention to put everything into a SourceForge project. Although I don’t know anyone apart from myself with a SC/MP computer, there are a few web pages around about this simple processor and the Elektor design, so it might be of interest to others.
I still have a few things to work out: The serial I/O on the SC/MP was implemented in software, so to run the original NIBL interpreter, I’ll have to do some cleaver de-serialization and serialization in Java as well as a simple terminal emulator. But I’ve got the software design pretty much worked out in my head, so I’m pretty sure I’ll make that work too.
I even have a plan to decode my old cassette tapes: A WAV file recording and some cleaver FFT analysis should be able to do the job of decoding the 600 baud FSK coding, I think.
By the way: The emulator is bug free! “That can’t be true!”, I hear you shout? Maybe not to you, but the thing is that none of the problems it has “bug me”: It’s all about entertainment! 😀

Categories
Blog posts in English

Can Psychiatric Care be Improved by IT?

Picture this: You are diagnosed with a heart problem and hospitalized to have it treated. You meet the doctor, who will be responsible for your treatment and you ask him what is going to happen to you.
He is clearly only remotely interested in you, but directly addressed, he mentions that you will be operated. Otherwise he only mumbles about the fact that you’re very ill, and that you will probably never recover completely. You will get an injection and if you don’t corporate, they might consider using force to ensure that you do. Don’t worry too much, though, he says, and leaves you, clearly signalling that he’s too busy to talk to you, and that after all, you’re just the patient.
Such treatment of patients would be scandalous in somatic care, but in psychiatric care all over the world, it happens routinely.
Fortunately, things are changing. Former Danish prime minister Poul Nyrup Rasmussen hosts a yearly ”Pscychatric Summit Meeting”, where users of psyhicatry and their peers get together to discuss problems, actions and trends. There are top politicians attending the meeting, but the ”stars” are the users – or patients as we often call them.
His summit meetings have already helped improving things a lot, pushing psychiatry to depart from the old paradigms of force and medicine based treatments, moving towards a user centered approach. We’re not there yet: Recently a case of systematic, life dangering, overmedication of patients in Copenhagen was revealed. But the situation is clearly improving.
There’s no doubt that if we are to change psychiatric care, we need to focus on values, but we will also need new ways of treating patients, and one of the more promising trends is to employ information technology in psychiatric care.
We’re not talking brain scanners or electromagnetic brain therapy machines, though. We’re not even talking neurofeedback therapy. No, what we’re talking about is communication technology. Thats why we call it tele-psychiatry, implying the increased use of tele-communications.
During the Psychiatry Summit Meeting last Saturday October 6th, I participated in a workshop organised by the danish ADHD Foreningen on tele-psychiatry.
Our hyphothesis is that tele-psychiatry could possibly improve treatments by:

  • Eliminating barriers – it’s easier to get in touch with your doctor.
  • Empowering the patient – psychiatrists should get off that soap box, stop talking down to the patient, and face him or her as a peer.
  • Improved coordination of treatments between different sectors, hospitals etc.
  • Less transport time wasted by patients.
  • Reducing anxiety and fear for some patients by allowing them to stay in touch with their caretakers without leaving home.

On the other hand, we worry that tele-psychiatry could also make things worse by:

  • Patients becoming more lonely
  • Tele-psychiatry is just a way for politicians to save money
  • Some users will feel alienated
  • It will be forced on users, further reducing their feeling of control over their own lives.

Text on the t-shirt reads: Mental illness does not make people dangerous

The workshop was only about 1 ½ hour, but the conclusions were never the less very, very interesting:

  • Voluntarity is important: The user should always decides for herself or himself whether information technology is something he or she would want to use in hers or his communication with caretakers. This applies both to apps or programs used by the user to record his or hers emotions, sleep or other aspects of mental health, as well as to tele conferencing tools (e.g. Skype).
  • Tele-psychiatry should not replace any existing parts of treatment programmes: It should supplement treatment programmes.
  • What about information safety? If you’re meeting face to face with a doctor, you can be pretty certain noone is listening, but when you are meeting your doctor over the Internet, you don’t know who might be listening in on you. The possibility of information leaks should be taken seriously.
  • Ethics: If you’re a psychiatrist communicating with a patient over Skype, you might gain insight in things going on in the patients home. How do you deal with that?
  • How will the virtual communication space affect what is being communicated? We need to know this to make sure treatment plans still apply (e.g. systematic interviews conducted by psychiatrists could be affected by this).
  • It will be easier to capture daily problems: Many users in psychiatry find it difficult to remember or to convey their experiences to the doctor during the regular meetings. With communication more easily accessible, this could improve and the doctor would be better able to make the right descisions about treatments.
  • Social networks should be included, not excluded from the technology. Peers are often the best ”doctors”.
  • Politicians should not treat tele-psyhicatry as the new magic technology which will allow them to save money and improve care at the same time.

Even though I’ve been working with information technology for almost 20 years now, I was initially very sceptical about tele-psychiatry, thinking that we need to be careful not to waste what we have. The workshop made me realise that tele-psychiatry can improve psychiatric care. I intend to follow the technology developments closely, primarily from the user side, but – if opportunities turn up – possibly also professionally.

Categories
Blog posts in English

I'm Puzzled and Bugged: An odd mouse click problem on Win7

Updated 12th October: Problem has vanished! Read below.
I’ve come across a very annoying and strange defect on my Windows 7 laptop. It really bugs me!
Here are the patterns I’m seeing:

  • Sometimes, the minimize/restore/close buttons don’t light up when I hover the mouse above them. Clicking them has no effect. Whenever this happens, Alt-Tab’ing to another window and than Alt-Tab’ing back again restores them and they work again.
  • In Firefox, this happens as soon as I have clicked once somewhere inside the window.
  • The same applies to Thunderbird, my e-mail application.
  • Mouse clicks in popup windows sometimes end up in the window below the pop up window. E.g. clicking the close button on a popup window does not close the window, but does something in the window below it.
  • Other applications don’t seem to suffer from the problem, but has other types of odd mouse behaviour.
  • In Libre Office, I can’t click-and-drag to select text any more. Text selection is only possible by keyboard.
  • The scroll wheel doesn’t work in Internet Explorer
  • Capture One Pro 6 (a photo editing application), dragging sliders (to control photo appearance) no longer works.

I’m puzzled and bugged. But I’ll find out what’s wrong.
Oh and, by the way: I have tried restarting. It doesn’t help.
— Update 23rd September:
As per Michael Boltons suggestion, I connected a new mouse: A Wacom tablet. It didn’t change anything.
I ran Windows update and Sony’s own update tool to update various drivers. It also didn’t change anything.
I’m pretty sure the problem started in the middle of the week. At first, I just thought it needed a restart and I was too lazy to do so, so it might have been there for a few days before I reacted. I haven’t installed any software, but I have run Windows update. The update log shows this:

I’ll try to uninstall the Silverlight update, as I’m suspecting it as ‘new and fancy technology’ might put in hooks in odd places in Windows.
— Update 12th October
I have a confession: The problem went and came back a few times, and now it’s gone completely. I feel like a lousy tester since I haven’t been able to dig out what caused it. Uninstalling software didn’t help, updating drivers didn’t help either, and even updating various software from Firefox, Thunderbird and Capture One Pro did not change mouse behaviour. I’m let with a well working laptop (that’s good!), the memory of a very annoying problem, and some lousy theories about what caused the problem.
Is this a case of a system error, which cannot be understood in the sense that there was a single cause, but has to be analyzed using a system perspective: A system of thousands of components interacting in complex ways? Like I suggest we analyse Black Swans in IT systems?
In that case, did something turn up the heat? I was a bit stressed myself at the time, but no – I don’t think my mental state affected this. And I can’t think of something.
My best guess is that a Firefox plugin for html debugging in combination with a specific version of the application and possibly some driver issues somehow ‘turned up the heat’ causing the problem to materialize. But it’s only a guess.
(By the way: I could have done like most would probably do: Reinstalled the pc or bought a new one. But just a few weeks before I did actually reinstall it completely with a new SSD and more RAM.)

Categories
Blog posts in English

A buggy business model

Dropbox is sending users e-mails like the one below. But there’s a problem: My dropbox is not nearly full. It seems Dropbox is including files in other peoples folders which have been shared read/write with me in the calculation of how much space my files are taking up. This is obviously a bug.
Or is it? Dropbox is marketing their service as a file sharing service, and they’re encouraging users to use it to share photos and other stuff with friends and relatives. This marketing is paying off: Users are signing up like never before (I know that because I see more friends signing up). As new Dropbox users start sharing files with me, the amount of space remaining on my Dropbox account is reduced. Essentially they’re asking me to pay for other users’ files.
There’s an alternative, though: I can earn space by asking others to sign up, thereby accelerating the problem.
I’m sure this is going to earn Dropbox a lot of revenues, so it should probably be counted as a feature. I’d call it a buggy one, since users will notice, and I’m sure this will kick back on Dropbox.
I don’t remember who said it, but it’s still true: If you’re offered something for free on the internet, then that something is not the product. Then you are the product.
Billede