Monday, August 15, 2011

how to return an item: an exercise in practical impromptu testing

My wife asked me to return some items in one of our local pharmacy/convenient stores. This is usually a no brainer because the United States has a very friendly customer return policy. But what happened in that store suddenly became interesting and I had to put my thinking cap on in order to perform a supposedly brainless activity.

I walk in the store with the items in one hand and receipt in the other. After standing in line for five or so minutes, I handed both the receipt and the items over the cashier where she eyeballs the items and the receipt. She then asks for the credit card that I used for this purchase. For those who are familiar with an item return process, the printed receipt usually provides the last 4 digits of the credit card that you used for that purchase. If the credit card you presented to that person does not match the last 4 digits they either deny your return or you can ask for store credit depending on the mood of the cashier.

When the cashier inspected my card, she told me that the numbers didn't match. I must have given her the wrong card but my other card still didn't give a match. At the back of my mind, I was already thinking about some reasons why the match didn't happen;
  1. I gave them the wrong card.
  2. Their system fiddled with my numbers
Based on my assumptions and the known "Item Returns Oracle" that the cashier vehemently believed in, these are the facts that I have so far.
  • Both last 4 digits of the card didn't match what's on the printed receipt.
  • I used an American Express card to buy the said items the day before
  • I have two different American Express Cards
Three minutes into the conversation with the cashier, I proposed to run a series of tests since I know I used THE card that I gave them the first time. They happily obliged and opened another register for the other waiting customers. Now that the stage is all set, there are three ways to pay for an item at this store: You can swipe your card using a customer facing remote terminal, swipe your card using the cashiers terminal and scan an RDIF tag enabled card.

For the first test, the cashier scanned CARD A on her terminal. The last four digits on the printed receipt and my card matched. For the second test, I scanned CARD B on the customer terminal and that yielded the same results as the first test. For the third test, I used CARD A that so happen to have an RDIF tag. Eureka! The numbers on the receipt didn't match what was on my card but matched what was on the returned item's receipt. I spent $0.33 per test, plus 7 cents tax for a total of $1.06.

The manager finally walked in and confirmed that if you use an AmEx card, the RDIF scanning system only takes 16 digits and since American Express only has 15 digits, the systems will generate a 16 digit number and print the last 4 digits on your receipt. This confirms my second assumption that yes, the system indeed fiddled with the numbers on my card.

This was all done within 7 minutes and I was out of the store with my refund in hand and some sweets for the kids.

Lessons learned:
  • The "Item Returns Oracle" has been proven that it was not an Oracle but a Heuristic. The third test proved this.
  • If the cashier asked for the manager in the first place, I could have gotten the return earlier. I think this might be a simple deviation of Adam Goucher's "Know Where The Sun Is Heuristic".
  • Black Box Testing of a Financial Transaction system doesn't have to be expensive.
I felt very proud of myself having been able to test and learn something practical. As I got back in the car I told my wife what happened and she replied, I would have just called for the manager the moment the cashier didn't want to honor the return in the first place.

She is THE shopping expert in our household :-).

EDIT: I was aptly corrected that Oracles are Heuristic based. I agree. My reason for calling it as an oracle was due to the cashier's insistence that the receipt will "always" print the last 4 digits of the user's credit card.

No comments: