Looking Past "The Project" With Open Source Tools
Some readers may know the SAFSDEV project was not always called "SAFSDEV". The original effort, beginning way back in 1998 using Rational Software, was later affectionately known as "The Data-Driven Engine"; or more problematically, "The DDE".
The SAFSDEV project, now on SourceForge, contains shared, public implementations of keyword-driven automation architectures like those advocated for many years. As is rampantly commonplace among our industry conventions, this type of automation methodology has been blessed with several different names: Data-Driven, Keyword-Driven, Action-Based, etc. Even our own documentation has used each of these different terms at different times.
As I mentioned, the first "SAFS engine" was implemented for what is now IBM Rational Robot. That is still considered to be our most full-featured framework, and the reference implementation. A complimentary engine supporting IBM Rational XDE Tester has also been developed and released. Additional work is currently underway to support standalone use of the XDE Tester engine, as well as future engines based on open-source technologies like Abbot, JFCUnit, or others we deem desirable and doable.
An engine has also been developed for Mercury Interactive WinRunner. It was originally translated by John Crunk, but John is now stepping into a new position using the Rational engine. A team in India, sponsored by Novell, has stepped forward to take up the WinRunner effort. This is a testament to one of the benefits provided by open-source solutions. The WinRunner engine will grow and remain publicly available through the SAFSDEV project.
Since 1999, I have often been asked the How? and Why? concerning the existence
of the SAFSDEV project. I hope to answer some of those curious and critical
questions here.
In addition, I want to make the reader think beyond "what is needed right
now"; and to recognize that "what is needed right now" is often
indicative of issues we will continue to encounter in future endeavors. Solve
these issues once using broad-based solutions, and we solve them for all future
encounters.