Consider the problem of tracking user activity while the user is working on a Web application. For example, keeping track of which hyperlinks the user clicks on, how long the user spends on various Web pages, and so on. This is a fairly tough problem — there are entire companies who do nothing but develop and sell this service. Before I talk about some of the ways to track user activity, I want to address the question of whether this is software testing or not. In my opinion, the answer is, "it depends." Software testing usually means the process of submitting input to a system, grabbing the response or new state, and determining a pass or fail result using an expected value of some sort. Tracking user activity in a Web application normally does not fit this description. However, if we expand our view of what software testing is to more of a software quality concept, then tracking user activity is often a measure of quality — if a user skips over important links (such as advertising perhaps), then you have an indication of low quality. And yes, there are "official" definitions of software testing, quality assurance, and so forth, from organizations such as the IEEE but (perhaps unfortunately) the majority of practicing engineers I know rely more on informal or intuitive definitions. OK, so suppose you want to actually track user activity, how do you do it? Well, there are several problems. First, how can you identify who the user is? Second, how can you determine what activity the user has taken? Third, how can you save this user-activity information?