Home > Computers & Technology > Computers & Technology (Other)
Created on: August 29, 2009
A good product (software, appliance or anything else) should perform the correct action in response to a valid, expected input and should gracefully handle any unexpected input or error. Testing tries to ensure that this is happening (or rather that the opposite does not happen), before the product is actually shipped. However, as input often comes from a human user, what are the difficulties in simulating real user activity?
The main difficulty in simulating real user activity is actually getting it right. Each human user is unique and thus has his or her own way of using the system. The good news is that you don't actually need to simulate everything. What you need instead is to make sure that all correct inputs result in correct and expected behavior and that all other inputs are gracefully handled (with an error message and recovery of the previous state for instance and certainly not with a crash or "out of order" state). Alternatively, some techniques exist for creating user "personas" (type of users) and testing for their specific patterns of activity.
Even if you clearly decided which user inputs/activities you want to test for, the difficulty might be in actually simulating these inputs or activities for test purpose. Of course you can always become the "test user" and manually perform the actions, but this is a very expensive option. Not to mention that you might not really want to do it each time when you release a new version of your product! One option here is to beta-test. Beta-testing means that you release your product prior to its actual shipping to receive feedback from real users. While this is certainly helping a lot, there are still several issues: first, you might not want to use beta-testing for testing all user input as it is rather time consuming and expensive; second, beta-testing does not ensure a systematic testing of all inputs that you decided are important - it works rather well only if you have enough users for a long-enough period of time; third, it is expensive to repeat for a new version of your product.
So, if you decided what user activities you want to test for, and you are not considering beta-testing or manual testing for everything, what else remains? The answer is automated testing. However, in order to do this, you have to have a very clearly separated architecture of your system. The interface (the part that actually prompts the user for input and retrieves it) and the logic (the part that does the job in answer to some input) are best separated so that you can test them each on its own. This way you can simulate user activity by providing inputs to the logic part from a test environment or application rather than directly through the interface. Otherwise testing the interface is always a tricky thing as you might need to basically simulate first the complete run of your application together with its environment, which is a daunting task indeed!
Learn more about this author, Diana Coman.
Click here to send this author comments or questions.
Below are the top articles rated and ranked by Helium members on:
What the difficulties are in simulating real user activity
Helium Debate
Cast your vote!
Should consumers or OEMs (manufacturers) be responsible for paying e-waste fees?
Click for your side.
Featured Partner
New England Coalition for Sustainable Population (NECSP)
New England Coalition for Sustainable Population's (NECSP) mission is to raise awareness in New England of regional, national and global population and sustainability issues, and to strengthen regional action on these issues.more