Project proposal for Gnome Automation under the Google Summer of Code program
Name: Prashanth Mohan
Email: prashmohan@gmail.com
Website: http://www.prash.be
Organisation: Gnome (http://code.google.com/soc/gnome/about.html)
Project: LDTP (http://ldtp.freedesktop.org)
Mentor: Nagappan Alagappan (http://live.gnome.org/NagappanAlagappan)
anagappan@novell.com
Abstract
========
I am interested in Gnome Automation
(http://live.gnome.org/SummerOfCode2006/Ideas) using the LDTP - Linux
Desktop Testing Project (http://ldtp.freedesktop.org) framework. I
propose to automate Evolution (http://www.novell.com/products/evolution)
- a popular email client, Gnome Dictionary
(http://live.gnome.org/GnomeUtils) - a part of gnome-utils and
Banshee (http://banshee-project.org) - a music player and organiser. In
the process of creating these scripts, some features will need to be
added to the LDTP framework - audio capture and comparison, keyboard
and mouse registry events, rectify grabfocus(). Apart from these
framework changes, a utility of LDTP - `record' which captures GUI
events and converts them into an LDTP python script.
Brief Biography
===============
I am a fourth year student at the College of Engineering, Guindy (Anna
University) (http://annauniv.edu) doing my Bachelors in Computer Science
Engineering.
My detailed Resume is available at my website at
http://prash.be/resume.html
Previous involvement in the LDTP Project
========================================
I have been a developer for the LDTP project for around a year now. My
work as of now have been:
* Maintained the Ubuntu and Debian packages for ldtp (previously
pyldtp) from versions 0.1.x to 0.3.x
* Worked on the Python wrapper for LDTP
* Wrote automated testing scripts for Gaim 1.5.x
* Wrote automated testing scripts for Evolution
Proposed project details
========================
Software Testing is increasingly being automated, with manual labour
becoming costlier by the day. The LDTP framework is one such project
which automates the testing of applications which are accessibility
enabled. The at-spi layer is used to manipulate the GUI objects.
Improvements to LDTP framework
------------------------------
The LDTP framework provides an API for use from python to access Gnome
applications which are accessibility enabled. This automation is done
using python scripts.
`Record' is a utility which is already a part of LDTP. It converts a
series of manual commands on the GUI into a series of code sequences in
python using the corresponding LDTP API calls. The present version of
`record' is incomplete. The process would be to complete the `record'
utility.
Also additions to the framework will have to be made in order to handle
the following Test Suites. They include (not complete, only a
preliminary overview):
* Audio Capture and Comparison (for Music Player fucionalities) --
Similar to the Image capture and Comparison functionality.
* Generate Keyboard and Mouse Registry events
(http://developer.gnome.org/doc/API/2.0/at-spi/at-spi-cspi-Registry-queries.html)
for the gnome-dictionary Test Suite
* Rectify grabfocus() to actually bring the selected window into
view (this doesn't happen now due to a metacity feature)
Automation of Evolution 2.6
---------------------------
The Test Cases for Evolution are listed at http://go-evolution.org. The
test cases that I propose to automate are:
* Mailer Functionalities
- POP
- IMAP
- Evolution Exchange
* Calendar Functionalities
* Task Functionalities
Automation of Gnome Dictionary
------------------------------
A complete Test Suite for the gnome-dictionary executable. Which include
the following Test Cases:
* Finding Defenitions
* Traversing between multiple Defenitions
* Test cases for Find functionality
* Adding/Removing dictionary sources
Automation of Banshee Music Player/Organiser
--------------------------------------------
The Banshee Music Player will be Automated for the following features:
* Playback features
- Play, Pause, Stop
- Seeking
- GUI functionality of 'Repeat and Shuffle' options
* Playlist features
- Create new playlist
- Choosing and playing from playlist
* Audio Library
- Importing music
Proposed Itinery
================
May 23, 2006 - Contact Mentor and initiliase work.
Automate `gnome-dictionary' and submit to CVS
Implement Registry events for `gnome-dictionary'
June 05, 2006 - Automate `Banshee' and submit to CVS
Implement Audio Capture and comparison for `Banshee'
June 30, 2006 - Automate test cases of Evolution 2.6
(mid prog eval) (Calendar and Tasks)
Start work on `record'
August 01, 2006 - Automate test cases of Evolution 2.6
(IMAP, POP, Evolution Exchange)
Finish work on `record'
August 18, 2006 - Submit all patches and scripts for review and
make any slight modifications if necessary
August 21, 2006 - Final Review