Is This A Bug or Not – 5W1H Requirement Testing

I read one interesting news today, it’s about a bug recently found on iphone.

A mother sent his son’s iphone4 to the local Apple retail store for a fix, when got back, the phone worked perfectly except that it could receive a stranger’s iMessage.

After investigation, this is how it was happened: To help the customer, who was using the iPhone without a SIM card, the Apple employee placed his SIM card into the phone. Unfortunately, the iPhone married itself to that number, so any texts sent to the phone were also sent to the customers phone.

While Apple does not think this as a bug:

“This was an extremely rare situation that occurred when a retail employee did not follow the correct service procedure and used their personal SIM to help a customer who did not have a working SIM,” Apple representative Natalie Harrison told The Loop. “This resulted in a temporary situation that has since been resolved by the employee.”

Do you agree with Apple’s judgement? Not me. This is definitely a bug with serious security impact, the other people could read your aspects of your life without your awareness, including banking, private life and etc.

“A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways.”  – from Wikipedia

Then how does this bug escape? According to the dialog, my guesses are as following:

  • There is a big project assumption – one phone is fixed binding to one owner, with one number. Your phone will not be borrowed, lost, broken!
  • There is no requirement about switching different SIM on one phone.
  • There is no security requirement about the iMessage application.
  • There is a procedure requirement on how to fix the iMessage application, everything worked fine by following that procedure. But that procedure isn’t the way people prefer to.

This actually provides a good reference to Requirement Testing. Challenge, Challenge, Challenge the requirement! There are different ways to do this, but I really like this self-invented “5W1H Requirement Testing”

  • Who – Put yourself on somebody else’s shoes, this will give you more thinking about requirement, good way to avoid missing requirement and clear the assumption. If the application is for the e-commerce owners, then you should consider the consumer as well in the requirement. There is a user-chain, if any  of them is not happy, then the impact is everybody. In this case, if the retail store staff normal practice is considered, we will not see this bug.
  • When – What time are you going to use this? What will happen before and after that? For a sensor project, the whether condition might impact as well.
  • What – What does this mean? What are the possible user scenarios? What’s the priority of this requirement? What will happen if exception? What kind of exceptions will be? For e.g, in this case, if one of the people asked the question: “What will happen if people swapped their phone”, it might be a different story.
  • Where – Where does this requirement for? For a mobile application, it could be a big difference if people use it at suburb, crowded city CBD, or desert. This will help on requirement missing as well.
  • Why – Why do we need this requirement? Is there any business value behind of it? This will help get rid of un-necessary/redundant requirement.
  • How – How could this requirement/user story happen? Is this a nature and preferred behavior of human? Everything may look perfectly all right from the logic, yes but wait, do you usually do thing that way?  For this iphone issue, the fixed procedure referred by Apple stuff definitely is not the convenient way that the retail store people prefers.

There might be more practices, welcome to share with me.






Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: