| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>Test Automation Platform</h1> | |
| </p> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("TAP"); | |
| ?> | |
| <h2>Introduction</h2> | |
| <p>Test Automation Platform (TAP) is a proposed open-source project under the Eclipse Technology project. | |
| The TAP project will add new extensibility and components to Eclipse for constructing system test automation | |
| solutions. This includes the creation of a new Eclipse platform designed for headless test execution. The | |
| concept encourages seamless interoperability among many commercial, proprietary, and open-source test-related plug-ins. You | |
| are invited to comment on and/or join the project. Please send all feedback to | |
| the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.tap">eclipse.tap</a> newsgroup. | |
| <h2>Background</h2> | |
| <p>System test automation involves black-box testing of systems | |
| that include multiple devices or components that are being tested for | |
| interoperability, functionality, performance, stress, etc. System testing is used widely in networking, | |
| data centers, etc.</p> | |
| <p>Several components are required for a complete system test | |
| automation solution including test authoring, specialized testing components | |
| (such as network simulators, traffic generators, etc.), testbed inventory | |
| management, testbed reservations, physical testbed topology management, test information | |
| management, defect tracking, and many others. Some of these components may be "home-grown" while others may be | |
| provided by commercial vendors or available as open-source.</p> | |
| <p>Historically, interoperability between these components has | |
| depended on the tools coming from a single provider, has required customized | |
| "glue," or has required bilateral cooperation between each pairing of | |
| providers. None of these is ideal to | |
| foster an environment favoring innovation and "best of breed" components.</p> | |
| <p>There exists a lot of disparate expertise surrounding these | |
| various components and interfaces. We do | |
| not believe that any one individual, organization, or company has sufficient | |
| expertise to unilaterally define the best possible interfaces between these | |
| tools. Therefore, we would like to see a | |
| community develop where these experts can come together to collaborate on defining | |
| excellent interface definitions that collectively allow for complete solutions | |
| built from best-of-breed components. Even more than that, we believe that interface definitions are | |
| insufficient to foster a healthy ecosystem and therefore would like to see an | |
| open-source platform developed that allows each tool to be developed in | |
| isolation with confidence that it will interoperate properly with other | |
| components in a complete solution. Further, the open source component should include reference | |
| implementations of these components so that there is a basic working solution | |
| in place, allowing each component being added in to augment the value.</p> | |
| <p>Also, an important aspect of test automation is that it involves | |
| two distinct phases. In the first phase, | |
| a human is designing, developing, and troubleshooting automated tests. In the second phase, the resulting automated | |
| tests must be executed in a "lights-out" regression environment. | |
| This execution involves many of the same | |
| components and interoperability among them. | |
| So test automation tool interoperability involves both a | |
| human-user-interface component and "headless" interoperability as well.</p> | |
| <h2>Scope</h2> | |
| <p>The goal of this proposed project is to use Eclipse as a | |
| common foundation on which to build interoperability among otherwise disjoint | |
| components of a test automation solution. Using Eclipse's extensibility model and Java APIs, this project will | |
| define a variety of open interfaces between blocks of functionality that may | |
| need to interoperate. | |
| These interfaces | |
| are defined using a service model so that innovation is encouraged on both | |
| sides of the interface – meaning that once a service is defined, many service | |
| providers can be plugged in and, likewise, many different service consumers can | |
| take advantage of each service. The | |
| project will also create reference implementations of all of these components | |
| with basic functionality – while allowing commercial and other implementations | |
| to be plugged into these same extensibility points.</p> | |
| <p>Eclipse itself (or other compatible RCPs) provides the | |
| framework and user interface for operations that involve a human-user | |
| interface. Within the scope of this | |
| project is also the creation of a new "headless" runtime executable allowing | |
| suitable components to use these same interfaces when executing tests.<span | |
| style='mso-spacerun:yes'> This is a new Equinox-based runtime with no dependencies on any UI | |
| components nor on a workspace (i.e., the org.eclipse.core.resources | |
| plug-in). Command-line arguments | |
| are used to communicate the reason that the | |
| runtime is being invoked and to control the behavior. | |
| </p> | |
| <p>More specifically, the objectives for this project include:</p> | |
| <ul> | |
| <li>A new TAP feature that can be added into an | |
| Eclipse installation that acts as common middleware for other tools that may | |
| also be added into that same installation;</li> | |
| <li>Extension point declarations and related Java | |
| interface definitions for a variety of interfaces and/or services related to | |
| system test automation;</li> | |
| <li>Sufficient code to connect service providers to | |
| service consumers in an appropriate many-to-many arrangement, insulating | |
| service consumers from the complexity of “multiplexing”;</li> | |
| <li>Reference implementations with basic | |
| functionality of all services and service consumers for each interface so that | |
| each tool implementation can be done without requiring any other commercial or | |
| proprietary tool; and</li> | |
| <li>A new runtime platform based on Eclipse without | |
| a UI that is intended for performing test-related operations involving test | |
| automation tools built on top of these interfaces and extension points.</li> | |
| </ul> | |
| <h2>Description</h2> | |
| <p>While the scope of this project is quite wide – involving | |
| interoperability among many classes of different test-related tools, the | |
| initial focus will be on one or two of these interfaces. | |
| By showing that the model works between two | |
| different classes of tools, we hope to encourage more tool providers with | |
| expertise on other classes of test-related tools to contribute their expertise | |
| in defining additional interfaces.</p> | |
| <p>For the initial phase, we propose to define the interface | |
| between test authoring tools (i.e., those tools that are used for creating | |
| automated black-box system tests) and the specialized tools used for | |
| controlling and monitoring the various components in a physical testbed during | |
| testing. These tools used during manual | |
| testing (e.g., virtual terminal, web browser, traffic generator, etc.) are also | |
| needed during automated testing, so the service provided by the specialized | |
| tools are also used by a test execution engine running either during test | |
| development (within the GUI environment) or during an execution environment | |
| (headless).</p> | |
| <p>We also propose to define the interface between test | |
| execution tools (that may be specific to the type of test being executed) and | |
| other tools that are interested in post-processing the results of a test | |
| execution, such as test reporting tools that will publish the results into a | |
| centralized database.</p> | |
| <p>We have a working prototype today of these interfaces | |
| including reference service providers and service consumers implementations for | |
| each. If and when this project is | |
| approved into an incubation phase, we propose to contribute this code as a | |
| starting point.</p> | |
| <p>We foresee other interfaces coming along as well as other | |
| contributors with relevant expertise joining the project. | |
| Of particular interest is an interface | |
| between test execution and testbed reservation/topology tools which are | |
| essential to a complete solution. We also anticipate, for example, interfaces | |
| between test scheduling tools and heterogeneous test execution tools (and so on).</p> | |
| <p>We choose not to define a so-called "reference model" for | |
| these various tools and components as we believe that this will tend to limit | |
| the innovation that we would like to encourage. We prefer to focus on individual service | |
| and interfaces definitions that | |
| experts agree will facilitate interoperability and open the door to new ideas | |
| that exploit these same interfaces.</p> | |
| <p>We have a commercial product today that is built on top of a | |
| runtime version of Eclipse designed to run "headless" for executing tests. | |
| We anticipate that some of this expertise can | |
| be brought to bear on the goal of creating a suitable runtime platform for tool | |
| integration.</p> | |
| <h2>Organization</h2> | |
| <h3>Mentors</h3> | |
| <p>To be determined</p> | |
| <h3>Committers</h3> | |
| <p>The initial set of committers will be from Fanfare:</p> | |
| <ul> | |
| <li>Kingston Duffie <a href="mailto:kduffie@fanfaresoftware.com">kduffie@fanfaresoftware.com</a></li> | |
| <li>Adam Bovill</li> | |
| <li>Wei Dai</li> | |
| <li>Pawan Singh</li> | |
| </ul> | |
| <p>We welcome participation early in the process from other | |
| interested parties with relevant expertise.</p> | |
| <h3>Interested Parties</h3> | |
| <p>We have discussed this topic with a number of interested | |
| parties representing both vendors and customers. | |
| The following companies have expressed their intention of being an active | |
| part o this community: | |
| <ul> | |
| <li>Cisco – Contact: Bill Schongar <a href="mailto:bschonga@cisco.com">bschonga@cisco.com</a></li> | |
| <li>BT Operate – Contact: Steve Thomas <a href="mailto:steve.g.thomas@bt.com">steve.g.thomas@bt.com</a></li> | |
| <li>ProCurve Networking by HP – Contact: Vince Mendoza <a href="mailto:Vincent.mendoza@hp.com">vincent.mendoza@hp.com</a></li> | |
| <li>Agilent – Contact: Todd Law <a href="mailto:todd_law@agilent.com">todd_law@agilent.com</a></li> | |
| <li>Spirent Communications – Contact: Tom McBeath <a href="mailto:tom.mcbeath@spirent.com">tom.mcbeath@spirent.com</a></li> | |
| </ul> | |
| <p> | |
| </p> | |
| </div> | |
| </div> | |
| <?php | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |