Bloggo back to the blog
A big Testing Lesson from a Cellphone Bug – by Shmuel Gershon-->
I hope you are enjoying all the guest blogging going on the EuroSTAR blog, I’m certainly having a blast.
Today’s story is interesting.
My wife’s cellphone was lost, and we had to buy a new one.
We asked at the store for the cheapest cellphone available, because an expensive smart phone is just not worth for her, all she needs is calling and SMS messaging. We got a little Nokia, small, simple, has calling/SMS and even a small flashlight as bonus. That’s not the interesting part yet.
After getting home and installing the SIM card, we discovered that although the phone worked properly, it had no ringing sound. No matter which profile we chose, ‘
Loud‘… no sound was made when receiving a call or SMS.
Here’s where the interesting part begins: We tried to configure the sound settings, by configuring the phone at the “
Ringing tone” menu, and… Surprise! The phone turns off and on. Every time we enter that setting, the phone resets itself, similar to what at the embedded testing world we like to call a ‘
firmware reset‘. This behavior repeated itself after shutting off the cell, after taking the battery out, after taking the SIM card off, after exchanging SIM… No matter what you do, you can’t reach the “
Ringing tone” configuration, or listen to the ringing sound.
This video shows you the problem demonstration:
Why is that interesting? That’s interesting because it is certainly a bug, or a big loss of value for us, the customers.
If we did not know better, we would ask Nokia testers: “
How come you didn't test the ringing setting?“.
But we do know better, so instead of asking them that, I delayed replacing the phone for a day and brought it to work today so my peers could learn with me the lesson below.
This bug is remarkable to me exactly because I am sure Nokia testers tested this feature. It is almost ridiculous to think that a phone model would be released worldwide without anyone noticing it doesn’t ring! (Actually, if it was a smart phone, maybe testers/managers/stores/customers would be so mesmerized by the fancy touch-screen technology that they would not care that the phone doesn’t ring… :) )
And if we are sure the testers tested this, how come it doesn’t work now? The hardware is not broken — it’s new, turns on and off, it makes and receives calls, and even the loudspeaker works during calls. The software isn’t broken either, as apart from the functionality mentioned, I can traverse the menu and play games.
We (at least me) are used to software in the computer world. Most parts of the systems our software relies on are not under the project control. I test embedded software that runs on motherboards, and different companies building a computer with this same product can chose a sub-par memory DIMM, or build a motherboard with a misplaced resistor or some weird components from different source than we used in our testing.
I was used to think that if we could control all the variables of our system, we would be able to control its behavior.
Now Nokia do have much more control on the hardware, plastics and all details of its products than computer systems software/firmware. And even then, a strange combination of just the right conditions causes this bug to happen.
This shows the affirmation about controlling all the variables is wrong. I think the wrongest part there is the innocent dream that we can control all the variables. We don’t even know what all the variables are. That’s the big lesson.
The lesson I shared today with my peers is that with software, like Shakespeare said, “
there are more things in heaven and earth, than are dreamt of in our philosophy“.