I've been asked a few times what people can do with the iTest SDK. That's a great question and I thought others would be interested to hear about it.
First, there are lots of areas in iTest that we would like to make very extensible. We'd love to see all kinds of users and third parties extending iTest in various ways. But we know that if we're going to allow anything to be extended, we need to be extremely careful to do it in a way that we know we'll be able to support almost indefinitely. So while we have a LOT of internal interfaces that we use, we do not yet expose most of them in the SDK. For now, we've focused on just two areas that are the most important:
Applications SDK
As you probably know, when you use iTest, you are typically opening a bunch of "session" windows of various types: telnet, ssh, web, database, ixTraffic, ... Each of these is what we call an "application". It is a separate plugin that registers itself with iTest and provides a certain kind of session that can be automated. Typically each application presents its own user interface -- such as a terminal window for telnet and ssh, a web browser window for the web application, and so on. What makes these applications unique is that they are designed so that they allow a user to interact with them and when they do, they report into iTest about all of that activity. And they also allow iTest to drive them in place of a user -- so that when a test case runs, it may be asking the application to open a session and perform activity on it -- similar to how a user performed that activity.
Many of the iTest applications are generic. For example, you can talk to a wide variety of devices via telnet or ssh. And there are many web applications that can be driven through the web application. But some applications are very specific. There are a number of applications for driving specific traffic generators, for example. These have specialized user interfaces and functions for these kinds of devices. Most of these are constructed on top of the APIs that these devices support, but present a convenient user interface so that capture-replay is possible and so that the resulting test case contains very readable steps.
You might decide that it makes sense to create a new application that you would like to tie into this same framework. Or perhaps you already have an application and you'd like to add to it so that it can participate in the iTest automation framework. In that case, you'll want to use the SDK to do this. For example, you might want to build an application that controls lab equipment over as IEEE-488 bus -- saving users from having to write scripts to do this work. Instead, you provide a convenient user interface and tie it into iTest via the SDK. Or perhaps you already have a nice GUI application for interacting with your own traffic generator or other testing tool. You could augment it so that it can get integrated into iTest. (If you want, you can keep your current UI -- and use the SDK to connect it to iTest.)
To use the SDK, you will be writing a new Eclipse plug-in. You do this using Eclipse itself. And you can distribute your plugin directly to iTest users. You don't need to have Fanfare involved so that many users can start using your new application.
Reporting SDK
The reporting SDK allows users to do special things with the report information generated when iTest runs a test case. There are many different ways in which the SDK may be used. For example, you may want to tightly integrate this with your own test report database. Or you might want to tie this directly into your bug tracking system. Or maybe you want to send an email to someone if there is a failure. Your plugin to iTest can be installed in the GUI version of iTest and/or into the command-line tools that would be used in automated regression systems.
Your plugin will be notified when an execution is complete and will get a Java object that gets it access to all of the information you see in an iTest test report. You can decide what to do with it. The sky's the limit.
You don't have to ask for the SDK. If you have iTest, you have the SDK! And you may be happy to know that all of the code you'll be dealing with directly is open-source, right there inside the product. So you can debug right into the code that you call, and can see what has been happening when you are called.
You'll probably need some help getting started with the SDK. There are some samples and online docs around. But I encourage you to ask questions here on the forum so we can help. I should warn you that you'll probably want to have a reasonable level of experience in Java coding. Even better if you have some experience with building Eclipse plug-ins. It's not for everyone. But for those who need it, we hope it will be useful.
If you're disappointed about an area of iTest that you'd like to extend, but that isn't supported in the current SDKs, please reply and let us know. That will determine which areas we open up next.