The Ubuntu Desktop Testing
The Ubuntu Desktop Testing is a project that aims to write a framework to make writing automated test scripts easier and more reusable. Although we started this effort as an Ubuntu project, as it works for vanilla GNOME in most of the cases, we forked the project and GNOME has now its own module and documentation (http://live.gnome.org/DesktopTesting)
We are using LDTP (http://ldtp.freedesktop.org/), as the upstream project is really well maintained and the Ubuntu QA team is already using it (https://wiki.ubuntu.com/Testing/Automation/Desktop/). LDTP access the applications through the accessibility libraries and, therefore, an application will need to be accessibility enabled in order to be tested with Ubuntu Desktop Testing.
Parts of Ubuntu Desktop Testing
The Ubuntu Desktop Testing project is divided in three parts: the desktoptesting library, the testrunner and the tests themselves.
Test Runner: under the bin folder, the ubuntu-desktop-test script, runs the test cases and parses the log.
desktoptesting library: python library that creats a wrapping framework for Ubuntu applications based on LDTP that will hide the lower levels of destails to the test script.
Tests: The tests themselves
Getting Started - How to get the project and how to run the already available tests.
Adding New Tests - If the application that you want to test is already available in the desktoptesting library, you can add more test suites or cases to it following this document.
Adding New Applications - If the application that you want to test is not yet in the desktoptesting library, you can add it following this document.
Design - Do you want to hack the framework? Read a bit about the internals here.