Product review: LISA iTKO 4 brings high quality to Web service testing QA

Virtualization feature simulates interaction with Web services that don't yet exist 

If you believe the documentation, the white papers, and the news releases, iTKO's recently released LISA 4 is an SOA testing tool. That descriptor, however, is modesty riding on the back of the still trendy acronym "SOA" because LISA goes well beyond testing what are typically understood to be SOA components: Under one roof, it houses the abilities to test Web and Java applications, the ESB (enterprise service bus), JMS (Java Message Service) systems, EJBs, databases, combinations of the above, and -- oh yes -- Web services.

[Check out Rick Grehan's previous roundup of Web service testing tools: "Clean up your SOAP-based Web services."]

The LISA engineers have peered through the acronym-laced fog of "SOA" and have seen that there is no typical SOA application. Any Web service can be a front door to a galaxy of technologies. LISA subscribes to the notion that adequately testing an SOA application requires examining the application from end to end. One cannot choose where bugs hatch.

The best addition to this version of LISA is its Web service virtualization feature, which allows QA engineers to quickly create simulated Web services for testing the Web service clients. From a technical perspective, LISA sits at the top of its class as a Web-services testing tool. Its only real drawbacks are its sometimes confusing user interface and its weak documentation.

The basics
LISA is emphatically a Java tool. Its tests can reach from the shallows of stand-alone Swing applications to the depths of multitier J2EE systems. Although you could use LISA to test, say, an ASP.Net application, LISA lacks the ability to dig into .Net components with the same efficiency as it burrows into Java. LISA's home is the JVM and application servers such as JBoss, WebSphere, and Tomcat, not IIS.

LISA is also emphatically a tool for QA engineers. Test cases are constructed in LISA's graphical UI. Only in complex test circumstances must you resort to actually writing code. The encyclopedic knowledge needed to communicate with a SOAP-based Web service, execute direct JDBC (Java Database Connectivity) calls against a database, crawl a Web application's DOM tree, ferret out an EJB's methods, and so on are baked into LISA's UI.

Reading LISA's repertoire of testable Java technologies, one sees that the tool is not limited to white-box testing. Although you can use LISA to build tests that simply exchange HTML requests and responses with a Web site, if that Web site carries active content -- a Java applet, say -- LISA can also dig into that applet and expose its individual controls and methods to your test steps. So you can create tests that call directly into the applet's methods, even as that applet executes within the Web page. This is an aspect of LISA's ability to operate at the DOM level when dealing with Web pages. And this ability allows LISA tests to interact directly not only with applets, but also JavaScript (including AJAX), Flash Flex, and even ActiveX controls.

But it doesn't stop there. With LISA's Pathfinder, you can instrument target application servers so that when test cases execute against components on that server, Pathfinder will track the execution flows and report the results back to the LISA UI. Pathfinder uses -- among other things -- EJB3 monitoring points and JDBC driver pass-throughs so that LISA can actually display which components within the application server were executed, and by whom. Pathfinder will trace calls across servlets, Web pages, and EJBs, then display its results in call tree, as well as provide pie charts showing the relative amount of time taken by each component within the test transaction.

Beyond the basics
To all of these current faculties, LISA 4 adds the Virtual Server Environment. It might be more correctly called LISA's virtual Web services feature, because it allows QA engineers to build tests for Web services that either do not exist or are unavailable. LISA works this useful deception through varying levels of simulating Web service behavior.

The simplest form of virtual server is what LISA refers to as a "fake" service. Point LISA to a WSDL, and LISA will examine its Web methods and build behind-the-scenes Java code that mimics that Web service in LISA's integrated Tomcat Web server. The explorer window below the LISA IDE shows the Java class files created to furnish the plumbing needed to host the virtualized service. (See screen image.) Any SOAP request sent to a fake service will receive response data that is more or less random (though it does adhere to the data types defined in the WSDL).

Next up the ladder is a mock service, which is more or less a fake service to which you have added responses drawn either from a database or an Excel spreadsheet.

The pinnacle, however, is a virtualized service. You create a virtual service by starting a special LISA test step that inserts what amounts to a proxy between a Web service client and server. Then you exercise the target Web service, and LISA watches the exchange of SOAP requests and responses. From the traffic, LISA creates a surprisingly realistic simulation for the Web service. Future testing can proceed without the actual Web service, with the virtualized service filling its role.

Powerful tracing
The variety of geographies that LISA's testing covers is remarkable. LISA's more advanced capabilities are limited to the Java world, but within that world there's hardly a nook or cranny that LISA can't explore. Equally remarkable is how easily LISA's tests can cross layer boundaries in multitier applications. Pathfinder does this so well that developers might find themselves borrowing LISA from the QA engineers to use it for debugging.

If LISA has a weakness, it is in the documentation. Some of the documents provided with the version I tested were stamped with earlier version numbers. Even after digging through both the user guide and reference guide, I am not sure that I ever grasped the technique for creating server-side test cases. While the user guide does have step-by-step instructions for creating test cases and test steps, the instructions that described LISA's new virtual server features were confusing. Hopefully, this will be cleared up in the near future; LISA is an excellent tool, but it needs documentation to unlock that excellence.

InfoWorld Scorecard
Portability (20.0%)
Ease of use (20.0%)
Value (10.0%)
Documentation (10.0%)
Extensibility (20.0%)
Features (20.0%)
Overall Score (100%)
iTKO LISA 4.0.3 9.0 7.0 9.0 7.0 9.0 8.0 8.2