Quality assurance, testing, debugging, bug hunting, etc. Whatever you want to call it, it sucks. It’s difficult to do, it’s not any fun, but it is an essential step of launching a web application.
It usually goes something like this: you write up your test cases to include actions that should work and some that should fail. You do black box testing and you do white box testing. Then, rinse and repeat.
Eventually you get to a point where you feel comfortable launching, but it does not stop there. Because this is web, we are not building software to be implemented in one company or institution or even across a single industry. Rather, when we decide it is time to launch a site, we instantly open ourselves up to a world of many different people with many different skill and experience levels.
Herein lies the difficulty. All of us internally, as well as the client, have a great understanding of the system and how it should be used, even if we have an opportunity to have some outsiders test the app, there is no way to predict how each individual will use it. Simply put, it is an incredibly difficult task to consider all the ways in which a user can possibly use each function of a web application.
Recently we launched an online store for a client. The client came back with one of their customers reporting that they got an error message when trying to checkout. After a good while attempting to reproduce this problem (and failing to do so), I realized that the user was using the site in a way that had originally never crossed my mind. Worst of all, the user’s actions were very logical. The site was designed so that there was no way to get to the final checkout stage unless you had items in your cart and you had entered all of your billing and shipping data. But once this was done, you were taken to a page that displayed your cart and a form to enter a payment method and checkout. I surmised that the user arrived here, decided they were not yet ready to purchase and bookmarked this page to return later. Like I said, a very logical action. However, upon return their session-based shopping cart and user data was gone, resulting in an error message.
Just one example of how quality assurance in web means being prepared for every user.
Note: I just wrote this article without mentioning the fact that we also must deal with things such as screen resolution, operating system, web browser, browser settings, plugins installed, etc. Yes, there are still people out there using Windows 98 and IE6 with cookies disabled and flash not installed. And, we’ve got to be ready for it.