Need automation strategy advice
I have to automate the testing of a plugin framework. This framework allows custom components and code to interact with our client desktop. The plugin framework has hooks for catching events, permissions are exposed, data in the current record are exposed. In a future release, the plugin framework will allow the plugins to take more control of the desktop app. The plugins will be able to load records, force logout, initiate, save/delete/close commands, run queries against the DB, etc.
The client is written in C# for the .NET 3.5 framework. It uses SOAP to communicate with the server.
The functionality is split about 50/50 between visual (controls, manipulating data in the current record) and non-visual (events, current context data).
We currently have a license in house for Compuware TestPartner. I am not a huge fan of this tool, but we do have a license for it and the QA Automation team is using this tool to test the client.
We also have a .NET 3.5 API assembly that uses SOAP to communicate with the server. I figured I could use this for some setup and verification. This API is not able to interact with the client.
Re: Need automation strategy advice
It seems like you might want to test this from both the "inside" and the "outside". That is, on the inside, you might want to write a plugin that interacts with the plugin framework's API to see that in fact you can intercept events, access the exposed data, and so forth.
From the outside, you could automate interacting with the application from a user's perspective, performing user tasks such as installing the plugin and interacting with the host application in ways that cause the plugin to be called.
If you automate tasks from the outside while your custom plugin is installed on the inside, you could coordinate the two parts of the interaction to see that user actions are producing the expected internal events, and internally generated responses or actions are visible to the user.
Doug Simons, Principal Developer
TestPlant, makers of eggPlant, the Cross-Platform GUI Testing Tool