SWTBot has demonstrated some interesting capabilities (http://swtbot.sourceforge.net/wiki/Screencasts) and very early on, and is being supported by a few contributors.

+

The development of applications based on SWT, RCP and the Eclipse platform in general is growing fast. With Eclipse based applications becoming more and more complex by the day, manual testing of Eclipse applications becomes a major concern in the development lifecycle of the application. Automated testing is inevitable in such cases and SWTBot attempts to help projects in such cases.

−

The goal of SWTBot is to provide a lightweight functional testing tool for SWT and Eclipse, and make it easy for developers and non-developers to automate testing of applications written using Eclipse.

+

Automated testing code needs the same love and affection that code does. This means better IDE support to write tests, reuse of test code, refactoring, etc. By simplifying this test code so that it is agnostic of SWT and Eclipse and deals with UI paradigms would be appealing to non-developers would help solve this issue to a large extent.

+

+

SWTBot has demonstrated some of these capabilities (http://swtbot.sourceforge.net/wiki/Screencasts) and very early on, and is being supported by a few contributors.

+

+

The goal of SWTBot is to provide a lightweight functional testing tool for SWT and Eclipse, and make it easy for non-developers to automate testing of applications written using Eclipse in a way that is consistent with what has been stated above.

Revision as of 05:04, 12 May 2008

Contents

Draft proposal

This is a draft proposal, feel free to contribute to it!

Introduction

SWTBot (http://swtbot.org) is a functional testing tool for SWT/Eclipse based applications. That eases and supports testing of multithreaded applications. SWTBot is capable of playback and recording of SWTBot Java "scripts", there are plans to provide scripting support for various other languages including JRuby(http://jruby.codehaus.org), and Groovy(http://groovy.codehaus.org/).

SWTBot is proposed as an open source project under the Eclipse Technology Project (http://www.eclipse.org/technology/). This proposal is still in the Project Proposal Phase, and this proposal is being made in order to call for more community participation.

Background and Goal

The development of applications based on SWT, RCP and the Eclipse platform in general is growing fast. With Eclipse based applications becoming more and more complex by the day, manual testing of Eclipse applications becomes a major concern in the development lifecycle of the application. Automated testing is inevitable in such cases and SWTBot attempts to help projects in such cases.

Automated testing code needs the same love and affection that code does. This means better IDE support to write tests, reuse of test code, refactoring, etc. By simplifying this test code so that it is agnostic of SWT and Eclipse and deals with UI paradigms would be appealing to non-developers would help solve this issue to a large extent.

The goal of SWTBot is to provide a lightweight functional testing tool for SWT and Eclipse, and make it easy for non-developers to automate testing of applications written using Eclipse in a way that is consistent with what has been stated above.

Concerns

There is currently some bit of overlap between SWTBot and TPTP's AGR. TPTP supports eclipse plugins, but does not support plain SWT applications, easy ant integration. SWTBot's focus is to become a low level driver to drive SWT and Eclipse applications while filling these shortcomings with AGR.

Packaging and Deployment

SWTBot currently ships in the form of an eclipse update site, and also an independent .zip/.tgz download, and it would continue to ship in these forms.

Project Scope

The scope of SWTBot is to make writing tests for SWT and Eclipse application easier not just for developers who understand the technologies, but also for Quality Analysts who understand the application and not the underlying technologies used to build them.

SWTBot should integrate well with JUnit so as to make execution and reporting of tests independent of Eclipse, yet integrate will with eclipse. This would mean that SWTBot tests can be run as an ant task as part of Continuous Integration using CruiseControl.