SilkPilot is a tool to test distributed application components. The maker of SilkPilot is Segue, a provider of testing tools for the enterprise. Their family of Silk products includes other testing tools for various areas of Web, Java and distributed development.
To test the functionality, I ran version 1.2.1 Professional. It utilizes a nonbundled ORB to provide the CORBA 2.2 distributed environment that's required. VisiBroker 3.4 (or higher) and OrbixWeb 3.2 (or higher) are supported by the product. ORBacus 3.1.3 (or higher) and BEA's WebLogic Enterprise are also supported, but it seems to be incomplete in certain places. SilkPilot is a Java 2 JFC application that's targeted toward Java 2, although with certain modifications it's possible to use it to script JDK1.x-based clients. It runs on Windows 95/98/NT, Solaris, HP and different UNIX operating systems.
SilkPilot is a well-done implementation of this simple idea: the way to test distributed objects is to call them in a distributed fashion and to save this interaction for later repeatability.
The operation of SilkPilot is as follows: it fills the detailed distributed object information for its UI from an IR (InterFace Repository, IFR in the SilkPilot documentation). The user then prepares test scenarios using the UI, and the resulting test objects ("scripts") are saved and can be used independently from the SilkPilot environment for (regression) testing. The ability to save "scripts" is the difference between the Standard and the Professional versions, making the former an expensive distributed "live" object browser and tester.
SilkPilot requires an IR to query detailed information on objects accessed, but it doesn't require access to IDL files. For every session only one IR can be open, but this isn't a major limitation as one can have sessions sequentially. If the vendor-supplied IR isn't available (or isn't compliant with the current CORBA standard, as I found is the case with Orbix), a "local" IR supplied with SilkPilot can be utilized. In this case the IDL files are required and need to be loaded into the "local" IR.
SilkPilot installed on my Windows NT 4.0 (SP5) machine without any problems, although to evaluate it I had to apply for a "node-locked" install key, required for permanent installations, which I found tedious. I would have preferred a readily running evaluation version, which doesn't have this restriction. During install it found the JDK but not the VisiBroker install on my machine.
The documentation included is detailed and provides hands-on examples on functionality. Context-sensitive help is also provided, using the same HTML documentation.
To demonstrate the available functionality, I prepared and loaded everybody's favorite Bank example, supplied with VisiBroker, into SilkPilot. After opening the IR and loading the BankManager object, the main screen looked like Figure 1.
The top left window lists all interfaces available in the currently opened IR. Using the information from the IR, objects can be created using the built-in "Data Composition" window (not shown) or opened using IOR or ORB specific methods, as shown Figure 2.
Methods can be tested interactively against the objects opened. The interface uses tabs nicely and also uses editable property sheets for displaying and editing various data elements. When the user decides that a method invocation is to be added to the current set, the invocation can be saved using "Script" (available only in the Professional Edition).
After collecting all testing step(s) desired, the results can be saved into a directory. That directory will contain all files necessary to compile and run the testing steps prepared from the UI using command line.
In my case the directory contained the following files:
Client.java generated testing code
Client.idl -- snapshot of IDL
[email protected]_.ior IOR saved
compile.bat compile tests
run.bat run tests
silkputil.jar helper classes
The result of compiling and executing using the run.bat file is text output:
name = gliptak
result = IDL:Bank/Account:1.0[<0>]@localhost
The compile/run scripts generated are OS dependent, containing Windows-specific scripting instructions and scripts generated on a Windows system that won't run on UNIX systems and vice versa. The Java file generated can be compiled and run on other host OSs (but the user needs to create their own scripts to do so). I think the product would benefit if allowed to run the generated script(s) (configuration?) on a different host system.
There are advanced features for preparing more complex test cases. Exceptions and all possible CORBA data types (including primitive and user-defined types) are supported. The UI is well integrated and drag-and-drop of simple and complex data types is supported. However, I found it limiting to be unable to transfer data between the host OS and Swing using the clipboard.
As indicated above, SilkPilot is oriented toward the module-level testing of CORBA distributed objects; considering the tie-ins into CORBA, it may not be a tool your average tester can use to maintain test scripts.
Segue provides an impressive list of customers and partners on their site and, based on my brief evaluation, this is no accident. Currently, SilkPilot is a unique product on the marketplace, and it's worth a closer look if you're in need of a component testing tool.
Gabor Liptak is an independent consultant with 10+ years
of industry experience. He is currently an architect of a
Java e-commerce project.
View his Web Page at: gliptak.homepage.com/.