This is a very lightweight and simple comparison to the methods and ideas in a document called “Simplifying Script Maintenance” written by the purveyors of an QA Automation tool called QEngine. QEngine uses a process of recording and playback, leveraging established and tried language technologies like Jython, Java Extension to Python.
Many of the examples for comparative purposes have been written (below) as SenseTalk examples. If you are assessing scripting alternatives and options you may want to take a close look at how SenseTalk works, and how the calling mechanisms work in Jython and QEngine deciding for yourself which is simpler and more maintainable.
You can find all the pdfs related to QEngine and leveraging it with best practices and methodologies at
as well as the Qengine at
You will likely find information about SenseTalk at
SenseTalk is virtually used exclusively in a low end and entry level enterprise automation toolset called Eggplant (EP). The line of products includes EP Starter, EP Functional Tester, EP Load Tester and RiTA from Redstone Software. Eggplant is also used for even complex unique situations where introspective tools do not provide end user experience with a guaranteed delivery of product unaltered by traditional code injection testing models. As security, contract and delivery pressures mount in the software life cycle, guaranteed tested deliverables are becoming the norm and expected. Depending on where you are in the maturation model, you may be out of luck unless you can either manually test or automate test the actual product that is going to your customers.
Now here are some SenseTalk examples, you can get the Jython scripts from the aforementioned QEngine paper.
Instead of dealing with Java or Jython for writing to files…
set filePath to "/tmp/JackoV.txt" -- convenience variable try to delete file filePath -- trap errors without handling if a file filePath is not around. put "One Two Three, You and Me, ABC, 123" after file filePath
Here you have a simple one liner, instead of some really convoluted way of solving a problem it is very straight forward. If you want to append, prepends, insert or remove elements in files (configuration or otherwise), its as simple as treating the file as if it were a memory/variable container. For instance…
put "Jacko likes monkeys and little toys" before file filePath put word 12 of file "/tmp/JackoV.txt" --> ABC,
Now for the equivalent application launch, navigate to a field, enter data in the field.
Launch IE6 -- could be just about any application/tool Set URLField, "http://www.Google.com", return -- use field image collections as reference Set SearchField, "Web Functional Testing", return -- most browsers accept return for url field changes
There is also plenty coverage of collections, list in particular, which are sorted with some fairly simple bubble sorting routines. SenseTalk insulates you the user from these details and maps the language to internal routine that do all the work for you. Sorting ascending and descending by item, word, line, or char type is as simple as…
get "abcdefghijklmnopqrstuvwxyz0123456789" put it sort the chars of it descending put it get each char of it -- split it by chars put it sort the items of it -- ascending by default put it join it with return -- make each char a line put it sort the lines of it descending put it -- z thru 0 split it by return join it with "" sort the chars of it put it -- now in proper order :)
Within SenseTalk, and thus the Eggplant host application there is the concept of XModules which open a developer mind’s eye to possibilities and opportunities to connect the EP/ST system to any other customer or standard/open source project and tools. Your imagination is the only thing that need be applied