I like REPLs (read execute print loops). In my first Java QA job, we were testing a Java API for cash registers, a world that didn't have a whole lot of tooling at the time. I had written a bunch of tests as classes implementing an interface with some kind of "doTest" method. And I discovered that with just a few extra lines of code, I could read a line from stdin, parse the name of one of the test classes followed by optional args, make an instance of the test class, call its doTest(...), and print. And this was a great way to play with the library we were testing. And it was scriptable. :-) This was definitely my favorite thing from that job. I even gave it something like global variables, using a hash table in which values could be linked to names using a SetValue "test". And then the names could be used as arguments on subsequent lines. Later we started using JACL (A Java implementation of the Tcl scripting language). JACL code could reach into Java ...