Nothing more fun than analyzing the code of an application and find one or more big good unforgivable bugs, as an ABAP ‘Break’ (instruction used in debug mode that will instantly stop the program), an OPEN / CLOSE file in a loop (time consuming instruction that should be placed out of the loop, obviously) or direct access to the database from a JSP page. No need of a specialist to know that these are serious defects.
Yet there is a situation when I hate finding bugs: as a user of an application.
With sunny days coming, I am looking for some furniture for my terrace, but all I find is luxuous and expensive. Damn, this is a small terrace of apartment, not the solarium of a big residency, I want a pair of reclining chairs, resistant and practical, which can stand the rain if I forgot them outside, not rare wood furniture with cushions embroidered with gold cords.
Finally, on an online website, I find exactly what I am looking for and in addition, there is a portable hammock for a good price. Portable means I will not need to pierce a hole through a wall to plant a hammock hook, and its price is 2 or 3 times less than the cheapest of the hammocks that I found so far. In short, a good deal.
So I start by selecting two chairs in my cart on this site, then notice a warning telling me that some articles being delivered by a different transporter, it may be necessary to realize two different purchases, one for each delivery and with the obligation to pay two times. As this sale proposes items from various brands like barbecue and camping freezers, certainly heavier and less easy to ship, I think it should not affect me.
No luck: I add the hammock in my cart, and when I want to pay, a message warning tells me that an error occurred and lists on more than one page all the possible causes and actions to undertake. Well, luckily I took the time to read the previous warning, and that I really want to buy these items, because this is the kind of stuff that would get me out of the site and immediately abandon a sale.
So I change my cart to make a new purchase with only my two chairs, making the payment online, then return to the merchant site to purchase the hammock, place it in the basket and validate it to proceed to the payment page.
There, a message asks if I want to add this purchase to the delivery already underway – the two chairs – or if I want to make a separate delivery. Is it finally possible to make a single delivery for these items, from the same brand and the same manufacturer?
So I opt for this solution: joint supplies for my two chairs AND the hammock. Except that I find once again the same page of generic errors because my two purchases can not be delivered by a single transporter.
What has happened? We are on a site offering various brands every day, you can at any time purchase multiple items in different sales: one T-shirt, a watch, sunglasses, etc. and decide to group all these purchases in a single delivery. Logical: it will be made by mail post, thus consolidating purchases, you save transportation costs. And – last but not least – it will save you waiting in your post office to collect the parcel, in case you are away when you will be delivered.
This default process does not apply in the case of our purchase … but the website still proposed it. Cherchez l’erreur.
Can I allow to say that we have a failing test? You will tell me that this is no big deal. I just need to request a second separate delivery for my second purchase.
Except that it was not possible. I had to cancel the second purchase to start over. And again, this was not possible: every time I tried to redo this second purchase, the hammock was already in my cart so I had to buy it twice. Probably a problem of refreshing the session and its data.
In other words, I could not make my second purchase, but I could not cancel my cart. I was stuck in a default process that did not apply, but which left me with no option of returning back to the process that did apply.
After several attempts, I had to shut the browser to delete the session and re-enter the site to make this second purchase. In short, it took me four or five different attempts to purchase two products of the same brand, while going mad with this site and especially with what I consider maybe a design or programming problem, but sure a test incident.
If the default process is not applicable, this seems more than obvious that this should be tested. How is it possible that as a single customer I immediately fall on such a malfunction? How a site with more than one hundred thousand connections every day can let such a defect if a customer is going to fall directly, if not logically, on it?
The answer in our next post.