Page 3
prepare to readfast
v1.2 FAILURE.QualityFrog.com
Now that I have your attention,
Page 4
v1.2 FAILURE.QualityFrog.com
You’re testing…
And an error message appears
Page 5
v1.2 FAILURE.QualityFrog.com
Page 6
v1.2 FAILURE.QualityFrog.com
Did you expect it?
Or are you surprised?
Page 7
v1.2 FAILURE.QualityFrog.com
How does it make you feel?
Page 8
v1.2 FAILURE.QualityFrog.com
What do you do?
Page 9
v1.2 FAILURE.QualityFrog.com
Not ready reading drive AAbort, Retry, Ignore, Fail?
Page 10
v1.2 FAILURE.QualityFrog.com
Continue to the next test step…
Page 11
v1.2 FAILURE.QualityFrog.com
Page 12
v1.2 FAILURE.QualityFrog.com
Report a bug…
Page 13
v1.2 FAILURE.QualityFrog.com
Page 14
v1.2 FAILURE.QualityFrog.com
Resolve unknown conflict…
Page 15
v1.2 FAILURE.QualityFrog.com
Page 16
v1.2 FAILURE.QualityFrog.com
Find a file…
Page 17
v1.2 FAILURE.QualityFrog.com
Page 18
v1.2 FAILURE.QualityFrog.com
Eliminate something…
Page 19
v1.2 FAILURE.QualityFrog.com
Page 20
v1.2 FAILURE.QualityFrog.com
Request permission…
Page 21
v1.2 FAILURE.QualityFrog.com
Page 22
v1.2 FAILURE.QualityFrog.com
Try again…
Page 23
v1.2 FAILURE.QualityFrog.com
Page 24
v1.2 FAILURE.QualityFrog.com
Try something new…
Page 25
v1.2 FAILURE.QualityFrog.com
Page 26
v1.2 FAILURE.QualityFrog.com
Seek help…
Page 27
v1.2 FAILURE.QualityFrog.com
Page 28
v1.2 FAILURE.QualityFrog.com
Set a reference to an instance…
Page 29
v1.2 FAILURE.QualityFrog.com
Page 30
v1.2 FAILURE.QualityFrog.com
lick OK…C
Page 31
v1.2 FAILURE.QualityFrog.com
lick OK…
Page 32
v1.2 FAILURE.QualityFrog.com
Page 33
v1.2 FAILURE.QualityFrog.com
Save…
Page 34
v1.2 FAILURE.QualityFrog.com
Page 35
v1.2 FAILURE.QualityFrog.com
Enter a multiple of |ECL0…
Page 36
v1.2 FAILURE.QualityFrog.com
Page 37
v1.2 FAILURE.QualityFrog.com
Exit…
Page 38
v1.2 FAILURE.QualityFrog.com
Page 39
v1.2 FAILURE.QualityFrog.com
Reconnect…
Page 40
v1.2 FAILURE.QualityFrog.com
Page 41
v1.2 FAILURE.QualityFrog.com
Declare success…
Page 42
v1.2 FAILURE.QualityFrog.com
Page 43
v1.2 FAILURE.QualityFrog.com
Assign blame…
Page 44
v1.2 FAILURE.QualityFrog.com
Page 45
v1.2 FAILURE.QualityFrog.com
Laugh…
Page 46
v1.2 FAILURE.QualityFrog.com
Page 47
v1.2 FAILURE.QualityFrog.com
Restart…
Page 48
v1.2 FAILURE.QualityFrog.com
Page 49
v1.2 FAILURE.QualityFrog.com
Guess…
Page 50
v1.2 FAILURE.QualityFrog.com
Page 51
v1.2 FAILURE.QualityFrog.com
Gasp…
Page 52
v1.2 FAILURE.QualityFrog.com
Page 53
v1.2 FAILURE.QualityFrog.com
Request a raise…
Page 54
v1.2 FAILURE.QualityFrog.com
Page 55
v1.2 FAILURE.QualityFrog.com
Swear…
Page 56
v1.2 FAILURE.QualityFrog.com
Page 57
v1.2 FAILURE.QualityFrog.com
So…
Page 58
v1.2 FAILURE.QualityFrog.com
What do you do when you encounter an
error?
Page 59
v1.2 FAILURE.QualityFrog.com
While you think about that, let me tell you what I do.
Page 60
v1.2 FAILURE.QualityFrog.com
Oh, who am I?
Page 61
v1.2 FAILURE.QualityFrog.com
I am Ben Simo
[email protected]
Page 62
v1.2 FAILURE.QualityFrog.com
I use software
[email protected]
Page 63
v1.2 FAILURE.QualityFrog.com
I test software
[email protected]
Page 64
v1.2 FAILURE.QualityFrog.com
I question software
[email protected]
www.QuestioningSoftware.com
Page 65
v1.2 FAILURE.QualityFrog.com
I code software
[email protected]
www.QuestioningSoftware.com
Page 66
v1.2 FAILURE.QualityFrog.com
I code software that helps test software
[email protected]
www.QuestioningSoftware.com
Page 67
v1.2 FAILURE.QualityFrog.com
I talk about software
[email protected]
www.QuestioningSoftware.com
Page 68
v1.2 FAILURE.QualityFrog.com
I write about software
[email protected]
www.QuestioningSoftware.com
Page 69
v1.2 FAILURE.QualityFrog.com
I think about software
[email protected]
www.QuestioningSoftware.com
Page 70
v1.2 FAILURE.QualityFrog.com
I like software
Page 71
v1.2 FAILURE.QualityFrog.com
I like softwarethat serves people
Page 72
v1.2 FAILURE.QualityFrog.com
I like softwarethat helps people
Page 73
v1.2 FAILURE.QualityFrog.com
I dislike bad software
Page 74
v1.2 FAILURE.QualityFrog.com
I dislike bad softwarethat frustrates people
Page 75
v1.2 FAILURE.QualityFrog.com
I dislike bad softwarethat confuses people
Page 76
v1.2 FAILURE.QualityFrog.com
I dislike bad softwarethat angers people
Page 77
v1.2 FAILURE.QualityFrog.com
I dislike bad softwarethat discombobulates people
Page 78
v1.2 FAILURE.QualityFrog.com
I sometimes like big words that discombobulate people
Page 79
v1.2 FAILURE.QualityFrog.com
But only for a moment
Page 80
v1.2 FAILURE.QualityFrog.com
Discombobulate means toemotionally confuse
Page 81
v1.2 FAILURE.QualityFrog.com
Discombobulate means tofrustrate
Page 82
v1.2 FAILURE.QualityFrog.com
Discombobulate means tobewilder
Page 83
v1.2 FAILURE.QualityFrog.com
Discombobulate means toconfound
Page 84
v1.2 FAILURE.QualityFrog.com
Discombobulate means tobefuddle
Page 85
v1.2 FAILURE.QualityFrog.com
Discombobulate means toperplex
Page 86
v1.2 FAILURE.QualityFrog.com
Too many error messages discombobulate people
Page 87
v1.2 FAILURE.QualityFrog.com
Error messages should help people,
not confuse them
Page 88
v1.2 FAILURE.QualityFrog.com
You see,It’s not about the software
Page 89
v1.2 FAILURE.QualityFrog.com
It’s about the people!
Page 90
v1.2 FAILURE.QualityFrog.com
Testers often fail to test the error messages
Page 91
v1.2 FAILURE.QualityFrog.com
They fail to think about how they affect people
Page 92
v1.2 FAILURE.QualityFrog.com
So what do I do when I encounter error messages?
Page 93
v1.2 FAILURE.QualityFrog.com
I test them
Page 94
v1.2 FAILURE.QualityFrog.com
I test themusing the FAILURE
mnemonic
Page 95
v1.2 FAILURE.QualityFrog.com
A mnemonicis a device
that aids memory recall
Page 96
v1.2 FAILURE.QualityFrog.com
The FAILURE mnemonic is an acronym that helps me
recallguideword heuristics
Page 97
v1.2 FAILURE.QualityFrog.com
Guideword heuristics are words
that guide thinkingthrough a problem
Page 98
v1.2 FAILURE.QualityFrog.com
The FAILURE mnemonic’sguideword heuristics help
me think about testing error messages
Page 99
v1.2 FAILURE.QualityFrog.com
The F reminds me to think about
Functional aspects of the errorFAILURE
Page 100
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Does the error detection
function as expected?
Page 101
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Does the error handlingfunction as expected?
Page 102
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Does the error reporting
function as expected?
Page 103
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Does the error dialog, window, or page
function as expected?
Page 104
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Does the software recover from the error?
Page 105
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Was there really an error?
Page 106
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Are other errors like this reported?
Page 107
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Do dialog buttons work?
Page 108
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Is error message information accurate?
Page 109
v1.2 FAILURE.QualityFrog.com
I ask Functional questions like
Is it functional?
Page 110
v1.2 FAILURE.QualityFrog.com
Only I don’t stop at Functional
Page 111
v1.2 FAILURE.QualityFrog.com
A Functional error messageis not necessarily
an Appropriate error message
Page 112
v1.2 FAILURE.QualityFrog.com
The A reminds me to askif the error reporting is
AppropriateFAILURE
Page 113
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Is the error reporting timely?
Page 114
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Is the error reporting accurate?
Page 115
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Are UI messages free of inappropriate technical
detail?
Page 116
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Is there a better way to handle or report the
error?
Page 117
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Is the error user friendly?
Page 118
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Are errors detected as early in the user
workflow as possible?
Page 119
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Are system resource problems detected
while there is still time to remedy the problem?
Page 120
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Is the situation communicated appropriately
for the intended audience?
Page 121
v1.2 FAILURE.QualityFrog.com
I ask Appropriate questions like
Is a user allowed to waste time and effort only to be told that
their work cannot be applied?
Page 122
v1.2 FAILURE.QualityFrog.com
The I reminds me to askabout the Impact of the error
FAILURE
Page 123
v1.2 FAILURE.QualityFrog.com
I ask Impact questions like
Is the impact communicated?
Page 124
v1.2 FAILURE.QualityFrog.com
I ask Impact questions like
Is the impact communicated
to the user?
Page 125
v1.2 FAILURE.QualityFrog.com
I ask Impact questions like
Is the impact communicated
to others?
Page 126
v1.2 FAILURE.QualityFrog.com
I ask Impact questions like
Will the user understand the impact?
Page 127
v1.2 FAILURE.QualityFrog.com
I ask Impact questions like
Is any impact to the user’s data
communicated?
Page 128
v1.2 FAILURE.QualityFrog.com
I ask Impact questions like
Does the message contain too much
information?
Page 129
v1.2 FAILURE.QualityFrog.com
I ask Impact questions like
Was a transaction only partially completed?
Page 130
v1.2 FAILURE.QualityFrog.com
The L reminds me to askabout the error Log
FAILURE
Page 131
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Should the error be logged for support?
Page 132
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Should the error be logged for system administrators?
Page 133
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Should the error be logged for developers?
Page 134
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Should the error be logged for technical
investigation?
Page 135
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Will log information be available if the user
waits to report a problem?
Page 136
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Are log messages standardized to support automated information
mining?
Page 137
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Can I grep this error?
Page 138
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Do logs contain enough information?
Page 139
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Do logs contain useless information?
Page 140
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Is this an error that should not be logged?
Page 141
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Is there too much logging?
Page 142
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Does excessive logging impact performance?
Page 143
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Does excessive logging impact disk space?
Page 144
v1.2 FAILURE.QualityFrog.com
I ask Log questions like
Does the logging help or complicate error
investigation?
Page 145
v1.2 FAILURE.QualityFrog.com
The U reminds me to think about
the User InterfaceFAILURE
Page 146
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Is the error reported to the user?
Page 147
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Does this error need to be reported to the
user?
Page 148
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
What user activitycaused the failure?
Page 149
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
What user activitycaused the failure?
Is this communicated to the user?
Page 150
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Who is the user?
Page 151
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Are UI messages worded for the
intended audience?
Page 152
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Is this message consistent with the
desired look and feel?
Page 153
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Is the UI reporting consistent with
reporting for other errors?
Page 154
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Is the UI reporting efficient?
Page 155
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Does the user need to click away excessive
dialogs?
Page 156
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Is this the best way to communicate the error?
Page 157
v1.2 FAILURE.QualityFrog.com
I ask UI questions like
Could this error be handled without
involving the user?
Page 158
v1.2 FAILURE.QualityFrog.com
The R helps me think abouterror Recovery
FAILURE
Page 159
v1.2 FAILURE.QualityFrog.com
I ask Recovery questions like
Is the user told how to recover from the
impact of the error?
Page 160
v1.2 FAILURE.QualityFrog.com
I ask Recovery questions like
Does the user need to contact support?
Page 161
v1.2 FAILURE.QualityFrog.com
I ask Recovery questions like
Is support contact information provided?
Page 162
v1.2 FAILURE.QualityFrog.com
I ask Recovery questions like
Does support know how to fix the problem?
Page 163
v1.2 FAILURE.QualityFrog.com
I ask Recovery questions like
Does the software guide the user through the recovery process?
Page 164
v1.2 FAILURE.QualityFrog.com
I ask Recovery questions like
Or is the user left to figure it out on their
own?
Page 165
v1.2 FAILURE.QualityFrog.com
The E leads me to think about
the Emotions of usersFAILURE
Page 166
v1.2 FAILURE.QualityFrog.com
I ask Emotions questions like
What emotions are likely to be raised by the error message?
Page 167
v1.2 FAILURE.QualityFrog.com
I ask Emotions questions like
Does the error reporting evoke the
desired user emotions?
Page 168
v1.2 FAILURE.QualityFrog.com
I ask Emotions questions like
Does this message enhance
user frustration?
Page 169
v1.2 FAILURE.QualityFrog.com
I ask Emotions questions like
Does this message quiet
user frustration?
Page 170
v1.2 FAILURE.QualityFrog.com
I ask Emotions questions like
Does this message encourage users to use
some other product?
Page 171
v1.2 FAILURE.QualityFrog.com
I ask Emotions questions like
Does this message cause confusion?
Page 172
v1.2 FAILURE.QualityFrog.com
Asking these types of questions can help turn FAILURE into success
Page 173
v1.2 FAILURE.QualityFrog.com
The next time you encounter an error
message
Page 174
v1.2 FAILURE.QualityFrog.com
The next time you encounter an error
messageTest it!
Page 175
v1.2 FAILURE.QualityFrog.com
The next time you encounter an error
messageQuestion it!
Page 176
v1.2 FAILURE.QualityFrog.com
Try the FAILURE mnemonic
Functional
Appropriate
Impact
Log
UI
Recovery
Emotions
Page 177
v1.2 FAILURE.QualityFrog.com
And let me know
how it works for you
Functional
Appropriate
Impact
Log
UI
Recovery
Emotions
Page 178
v1.2 Copyright © 2007 Quality Frog
Ben Simo
[email protected]
http://FAILURE.QualityFrog.com
Functional
Appropriate
Impact
Log
UI
Recovery
Emotions