Muffinman

The Muffinman? The Muffinman!

Frequently Asked Questions

So, What is Muffinman?
Muffinman is a tool to allow automated testing of Java Swing applications. Muffinman gives users (typically someone testing another piece of software) a quick and easy way to have full create and run automated scripts on their application. One way to view the tool is as an add-on to your application which gives you an easy to use framework to build and run test scripts against your application.
Exactly what sort of features Does Muffinman give me as a tester?

Muffinman allows you to Record, Edit, and Run automated scripts.

Recording is the process of you performing actions on the application you wish to test. These actions are then translated into a simple scripting language specific to Muffinman. After recording, you can edit your script to add more actions, variables, comments, etc. Once you are happy with your script, you can run it through the Muffinman interface which will cause the actions in the script to be played back against the applications interface just as if a human were to actually perform them.

Additionally, As you run your scripts, Muffinman will show overall results for the scripts as they complete execution. In addition to a high level pass/fail for a script, testers are able to generate line by line reports showing the results for each action in the script and whether the action passed or failed, typically with some details as to why it may have failed if it did. These reports are generated in HTML format.

How Does it Work?
To get access to all of the interface components in an application, we actually make slight modifications to some of the base component classes of Java. The result is that Java effectively uses our modified classes in place of the normal base classes. So, when using Muffinman, your application is actually using a slightly different base class for its components which is effectively identical to the normal one aside from our small additions. These modifications are just small calls to our code which enable these components to register themselves with Muffinman as they are used.
You actually modify the Core Java classes? That sounds a little weird and unsafe.
We realize this might come off as a somewhat strange path to take. However, the modifications themselves are small and do not jeopardize the application being tested. We do not modify your code, and we are not out to get you. This is simply a cool and effective way for us to get access to the components of your application solely for the purpose of running the scripts you create. Please feel free to contact us with any issues or concerns regarding Muffinman. You can do so at muffinman@ambitiousapathy.com
What did you use to build Muffinman?
Muffinman is written in Java. We use Eclipse as our IDE, Subversion with Subclipse for source control, and Fogbugz for defect tracking and feature planning.