XML
Apr 11, 2008
The Reviews Are In
They like me, they really like me.
Harry Wood attended my talk and posted a blog entry about his experience at http://www.harrywood.co.uk/blog/2008/04/11/unit-testing-soa-and-mule-talks
-Frank
Apr 07, 2008
End To End Testing
An example of using soapUI, TestGen4Web and PushToTest to automate a test of a Web service and Web application functional test.

PushToTest orchestrates a Functional test by defining the operating parameters and use cases in a TestScenario document in XML format, as illustrated above.
The test identifies a PushToTest Data Production Library (DPL) that will be the exchange medium between the soapUI TestCase and the TestGen4Web recorded test. The soapUI TestCase reads the data value for the SOAP request from a Properties file in the soapUI project. The soapUI TestCase receives the SOAP response and saves the response parameter to the DPL.
The TestScenario instructs PushToTest to then run the recorded TestGen4Web unit test. The test uses the DPL data from the soapUI test to make an HTTP Get request to the Web host. That concludes the functional test.
I am happy to make the above example available for immediate free download at http://downloads.pushtotest.com/tm5/EndToEndTestExample.zip
You will need the latest TestMaker 5.2 (pre-alpha) version to operate the example. See the faq for instructions on getting the code.
Enjoy.
-Frank
Mar 28, 2008
Screencast of SOA Knowledge Kit Presentation
Now available, a screencast of my Webcast on the research, findings, and lessons-learned from the new SOA Knowledge Kit. The Kit compares building SOA applications using TIBCO, IBM, BEA, and Oracle.
Over the past year PushToTest observed a trend among the 160,000 people in our open-source community: Software developers, QA testers, and IT managers are looking for a better way to develop, orchestrate, deploy, and manage services. The Composition Approach to Building Large-Scale SOA introduces a new service composition approach to building SOA services, explains composition, and provides a methodology and test kit to evaluate today's tools for developer productivity and ease of deployment/management.
Last week, TIBCO hosted me on a Webcast to talk about Service Virtualization, Service Composition, and the SOA Knowledge Kit. The Webcast is now available at:
http://media.tibco.com/video/tibco_031808/index.html
-Frank
Feb 04, 2008
New PushToTest Datasheet and Whitepaper
We are getting very close to the PushToTest 5.1 release - hopefully this week! New datasheet and white paper downloads are available to explain PushToTest and open-source test automation:
PushToTest White Paper: The Importance of Test Automation
Both are in Adobe Acrobat (PDF) format.
-Frank
Dec 13, 2007
WSDL tools finally getting smarter
While WSDL is often derided for being simply awful, it does provide developers with a standards-based programmatic way to know how to invoke services. The Java developer community is finally seeing some advancement in the tools to work with WSDL. For instance, it is possible to look at a WSDL document and compare it to the unit tests of the services. The comparison shows the amount of test coverage a developer has on the deployed services.
Some tools such as Eviware's soapUI 2.0 are delivering code coverage estimates while developers use the tool to build test suites. Other tools like BEA WebLogic Workshop 10.3 (now in preview release) are focusing on graphic utilities to work with WSDL.
Maybe these tools will extend SOAP-based Web service viability as a universal remoting capability for a little while longer. If it isn't SOAP and WSDL, then what is it? REST, XML-RPC, FastInfoset, what?
-Frank
Nov 19, 2007
Notes from our Test Automation Seminar
Last week PushToTest hosted the first of a new series of 2-Day Hands-On seminars on Test Automation. The event sold out and the room was packed with eager students. Some traveled from Michigan to the seminar in Silicon Valley, California.
Here are some of my notes from the seminar:
1) The students at the seminar were from a rich cross section of backgrounds and experiences. We had software architects, software developers, QA testers, database administrators, and project managers. This shows me that test automation is a multi-discipline effort. It is not enough anymore to throw testing over the wall to a bunch of testers and not worry about the results.
2) TestMaker is in better shape that I had thought. In the days that lead up to the seminar I was concerned that the usability in TestMaker would make the hands-on portions difficult to follow. I was happy to none of the students ran into any roadblocks that kept them from completed the workbook of tasks. (This is not to say that we can put off usability improvements in TestMaker. Usability is a big issue in my eyes.)
3) The students universally told me they are not finding commercial test automation tools that are appropriate for Web application, Service Oriented Architecture (SOA,) Ajax, Web service, and Web 2.0 testing. As a result they often have one tool for Web application testing and another tool for Ajax testing.
4) Many students liked the informal style of the presentations. They were looking to gain an understanding of testing in the 21st century and take home tactics and methodology they will use in their own environment.
5) Several of the students are working in SOA environments and were interested to learn about TestMaker integration with registry/repository products. See here for details
The next seminar events are in London, New York, and then back in Silicon Valley. For details check http://www.pushtotest.com/Docs/training/seminarform.
-Frank
Sep 20, 2007
Rails-style Service Development Environment
The Enunciate open-source project released version 1.4 this week. Enunciate is a development framework for Java developers wanting to build server-side application services. You write code, annotate it as a Web app, SOAP-based Web service, Ajax service, or REST/XML and Enunciate takes care of deployment and documentation.
Enunciate looks like a good package to build multiple service interfaces using a Rails-style development metaphore. One writes annotated Beans and the Enunciate package takes care of creating nice Web-based documentation for the service interfaces and it packages the services into a WAR file for convenient deployment to an application server. It works like Rails in that you are working mostly with annotations and the Enunciate compiler.
-Frank
Sep 04, 2007
AJAX, Web 2, and TestMaker
PushToTest TestMaker provides three ways to create a unit test that may be then run as a functional test, load and scalability test, and service monitor:
- Use TestGen4Web to record a Web application
- Use the Network Proxy Recorder to watch a browser interact with the host
- Write a unit test using one of the many supported languages
The TestGen4Web utility does not support Web 2.0 and AJAX very well. It does not model the operations in a JavaScript that may include making asynchronous calls to the back-end.
We recommend using TestMaker's scripting support to test AJAX applications. In TestMaker transform the TestGen4Web recorded file into a Jython script (use the Tools menu -> Import TestGen4Web) and change it to emit the HTTP calls to the target host that the JavaScript in your app is doing. Although you may need to learn Jython or one of the other support languages, you will not have to get a PHD degree.
We are investigating a way to use Selenium and HTMLUnit and Rhino to record a test, transform it into a TestMaker test agent script, and then run it in the TestMaker environment.
With our current workload it may be a few months before this is done. We would be happy if a company or individual would like to provide an engineer for 2-3 weeks and we could get this done right away.
-Frank
Aug 21, 2007
The State of Native XML Databases
Elliotte Harold put together a good summary of the state of native XML database technology here. His announcement of the information to the XQuery-talk email list elicited a big response. XQuery-talk is a list started by Jason Hunter of MarkLogic and is populated by the architects, developers, and consultants in the native XML database market. The list is a good place for users to post questions to get at comparisons of capabilities among the native XML database products.
I waded into the discussion with some thoughts of my own:
For a topic titled "The State of Native XML Databases" the conversation seems to be more about semantics. From my perspective the state of native XML databases is pretty poor. There is not that much uptake on native XML databases from enterprises, developers, and architects.
It seems to me that native XML databases would be in a much better state when the following happen:
1) The Implementations Provide The Full Benefits of The Data Model.
The XML data model is wonderfully rich and flexible. There is big divide that developers have to overcome when going from the XML data model to an XML database. It is not a given that XQuery is way to implement a database for the XML data model. When I was at the W3C Plenary 2 years ago there was plenty of energy in discussing alternatives to XQuery and XSLT. And I would prefer to write code today, not wait another 7 years for a standard like XQuery to emerge.
It seems to me that developer marketing from the native XML database vendors and open-source projects is mostly disingenuous when they position their products as a general-purpose database. In my experience most of the native XML database projects come to the XML data model from a different perspective and that impacts their implementation of the data model as an XML database. For instance, there is still argument on this list about the best way to create a collection with one perspective using XML Schema and others arguing for an language semantics approach. (By the way, neither work for me as a Java developer. I want to from object definitions and maybe Java annotations to a collection.)
As a developer I would prefer to know which native XML database is suited to my application. For instance, Ilya's application requires node-level locking and my design for the next generation of TestMaker requires roles-based securing at the XML document level. In the RDBMS marketplace I have many resources to show me which databases are appropriate for my applications. The native XML database marketing needs something similar.
2) The lack of thought leaders
Where are the Tim Bray's, the Adam Bosworth's, and Erik Meijer's, the Sam Ramji's for the native XML database space? I had great hope for Jason Hunter but even his star is taking a while to cross over from the Java to the native XML db space.
The native XML database space needs someone of reputation and standing in the Java and .NET developer community to stand-up and show some great and practical applications.
3) The lack of tools
I like some of the tools I have seen. The Progress tools set is nice. I would love to see native XML database support with a flexible binding system in NetBeans, in Visual Studio, Eclipse, IntelliJ.
4) The lack of a clubhouse
I want a place to meet up with all of you! JavaOne, JavaPolis, JAOO, and QCon are my place to meet up, share ideas, and exchange solutions in the Java space. I would love to have XMLOne once a year!
I spent 2005-6 inside Raining Data and know first hand what it is like to ask a quarter-by-quarter focused management team to invest in developer programs.
A lot of work is still needed to move the state of native XML databases to "excellent".
-Frank
Aug 16, 2007
TestMaker on TheServerSide.com
The Server Side ran our announcement of TestMaker 5 today at:
http://www.theserverside.com/news/thread.tss?thread_id=46598
We also issued a press release on the new product. Download the press release
If you are so inclined, please post a reply asking a question or telling of your experience using TestMaker. The more you post the more attention we get.
Thanks.
-Frank
Aug 13, 2007
TestMaker 5.0 Released!
The new TestMaker 5.0 is now available for immediate download! The new release is the full and complete TestMaker 5 product.
http://www.pushtotest.com/Downloads/registrationForm
-Frank
Aug 07, 2007
TestMaker Datasheet Now Available
I put together a 2-page sales sheet on TestMaker 5 to help our salespeople. The sales sheet gives the high-level benefits-orientated features found in TestMaker 5.0.
Download a 2-Page Datasheet on TestMaker, (1.9 Mbyte, Adobe Acrobat format.)
Thanks!
-Frank
Aug 02, 2007
TestMaker 5 Release Candidate 1 Now Available
The new release is the full and complete TestMaker 5 product. We will continue testing it for bugs and issues and take your bug reports. Depending on the testing results and your feedback we will either issue a second release candidate or declare this to be the TestMaker 5.0 release.
http://www.pushtotest.com/Docs/r5
-Frank
Aug 01, 2007
WADL Gathers Steam
Seems like WADL is gathering a little steam. The Web Application Description Language (WADL) is a definition language to describe the capabilities for REST.
http://go.techtarget.com/r/1852041/802809
-Frank
Jul 31, 2007
Screencasts for TestMaker 5 Now Available
![]() |
Screencast Introduction For TestMaker 4 Users | ![]() |
Screencast on Building Load Tests, Functional Tests, Service Monitors | ![]() |
Architectural Goals of TestMaker 5 |
Jul 19, 2007
Who Doesn't Get It?
My blog entry elicited a response from Jason at ZapThink. He asked – more or less - what he doesn't get? I also received a request to help parse part of the blog.
My blog shows that I'm bothered by two things: using the word Divorce when talking about SOA and Web Services and iTKO's skeptical position on why they give away Lisa Web Services.
Jason E's blog entry says: "Yes, [iTKO Lisa Web Services] can be useful, but we honestly believe that Web Services testing on its own will never deliver the quality levels required to achieve Trust in your SOA applications."
Perhaps I'm taking this the wrong way but I read that as... We will give you a partial solution for free and wait for you to fail because the real solution - the SOA one - costs $$$. There is a skepticism there that is wholly inappropriate for where we are in the growth of the IT industry. Imagine the developers, QA technicians, and IT managers in a business or organization that adopts both SOA and Web Services. How does offering a free Web Service testing utility solve their needs?
To Jason B.'s report, we shouldn't be using terms like Divorce because of the heavyweight emotional negative context it evokes. What CIO from divorced parents is going to think that Web Services + SOA is a good thing? We should be writing from the perspective of "All this new communication, new rapid integration, and new interoperability built with XML, Platforms, Applications, and Databases is yielding great benefits for our businesses and organizations." It doesn't matter if the approach is SOA or Web Services or some wonderous mix of both.
Jason B. raises a valid point to my previous blog entry. I should have not written that Jason does not get it because that criticizes Jason the person, instead of Jason's actions.
Finally, in my blog I wrote:
"SOA keeps the WS component idea, focuses on composite applications for business workflows, and loses discoverable service idea for statically brokered endpoints, governance for choreography, business issues, troubleshooting, and Quality Of Service (QOS.)"
and a reader asked the question:
"How did you intend to parse [that paragraph]? Did we "lose" governance for choreography? Or substitute governance for choreography? Or "focus on" governance for choreography..."
Let me put it this way…
SOA and Web Services both start with the idea of saving money and effort by reusing software components. SOA uses composite applications and master data management techniques to implement business processes and workflows. SOA is different from Web Services in that it does not require discoverable services at runtime, but instead implements a governance plan where statically brokered endpoints, choreographed components, and defined Quality of Service goals are stated.
And the most important point is… SOA and Web Services work well together.
-Frank
Jul 17, 2007
SOA Divorced From Web Services? I disagree.
A blog by Jason English at iTKO has me bothered. Jason praises an analyst report from ZapThink's Jason Bloomberg titled Divorcing SOA from Web Services. Neither iTKO nor ZapThink seem to get the vision behind SOA and Web services.
The IT industry has a long way to go to serve enterprises and organizations needing to well manage their efforts through information systems. Service Oriented Architecture (SOA) and Web Services (WS) are entirely appropriate to build information systems. The vision behind SOA and WS help us a lot and in different ways.
Here is a slide I have been presenting at various conferences for the past two years to explain the differences between the SOA vision and the WS vision.

The vision behind SOA and Web Services comes from enterprise and organization needs to save development effort and money by reusing software in the form of components.
The Web Services vision achieves reuse by building service components that autonomously discover at runtime other needed components needed to solve a business process. The SOA vision achieves reuse by aligning new software development projects to business goals through a governance plan. Both expect a registry of services will help avoid building the same software component twice.
In terms of architecture, SOA relies on composite applications and data services while Web Services relies on finely-grained, loosely coupled, discoverable services. A composite application is a piece of software that is able to talk multiple protocols to existing services to give you one view of either the customer or one view of the business process. For instance, you may have been in a situation where you've had to call an insurance company to try and find out two different things: the date they received your most recent payment and how to file a claim.
This example insurance company may have two systems - one system retrieves your most recent payment, but then the operator that you talk to might have to forward your call onto a different operator just to ask the question about filing a claim. With a composite application, you have a single piece of software that is able to speak the native protocol to the service to look-up your payment information. The composite application, typically on the same screen, can even speak the protocol of the claim center to place a claim directly.
As a customer, you are served better because you conclude your business with a single agent on a single phone call. And the insurance business saves money by serving you within that one phone call. Many companies PushToTest serves that have adopted SOA and Web Services find that composite applications are more easily built than trying to get the existing services to interoperate directly. These enterprises have a faster time to market advantage than their competitors.
Management techniques vary between SOA and Web Services. The SOA vision expects an enterprise to define a governance plan. Web services expect composite applications to register themselves with a dynamic repository of services to be dynamically discoverable at runtime. This is where SOA and Web Services diverge the most. Unfortunately, none of the information ontologists showed up to the Web Services party. There is no standard for categorizing composite applications or software components. That is a big challenge for any enterprise or organization to realize the vision of Web Services.
SOA and Web Services vary in an important way for message formats and protocols. The SOA vision says "whatever message format and protocol works is acceptable" whereas Web services mandates XML. This is an important point because it means that SOA may use Web Services.
What we have here is a success at communication! Communication between information systems has never been this good.
SOA and Web Services are useful visions to move us from the current XML, Platform, Application, and Database environments (I call this XPAD computing) into the future. IT has been wanting this kind of interoperability, reuse, and governance for decades, including in efforts like CORBA, OpenDoc, DCE, Client/Server, Web 1, Web 2.0, and Enterprise Web 2.0. Those were all efforts to be able to provide a component architecture where software could be reused to provide an enterprise with a faster time to market advantage and then lastly to provide an enterprise with a better view of the customer.
SOA keeps the WS component idea, focuses on composite applications for business workflows, and loses discoverable service idea for statically brokered endpoints, governance for choreography, business issues, troubleshooting, and Quality Of Service (QOS.)
It is just fine to me that sometimes enterprise architects and technology managers get the terminology of SOA and Web Services wrong. You won't see PushToTest talking about "divorce" in a family of technologies that helps the world become better.
-Frank Cohen
Jul 03, 2007
FastSOA talk at JavaPolis Available
The JavaPolis conference is a once-a-year event in Antwerp, Belgium where 3000+ Java developers meet to talk about the latest technology, patterns, and trends. I gave a talk on the FastSOA patterns. I talked about the scalability and performance problems Java developers encounter when they use the "domain model" of servlet, EJB, and relational database technology to build XML-oriented applications, including SOA and Web services.
JavaPolis video taped my talk and now host the presentation on the Parleys.com Web site.
http://www.bejug.org/confluenceBeJUG/display/PARLEYS/FastSOA?showComments=true
I was very happy to be at JavaPolis, but you may note after watching the video just how bad I was feeling after a night of partying. (It's all Chris' fault.) Wonderful and horrible at the same time! :-)
-Frank
TestMaker Beta 2 Now Available
I'm very happy to tell everyone that PushToTest TestMaker version 5 beta 2 is now available for download. The new beta is likely to be the last before we declare TestMaker 5 final and stable.
Beta 2 solves all of the bugs from Beta 1, includes the preliminary documentation, and includes the Java Runtime Environment 1.6.
Enjoy.
-Frank
Jun 21, 2007
TestMaker5 At EBIG
I gave the presentation at last night's eBIG user group meeting in Oakland, California. This is a Java user group and I felt very much at home. The group was very small (about 10 people) and they made up for size with the quality of their questions and attention. This was the first public demonstration of PushToTest TestMaker Version 5. TestMaker 5 got a very good reception from the group.
- They understood the power of being able to build a test on their development machines and giving it to a QA person to stage a load test.
- They liked the Data Production Library (DPL) system.
- Two of the attendees said they tried TestMaker 4 and gave up on it because of its complexity. Both said they will download TestMaker 5 and try again.
- They liked the idea of dynamic scripting support but were really wanting to implement their tests in Java.
And I took feedback and suggestions on how to further improve the feature set.
- Enhanced root-cause analysis using Glassbox, a utility that uses JMX to gather information from a running application to do root cause analysis. They strongly recommended integrating Glassbox into the Monitor system and results charts.
- Logging to a database, they want us to log directly into a database table and for us to publish the schema so they can write custom reports (using Jasper and others). They also suggested that we include the Derby DB in TestMaker. They also pointed me to DB4O.com.
- Better results analysis, two of the attendees were from large companies that have budgets for testing tools, so they compared TestMaker to Mercury LoadRunner. I heard comments like "The only thing I like about LoadRunner is its results analysis, you can slice and dice the data in so many ways." I told them about the Performance Comparison Utility and they said that would be very helpful.
- Agent-less monitoring, they asked why we would do CPU/Net/Memory monitoring with an agent versus just using an SNMP trap. They don't want to install agents for monitoring.
- TestNode option to run on JDK 1.5, they have run into problems using JAX-WS on JDK 1.6, specifically the XML parsing has incompatibilities. They would like an option to run a TestNode with JDK 1.5 and only operate Java or Jython tests in this mode. So no ScriptEngine support in exchange for running their existing unit tests written in Java on a TestNode.
I'll put the above items into http://bugs.pushtotest.com as enhancements.
-Frank



