Skip to main content

SOAP testing the Enterprisey way

Today I found an article about SOA testing at Wells Fargo.

What a mess.

It's hard to read, but make your way to the end of the article where it describes Wells Fargo's SOA testing tools setup. Here's my un-Enterprisey answer:

Instead of SOAPScope, use soapui. Unlike proprietary SOAPScope, soapui is free and open-source, and as Mike Kelly pointed out, soapui works where SOAPScope fails. soapui is fantastic for exploring WSDLs, but I wouldn't necessarily use it as a test driver.

I use Ruby's soap4r and http-access2 libraries to drive tests. And, instead of Mercury TestDirector ($$$$$$$$$$$), I find that a combination of Ruby's test/unit features and a nice source-code repository give me all of the features that Wells Fargo gets from TestDirector. Super reliable, super simple, super understandable, low overhead and zero cost.

Then they mention "Integra Enterprise from Solstice Software" which seems to parse log files and handle HTTPS (no big deal)-- but it also talks to MQ. (no mention of whether this was IBM MQSeries, Microsoft MSMQ, ActiveMQ, or some other message-queue spec. I guess we can assume MQSeries...)

Now this is worrisome. There is no obvious MQSeries library for Ruby (although Python has one, and the MQSeries interface seems to be pretty well documented), but I've worked with both MQSeries and MSMQ in a number of systems, and the fact that the test environment demands an MQ driver at all sets off all sorts of warning bells in my mind.

If you have a SOAP interface, you should be sending text (XML) over HTTP. If your test tool has to talk MQ, then you are testing at the wrong place. If I had a system with MQ involved, I'd stipulate that the UI/acceptance/system/performance tests are adequate proof that MQ is really working. Having your integration/SOAP tool talk MQ is a massive waste of resources.

Finally, they have "Data Management". They built some sort of db-based repository from which the test driver extracts test data at runtime. The specs are a little odd, but they do mention ODBC. There seems to be some sort of data-writer UI and a data-grabber from the test driver.

My favorite source of test data is to simply generate it within the script. Here' s a made-up brain-dead example to create 1000 users using a SOAP api function "createUser" itself:

1.upto 1000 do |num|
@soap.createUser({"UserNumber" => num},
{"UserName" => "Chris"})

(For a much more interesting discussion of generating test data from within the script, see my article "Old School Meets New Wave" in the June issue of Better Software magazine.)

Dragging test data out of a db with ODBC has got to be an expensive operation. If I absolutely positively have to keep test data outside the test script itself, I'd use a delimited file or possibly a spreadsheet. ODBC is overkill.

Here is the conclusion of the paper:

No one tool can satisfy all of the application, environment, and testing requirements. The only option is to implement a tightly coupled suite of tools to address the requirements.

So we all know that tight coupling is bad, right? I'd suggest that serious testers be in a position to alter and augment their test tools at the drop of a hat. That's why I like Ruby for so much of my SOAP testing. Accommodating change with a full-featured scripting language is not too hard.

And if Ruby were to somehow fail, I could (plan A) use my existing scripts to drive soapui without too much difficulty. Or I could (plan B) port them to Java or C# without too much fuss. They would (plan C) certainly work from Perl with some improvements to the SOAP::Lite module.

In short:
soapui for exploring WSDLs;
Ruby for test driving, test management, and test reporting;
sane and rational insertion points for test interfaces on the system;
and delimited files (if you need 'em) for test data--

will take you a long, long, long way down the SOA testing road.


Popular posts from this blog

Reviewing "Context Driven Approach to Automation in Testing"

I recently had occasion to read the "Context Driven Approach to Automation in Testing". As a professional software tester with extensive experience in test automation at the user interface (both UI and API) for the last decade or more for organizations such as Thoughtworks, Wikipedia, Salesforce, and others, I found it a nostalgic mixture of FUD (Fear, Uncertainty, Doubt), propaganda, ignorance and obfuscation. 

It was weirdly nostalgic for me: take away the obfuscatory modern propaganda terminology and it could be an artifact directly out of the test automation landscape circa 1998 when vendors, in the absence of any competition, foisted broken tools like WinRunner and SilkTest on gullible customers, when Open Source was exotic, when the World Wide Web was novel. Times have changed since 1998, but the CDT approach to test automation has not changed with it. I'd like to point out the deficiencies in this document as a warning to people who might be tempted to take it se…

Watir is What You Use Instead When Local Conditions Make Automated Browser Testing Otherwise Difficult.

I spent last weekend in Toronto talking to Titus Fortner, Jeff "Cheezy" Morgan, Bret Pettichord, and a number of other experts involved with the Watir project. There are a few things you should know:

The primary audience and target user group for Watir is people who use programming languages other than Ruby, and also people who do little or no programming at all. Let's say that again:

The most important audience for Watir is not Ruby programmers 
Let's talk about "local conditions":

it may be that the language in which you work does not support Selenium
I have been involved with Watir since the very beginning, but I started using modern Watir with the Wikimedia Foundation to test Wikipedia software. The main language of Wikipedia is PHP, in which Selenium is not fully supported, and in which automated testing in general is difficult. Watir/Ruby was a great choice to do browser testing.  At the time we started the project, there were no selenium bindings for …

Open letter to the Association for Software Testing

To the Association for Software Testing:

Considering the discussion in the software testing community with regard to my blog post "Test is a Ghetto", I ask the Board of the AST  to release a statement regarding the relationship of the AST with Keith Klain and Per Scholas, particularly in regard to the lawsuit for fraud filed by Doran Jones (PDF download link) .

The AST has a Code of Ethics  and I also ask the AST Board to release a public statement on whether the AST would consider creating an Ethics Committee similar to, or as a part of the recently created Committee on Standards and Professional Practices.

The yearly election for the Board of the AST happens in just a few weeks, and I hope that the candidates for the Board and the voting members of the Association for Software Testing will consider these requests with the gravity they deserve.