# SWTBot

SWTBot is a Java API that interacts with SWT by using high-level operations. It is generally use to write UI tests efficiently since the grain of the API is the same grain as UI operation. It makes easier to transform a user scenario to an automated tests.

* https://projects.eclipse.org/projects/technology.swtbot

## Documentation & links

http://wiki.eclipse.org/SWTBot

## Contributing

GitHub tracker and pull requests are currently not supported by the contribution process.

Please read http://wiki.eclipse.org/SWTBot/Contributing to know how to interact well with the community.
For further questions about contributing to SWTBot, please send a mail to swtbot-dev@eclipse.org .

## Developer resources

The project maintains the following source code repositories

* https://git.eclipse.org/c/swtbot/org.eclipse.swtbot.git/

This project uses Bugzilla to track ongoing development and issues.

* Search for issues: https://bugs.eclipse.org/bugs/buglist.cgi?product=SWTBot
* Create a new report: https://bugs.eclipse.org/bugs/enter_bug.cgi?product=SWTBot

Be sure to search for existing bugs before you create another one. Remember that
contributions are always welcome!

## Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must
electronically sign the Eclipse Contributor Agreement (ECA).

* http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in
the footer indicating that the author is aware of the terms by which the
contribution has been provided to the project. The non-committer must
additionally have an Eclipse Foundation account and must have a signed Eclipse
Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook:
https://www.eclipse.org/projects/handbook/#resources-commit

## Contact

Contact the project developers via the project's "dev" list.

* https://dev.eclipse.org/mailman/listinfo/swtbot-dev
