[wxPython-dev] Summer of Code
Kevin Ollivier
kevino at theolliviers.com
Sun Apr 15 16:56:17 PDT 2007
Hi Frank,
First off, let me say welcome to the project! :-)
On Apr 15, 2007, at 1:44 PM, Frank Tobia wrote:
> Hi all,
>
> My name is Frank Tobia, and I'll be creating a unit testing
> framework for wxPython as part of Google's Summer of Code.
>
> Right now I'm a sophomore/junior at RPI studying Computer and
> Systems Engineering and Economics. My background in software
> development has been split between school projects and summer
> internships working on R&D projects for the Army. There I learned
> a lot about how software projects shouldn't be run, and became
> interested in the tools and practices for running a successful
> project. Testing especially jumped out at me. The project I
> worked on was the epitome of a "throw-it-over-the-wall" mentality.
> The code got manually 'tested' once per release, and bug
> regressions were the norm. I realized that there is often a
> testing vacuum to be filled on software projects, and I've been
> doing my best to fill it since then.
First, I wanted to say that I'm really glad to see that someone
stepped in to tackle automated testing for wxPython. Despite being
one of the most sorely needed tools for any software project, and
even moreso on projects where resources are limited, it's also seen
by many developers as boring and of only minor impact. As such,
automated testing is a void that often never gets filled, and I'm
excited to see wxPython could become an exception to that rule. :-)
> My project entails developing a cross-platform testing framework
> suited to the GUI nature of wxPython. The tests should be easy to
> run, maintain, and extend. First I plan on doing research to
> identify existing tools for the job, and to determine what will
> work best for wxPython.
BTW, not sure if you've seen this already, but our unit testing wiki
page lists some tools, including platform-specific automation tools:
http://wiki.wxpython.org/index.cgi/Unit_Testing_with_wxPython
So far, in my searches, I've been unable to come across a free and
cross-platform automated GUI testing tool, but there are free tools
for *nix and Windows which can be scripted using Python. If a free
cross-platform solution can't be found, writing a thin wrapper around
the *nix and Windows tools might give us the quickest results.
Moreover, having the GUI testing tools scriptable from Python should
allow us to integrate them into Python's own UnitTest framework, so
that we can utilize that for all the methods which can be tested
using 'traditional' unit-testing. (e.g. data getter/setter methods)
It would also allow us to expose a cross-platform GUI testing
solution to our users as well, which I think would be a huge boost to
the project.
> Next I'll work on writing the framework, as well as the
> documentation for using and extending it. After the framework is
> far enough along, I'll start developing a comprehensive suite of
> unit and regression tests. I'll aim at exercising the trickier
> corners of the codebase while also focusing on all-around code
> coverage. Of course, my main goal is to create something that the
> community will use and enjoy, and so I'll be seeking feedback at
> each stage of the process.
Also, a couple random thoughts I had about the framework:
- wx is a bit different in that an API may be unsupported on one
platform, but supported on others, due to underlying platform
limitations. While this happens occasionally on many projects, it
happens more often in wx due to the sometimes significant difference
in the underlying toolkits. So we'll need some way to address
"expected failures" on certain platforms in the tests.
- most classes derive from wxWindow, and many override at least some
of its base methods. So IMHO you might want to start building the
framework with wxWindow and make a way for subclasses to 'derive'
from wxWindow tests, as overridden methods should still behave the
same as they do in wxWindow. (In this particular area, I've seen
regressions as well as uncaught inconsistencies already.)
Perhaps we should considering making a wiki page for this SoC
project, a place to store all the info and ideas related to the
project as it moves forward?
>
> I've been interested in getting involved in open source for a year
> or two, but in between school and summer jobs I could never seem to
> get started.
> I'm very glad now to have the opportunity to give back, and I'm
> looking forward to being a part of the community.
I think this project will bring some much-needed automated testing to
wxPython, and will benefit both wxPython and the underlying wxWidgets
toolkit as well. Thanks for coming on board and helping us out!
Regards,
Kevin
> -Frank
More information about the wxpython-dev
mailing list