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.)

Turning up the Heat

– What are you doing?
– I’m turning up the heat. To see if anything catches fire. It’s an old CID trick.

Detective Chief Inspector Jack Frost in the TV series “A Touch of Frost”

In the follow up post after my presentation at Let’s Test, I concluded that the next step in my work on black swan testing should be on operationalisation. This post introduces a a testing heuristic which I’ve successfully used myself. I call it “Turning up the Heat”

The basic idea is that odd things happen when a system is put under pressure, and that we can learn stuff about the system by doing so.

There are basically three ways to do it:

  • Load testing, i.e. putting the system under exceptionally heavy load for a period
  • Soak testing, i.e. loading the system lightly for a long time
  • Destructive testing, e.g. crippling subsystems by disabling or forcing malfunctioning

They can of course be combined.

In the quote above, heat is a metaphor for the psychological pressure Jack Frost is subjecting suspected murderers to, and here ‘load’ is also a metaphor for any environment changes that can have an impact on the way the system works. It could be a high data load, e.g. 10 or 100 times the normal rate of requests to a service, but it could also be something quite different, e.g. a 10 degrees higher than normal temperature in the server room. The black swan domain is the systems domain, so any component in the complete system is a valid target for putting load on.

Likewise, ‘crippling’ is a metaphor here for doing something to a subsystem that will cause the subsystem to work differently from normal: It could be as simple as just removing a component, or bugs could be deliberately introduced. In fact the target doesn’t have to be one single subsystem: Changing the same thing in several subsystems, e.g. compile all software modules with a buggy version of some widely used library, can be a simple and efficient apporach.

As testers, we often don’t have direct access to the tools needed to load and cripple subsystems and complete systems. I find that in order to practically “turn up the heat”, I often have to rely on the help of others, e.g. developers and system administrators. This leaves me with a communication and cooperation challenge which should not be taken lightly.

There are no right or wrong approaces in testing, but there’s a risk of wasting time: I.e. spending time on preparations and never getting down to the actual testing – thereby not learning. That’s one of the reasons I usually prefer simple techniques rather than planned approaches.

In one project I’ve worked on, the testing tool we used had a simple load testing function. I managed to crash the test environment completely by just running the tool off my own pc, and this eventually gave us some important information about a vulnerable subsystem (the root cause of the crash was not what anyone expected when the system stopped responeding). I spent less than an hour on this test – though getting the problem diagnosed and the environment recovered involved somewhat more work afterwards by the system admins, I’m afraid.

This actually points me to another point related to cooperation: While load testing or soak testing is normally non-destructive, only do it if the project can afford repairing what might be affected by possible malfunctions of the system. This could include other testers not being able to complete other testing activities!

About Working Memory and Testing

Cognition is the word used to describe all the mental processes happening in our brains. Cognition relies on working memory, which is the memory we are using when we are solving problems or performing tasks.

Testers, for example, often rely on working memory to keep track of what we are doing and the observations we are making while we test.

Working memory is fallible. You will probably have experienced going to the fridge to check something, yet when you get there, you find that you have forgotten what you were lookoing for. It usually helps returning to the place where you first thought about it, but sometimes it’s gone completely. It can be quite frustrating!

Adults can usually hold up to five things in working memory at the same time over a time span of several minutes. Small children can only hold one. A friend of mine, who used to work in a nursery, told me about a small boy, who had just learnt to walk. He was good at it, but when someone called his name, he fell on his behind. Every time! It’s was quite cute, she said.

Some people have very poor working memory. My 13 year old son Aksel has Asperger Syndrome and a severe attention deficit disorder (ADD). His working memory is very poor. In school, he usually looses focus on what he is doing after less than a minute, unless something or someone is helping him. By using a lot of mental energy, he can keep focusing over about 10 minutes, but it exhausts him and he has to take a break afterwards.

Yet, he can build the most fantastic Lego creations, particularly on the computer, and be concentrated about it for several hours. He is also excellent in a go cart, where he can stay 100% focused for more than 30 minutes – and is still completely relaxed afterwards. I’m usually exhausted after just 10 minutes!

So what’s the difference?

The difference, I beleive, is that the Lego creation and the go cart isn’t loading his working memory: He does not have to remember what he is doing as it’s in the context. The Lego building application is even helping him keeping all the bricks in order: He doesn’t have to focus on looking for that missing brick, but can quickly browse for any brick without loosing focus on the thing he is building.

At school, Aksel and his teachers are working hard to find strategies for off loading his working memory.

Aksel and I share a lot of genes, and though my working memory is far better than his, it isn’t quite as good as I would like it to be. I’ve learnt myself a few strategies to overcome it, and it’s usually not any big problem, though.

But since testing, and in particular explorative testing, is very demanding on working memory, I sometimes feel working memory impaired and I have developed a few strategies for myself to overcome it.

Test scripting is one of those strategies: Scripts are working memory aids for me.

Scripting by mind maps, however, doesn’t work well for me. The linear script is probably easier to navigate for me. (I love mind maps for taking notes and for manuscripts when I’m speaking, though.)

Scrips are also excellent providers of a ”safe home” when I’m diverting off to explore something: I don’t have to worry about forgetting what I was doing. I usually don’t even have take notes, which is very good, since note taking is something I’m not very good at (though, with discipline, I have improved over the years).

Developing strategies to assist your working memory can a good thing for anyone, even if you have excellent working memory, but there’s no one solution that works for everyone: Some like scripts, some hate them.

Experiment and stick with things you find work for you: Handwritten notes, mind maps, scripts, drawings. And if you are in the mood, try to use your body: Most of our brain cells are allocated to interacting with our muscles and senses, and they can work for you too: Count with your fingers, move yourself (and your laptop) around, talk to yourself about what you’re doing, etc.

In case you want to learn more about the concept of working memory, I can recommend the following book. It’s about working memory in children (for education), but the concept is the same for everyone:

Working Memory and Learning: A Practical Guide for Teachers