views:

254

answers:

7

As a test engineer, I often engage in exploratory testing. When I encounter a bug, it is not always immediately clear which steps led to the problem. So, obviously, I have to find the required steps to reproduce the problem. Depending on the situation, this can take a large amount of time.

What would be really helpful is a logging tool that keeps track of mouse and keyboard actions and possibly also stores the properties of components that have been clicked (the AUT is written in Java).

I could simply not find a suitable tool, but maybe my search approach is erroneous.

Could anyone point me to the right direction?

+3  A: 

This question lists tools that can be used test web applications. Some of the answers may be useful.

One for example is Selenium - a mozilla plugin that records your actions and can be replayed later.

Vivek Kodira
The application under test is not a web application, but rather a standalone Java app.
Ced
+2  A: 

Log4J is an apache logging tool for Java with many options for outputting logs. The nice thing about it is that you can insert as many log messages in the code and switch them on and off based on a logging level as you see fit. So for instance, you have debug messages and info messages. if you insert some debug messages and some info messages in your code then you set the logging level to debug, then you find all debug and info messages are logged.

If you set the logging level to info then only info messages are logged. You have other levels too.

EDIT: I re-read the question and realized that I did not answer correctly...sorry. But, you could put logging statements into the actions in the Java code and accomplish the same thing that you want. It does require a recompile though.

Vincent Ramdhanie
Thanks for your answer. Actually you are pointing to an interesting idea, maybe I could get the developers to provide some form of TEST logging level that logs all user actions?
Ced
I think scaffolding in the application is always a good thing, and Log4J would be invaluable.
David Robbins
+2  A: 
anjanb
Thanks for the answer, but I was looking for a constant observation software that just runs in the background, non-intrusively.
Ced
+1  A: 

You may want to check out BB Test Assistant. I saw a very early version of this and was impressed. I've also heard good things from people who have used it since then.

Andy Tinkham
+1  A: 

In addition to @anjanb suggestion about screen capture, you can run your program under a debugger that records its execution and allows you to step back through the trace.

Omnicore CodeGuide has pretty good implementation of the concept (though you need to postprocess your bytecode). It is a commercial software but it's reasonably priced. Not sure if it's under active development though.

Another (free) product is the Omniscient Debugger which I tested a few years back and found to be inferior to GC (used too much memory, unacceptable slowdowns). Still I see on their webpage that they have made some progress so you might want to check it out.

ddimitrov
Thanks for your answer, I'll check out your suggestions. Though this goes more into the direction of debugging rather than testing.
Ced
A: 

There's also Session Tester: http://sessiontester.openqa.org/

Session Tester is an exploratory testing tool for managing and recording Session-Based Testing. Session Tester has a timer so you can keep your test sessions at the desired length, and it provides an easy way to record session notes. Notes are stored in an XML format that can be converted to HTML, or be transformed into whatever form you wish.

Ced
+1  A: 

Check out ReplayDIRECTOR: http://replaysolutions.com/ Very useful for exploratory testing, as it records all the interactions of your Java app with its surrounding environment (user input, system calls, DB responses), and allows later replay of the recorded session, with the application actually running and executing the same path through the code. The recorded inputs will be fed to the application exactly as during the recording.

Interesting tool, thanks for the hint.
Ced