94. I test them using the FAILURE mnemonic v1.2 FAILURE.QualityFrog.com
95. A mnemonic is a device that aids memory recall v1.2 FAILURE.QualityFrog.com
96. The FAILURE mnemonic is an acronym that helps me recall guideword heuristics v1.2 FAILURE.QualityFrog.com
97. Guideword heuristics are words that guide thinking through a problem v1.2 FAILURE.QualityFrog.com
98. The FAILURE mnemonic’s guideword heuristics help me think about testing error messages v1.2 FAILURE.QualityFrog.com
99. The F reminds me to think about Functional aspects of the error F AILURE v1.2 FAILURE.QualityFrog.com
100. I ask Functional questions like Does the error detection function as expected? v1.2 FAILURE.QualityFrog.com
101. I ask Functional questions like Does the error handling function as expected? v1.2 FAILURE.QualityFrog.com
102. I ask Functional questions like Does the error reporting function as expected? v1.2 FAILURE.QualityFrog.com
103. I ask Functional questions like Does the error dialog, window, or page function as expected? v1.2 FAILURE.QualityFrog.com
104. I ask Functional questions like Does the software recover from the error? v1.2 FAILURE.QualityFrog.com
105. I ask Functional questions like Was there really an error? v1.2 FAILURE.QualityFrog.com
106. I ask Functional questions like Are other errors like this reported? v1.2 FAILURE.QualityFrog.com
107. I ask Functional questions like Do dialog buttons work? v1.2 FAILURE.QualityFrog.com
108. I ask Functional questions like Is error message information accurate? v1.2 FAILURE.QualityFrog.com
109. I ask Functional questions like Is it functional? v1.2 FAILURE.QualityFrog.com
110. Only I don’t stop at Functional v1.2 FAILURE.QualityFrog.com
111. A Functional error message is not necessarily an Appropriate error message v1.2 FAILURE.QualityFrog.com
112. The A reminds me to ask if the error reporting is Appropriate F A ILURE v1.2 FAILURE.QualityFrog.com
113. I ask Appropriate questions like Is the error reporting timely? v1.2 FAILURE.QualityFrog.com
114. I ask Appropriate questions like Is the error reporting accurate? v1.2 FAILURE.QualityFrog.com
115. I ask Appropriate questions like Are UI messages free of inappropriate technical detail? v1.2 FAILURE.QualityFrog.com
116. I ask Appropriate questions like Is there a better way to handle or report the error? v1.2 FAILURE.QualityFrog.com
117. I ask Appropriate questions like Is the error user friendly? v1.2 FAILURE.QualityFrog.com
118. I ask Appropriate questions like Are errors detected as early in the user workflow as possible? v1.2 FAILURE.QualityFrog.com
119. I ask Appropriate questions like Are system resource problems detected while there is still time to remedy the problem? v1.2 FAILURE.QualityFrog.com
120. I ask Appropriate questions like Is the situation communicated appropriately for the intended audience? v1.2 FAILURE.QualityFrog.com
121. I ask Appropriate questions like Is a user allowed to waste time and effort only to be told that their work cannot be applied? v1.2 FAILURE.QualityFrog.com
122. The I reminds me to ask about the Impact of the error FA I LURE v1.2 FAILURE.QualityFrog.com
123.
124.
125.
126. I ask Impact questions like Will the user understand the impact? v1.2 FAILURE.QualityFrog.com
127.
128. I ask Impact questions like Does the message contain too much information? v1.2 FAILURE.QualityFrog.com
129.
130. The L reminds me to ask about the error Log FAI L URE v1.2 FAILURE.QualityFrog.com
131. I ask Log questions like Should the error be logged for support? v1.2 FAILURE.QualityFrog.com
132. I ask Log questions like Should the error be logged for system administrators? v1.2 FAILURE.QualityFrog.com
133. I ask Log questions like Should the error be logged for developers? v1.2 FAILURE.QualityFrog.com
134. I ask Log questions like Should the error be logged for technical investigation? v1.2 FAILURE.QualityFrog.com
135. I ask Log questions like Will log information be available if the user waits to report a problem? v1.2 FAILURE.QualityFrog.com
136. I ask Log questions like Are log messages standardized to support automated information mining? v1.2 FAILURE.QualityFrog.com
137. I ask Log questions like Can I grep this error? v1.2 FAILURE.QualityFrog.com
138. I ask Log questions like Do logs contain enough information? v1.2 FAILURE.QualityFrog.com
139. I ask Log questions like Do logs contain useless information? v1.2 FAILURE.QualityFrog.com
140.
141.
142.
143.
144.
145. The U reminds me to think about the User Interface FAIL U RE v1.2 FAILURE.QualityFrog.com
146. I ask UI questions like Is the error reported to the user? v1.2 FAILURE.QualityFrog.com
147. I ask UI questions like Does this error need to be reported to the user? v1.2 FAILURE.QualityFrog.com
148. I ask UI questions like What user activity caused the failure? v1.2 FAILURE.QualityFrog.com
149. I ask UI questions like What user activity caused the failure? Is this communicated to the user? v1.2 FAILURE.QualityFrog.com
150. I ask UI questions like Who is the user? v1.2 FAILURE.QualityFrog.com
151. I ask UI questions like Are UI messages worded for the intended audience? v1.2 FAILURE.QualityFrog.com
152. I ask UI questions like Is this message consistent with the desired look and feel? v1.2 FAILURE.QualityFrog.com
153. I ask UI questions like Is the UI reporting consistent with reporting for other errors? v1.2 FAILURE.QualityFrog.com
154. I ask UI questions like Is the UI reporting efficient? v1.2 FAILURE.QualityFrog.com
155. I ask UI questions like Does the user need to click away excessive dialogs? v1.2 FAILURE.QualityFrog.com
156. I ask UI questions like Is this the best way to communicate the error? v1.2 FAILURE.QualityFrog.com
157. I ask UI questions like Could this error be handled without involving the user? v1.2 FAILURE.QualityFrog.com
158. The R helps me think about error Recovery FAILU R E v1.2 FAILURE.QualityFrog.com
159. I ask Recovery questions like Is the user told how to recover from the impact of the error? v1.2 FAILURE.QualityFrog.com
160. I ask Recovery questions like Does the user need to contact support? v1.2 FAILURE.QualityFrog.com
161. I ask Recovery questions like Is support contact information provided? v1.2 FAILURE.QualityFrog.com
162. I ask Recovery questions like Does support know how to fix the problem? v1.2 FAILURE.QualityFrog.com
163. I ask Recovery questions like Does the software guide the user through the recovery process? v1.2 FAILURE.QualityFrog.com
164. I ask Recovery questions like Or is the user left to figure it out on their own? v1.2 FAILURE.QualityFrog.com
165. The E leads me to think about the Emotions of users FAILUR E v1.2 FAILURE.QualityFrog.com
166. I ask Emotions questions like What emotions are likely to be raised by the error message? v1.2 FAILURE.QualityFrog.com
167. I ask Emotions questions like Does the error reporting evoke the desired user emotions? v1.2 FAILURE.QualityFrog.com
168. I ask Emotions questions like Does this message enhance user frustration? v1.2 FAILURE.QualityFrog.com
169. I ask Emotions questions like Does this message quiet user frustration? v1.2 FAILURE.QualityFrog.com
170. I ask Emotions questions like Does this message encourage users to use some other product? v1.2 FAILURE.QualityFrog.com
171. I ask Emotions questions like Does this message cause confusion? v1.2 FAILURE.QualityFrog.com
172. Asking these types of questions can help turn FAILURE into success v1.2 FAILURE.QualityFrog.com
173. The next time you encounter an error message v1.2 FAILURE.QualityFrog.com
174. The next time you encounter an error message Test it! v1.2 FAILURE.QualityFrog.com
175. The next time you encounter an error message Question it! v1.2 FAILURE.QualityFrog.com
176.
177. And let me know how it works for you v1.2 FAILURE.QualityFrog.com F unctional A ppropriate I mpact L og U I R ecovery E motions
This dialog was displayed after clicking the You Tube link to view a list of videos posted by a user. F What caused this message? Does an error condition really exist? What happens if I press OK? What happens if I press the close button? If I do the same thing again, will the error message be displayed again? A If something is known to not work, could the user have been prevented from doing whatever caused the error? I Does this mean I can’t do what I tried to do? Will I be able to use this feature with different data? Is there an outage? Can I try again later? L Should this error be logged on the server to assist in identifying error trends? Who should get/use the logged information? Is there any log information that may help me, a tester, understand what caused the error? U What page says? The URL in the error dialog is just the start of the URL for the page I was using. Is this error message’s style consistent with other error messages on the site? R Do I need to wait and try later? Is part of the system down? What happens if I press OK? What do I need to do to make this work? E I can’t see my friend’s videos. I’m unhappy. If I knew more about why it is not working, I might be more understanding.
Sometimes we expect error messages. Just because a test script says an error is to be expected does not mean that we do not need to test the message itself.
F Does the Cancel button cancel an order ad its label might imply or does the OK button cancel as the text states? Was the user trying to cancel an order when this appeared? If a user cancels in the software, does the order get canceled? A Do I press Cancel or OK to cancel? Do I have to lick the button? What’s JavaScript? This is technical detail that does not apply to the user -- unless they are canceling an order for JavaScript. Why is there a compass icon for canceling an order? I What happens if I cancel an order? Was this communicated before this message? Will it come later? Has the user paid yet? Do they get a refund? L Does this need to be logged? Probably not in an error log, but in an order log. U Users may not know what JavaScript means. This is technical detail that should be hidden from the user. The Cancel and OK buttons purpose are not clear. What does the compass icon mean? Does it mean the same thing throughout the application? What order is being canceled? R What do I do to not cancel an order? What if I clicked the wrong thing and did not expect this? What am I canceling? E If a user does not read the text and presses the Cancel button to cancel an order, they will be very unhappy to have the order processed when they wanted it canceled. The JavaScript reference may confuse users. The “lick OK” may entertain users and distract them from what they were doing. Humor can be good if it doesn’t get in the way of the user’s work in the software. What if the user waits to click because they went to find someone to show them the funny error dialog? Will the cancel timeout?
F Does Yes reconnect me? Does No not reconnect me? A What is a “peer”? What does 10054 mean? Does the user need this? What is a connection reset? If the connection was reset, doesn’t that mean I’m set back to my expected connected state? This error message appears to have been written for technical people. Are those the only users of this application? I What does it mean to reconnect? What if I don’t reconnect? What does it mean that my connection was reset by a peer? L Does this need to be logged as an error? Is the reason for the reset logged somewhere else? On the client? On the server? U Could the software automatically reconnect me and not bother me with reconnecting? Would that be better? R If looks like I can select the “Yes” button to recover, but its not clear from what I am recovering. E I might be happy that a connection loss is being detected and I am being given an option to reconnect with the click of a Yes button.
F What causes this dialog? A Why is a success being reported as an “Error”? I What’s the impact of the success, or error, or whatever it is? L If this should have been logged, I hope the log tells me more than this message. U The text is contradictory. R How do I fix a success error? E I’m confused. Is it an error or is it a success?
F What value? How is it not valid? What do the buttons do on the dialog? Is the value really not valid? Why is there a Retry option for something that’s not valid? A Could Excel have prevented me from entering something that’s not valid? I don’t know what “not valid” means. I What is the impact of my entering invalid data? Is it lost? Can I continue anyway? L This probably doesn’t need to be logged, but I’d like to have logged info about what user restricted the values. U The dialog does not tell me what was invalid. It does not tell me what is valid. Why am I offered an option to retry? Retry what? Enter an invalid value? Won’t it still be invalid? Or does Retry give me an option to enter a new value? What does cancel do? Cancel the restriction on the values or cancel my entry? R How do I remove the restriction? E I might be happy that I was stopped from entering bad data. I might be unhappy that I am not allowed to enter valid data. I might be confused about what is required to make my data valid. I might be confused about the meanings of the buttons.
F Something looks very wrong here. A file not being open should not prevent a file from being opened. What happens if I press OK? A I don’t see any context information about what file cannot be opened. I So what is the impact of not being able to open a file that is not open? L Does this need to be logged? U I see no context information about the error. The message is confusing. Is this accurate? R If I can’t open a file that is not open, then how do I open a file in the first place? Will it work if I try again? How do I open the file? Is the file that could not be opened my file or something needed by whatever application displayed the message? E I am now confused and frustrated. How can this message be improved to reduce confusion and frustration?
F Does OK restart the computer? A Shouldn’t I have been warned about needing to restart before making the change? What if I can’t restart now? I What if I don’t restart now? L Is this logged? Does it need to be logged? U Why must I restart? Does OK restart me or just confirm that I read the message? R Can I back out of the setting change? If so, how? E I don’t want to restart. I was attempting to fix a display problem and now I feel that I am being forced to restart. Is it possible to give the user an option to back out? Could rewording the message and/or changing the button to state what clicking OK does alleviate user confusion?
I saw a dialog like this in a product demo. The demonstrator didn’t understand it and clicked cancel to make it go away and then went on to demo a different feature. F Wow. I have no idea how this is supposed to function. Are there blank dialogs in other parts of the application? A A blank dialog does not seem to be appropriate. I What the impact? I can’t tell because I don’t know what this dialog means. L Did this generate a blank log entry? Is there a log that might explain what happened here? U Users should not be asked to OK something without telling them what it is. There is no title or text. What does this mean? This dialog is very broken. R How do I recover from not knowing anything? This needs to be fixed. E I’m very confused now. I thinking that someone somewhere made a huge mistake to generate such an error dialog? And I might be laughing.
F If my statement is valid, why am I getting an error dialog? Is this an informative dialog that is mislabeled as a “Task Error”? What if I try an invalid SQL statement? A It doesn’t seem to be appropriate to give an error for a valid SQL statement? Is there an error in the SQL statement? Is there an error in the message? Is a dialog box the best way to communicate whatever is being communicated? I What is the impact? I first need to know if there is a problem with the message or the code that triggers the message. Is my statement lost because it is valid or invalid? L Does this need to be logged? U This message is really confusing. Why am I being shown an error for a valid SQL statement? -- if that’s really the case R How do I fix my valid statement so that I can continue? E Now, I’m either really frustrated, or I’m laughing at this silly dialog.
F If I re-enter $20, what happens? What if I request $40? If I enter a multiple of $50, will it work? Did the machine run out of $20 bills? Is the machine ever able to issue $20? A Why was the user allowed to select $20 is the system is not able to issue $20? Wouldn’t it be better not offer $20 as an option if the system in unable to issue $20? I What if I only want $20? What if there is less than $50 in my account? Will the machine still encourage me to withdraw more than I have available? It can’t “issue” me $20, but did it first deduct $20 from my account? I want to know that my money is still safely in my account. L Is this condition logged? U Why is the user allowed to select an invalid option? Why is there a picture of a $20 and a $50 bill in the error screen if the system can’t give me $20? Why is there no quick selection options for re-entering an amount? Where’s the OK that I am supposed to press? R This tells me how to recover. It tells me I need to enter an amount that is a multiple of $50. E I am unhappy that I am being forced to take more money than I want out of my account. I might have been happier if I had not been given an option for $20 if that were not available.
You can practice using FAILURE on the error messages included in this presentation.